Use JuiceFS in Managed Kubernetes
AWS EKS
Amazon Elastic Kubernetes Service (Amazon EKS) is a managed service that you can use to run Kubernetes on AWS without needing to install, operate, and maintain your own Kubernetes control plane or nodes.
Node Type Selection
When creating an AWS EKS cluster, there are two node types to choose from:
- Managed nodes - Use EC2 instances as cluster nodes.
- Fargate nodes - Use AWS Fargate as cluster nodes.
It's important to note that AWS Fargate is a serverless engine and does not support the installation of custom CSI Drivers. Therefore, when using Fargate as the cluster nodes, you cannot utilize the JuiceFS CSI Driver. Please create a cluster using the Managed nodes type.
Tool Installation
To manage the cluster, you need to install the following tools on your local machine:
-
kubectl
- A command-line tool for managing Kubernetes clusters. The version should be greater than or equal to the version of the Kubernetes cluster. Please refer to the documentation on how to install and update kubectl. -
eksctl
- A command-line tool for managing EKS clusters. It is recommended to install the latest version. Please refer to the documentation on how to install and update eksctl. -
awscli
- A command-line tool for managing AWS resources. It is recommended to install the latest version. Please refer to the documentation on how to install and update awscli.
IAM Permissions
To facilitate the creation and management of the cluster, you can create an IAM user and grant them the AdministratorAccess
permission.
Create an Access Key for this user in the "Security Credentials" section to configure the AWS CLI.
For demonstration purposes, AdministratorAccess
permission is used in this document, which grants full access to create, manage, and delete all resources in the AWS account. Therefore, please ensure to securely store the Access Key and consider disabling or deleting it when not in use for an extended period. For production environments, it is recommended to create an IAM user with only the necessary permissions for creating and managing EKS clusters.
Configuring AWS CLI Credentials
To configure AWS CLI credentials on your local machine, follow the command line prompts and provide the following information: Access Key ID, Secret Access Key, Default region name, and Default output format.
$ aws configure
AWS Access Key ID [None]: xxxxx
AWS Secret Access Key [None]: xxxxx
Default region name [None]: cn-northwest-1
Default output format [None]: json
Creating an EKS Cluster
To create an EKS cluster, use the eksctl
command as follows:
eksctl create cluster --name my-cluster --region region-code
eksctl
will create a kubeconfig file at ~/.kube/config
, which will be used to access the cluster. If the configuration file already exists, eksctl
will append the EKS cluster configuration to it.
After this step, you can use kubectl
to access and manage the EKS cluster. For example:
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
ip-192-168-1-1.cn-northwest-1.compute.internal Ready <none> 10m v1.18.9-eks-d1db3c
ip-192-168-1-2.cn-northwest-1.compute.internal Ready <none> 10m v1.18.9-eks-d1db3c
Next, you can refer to the documentation on Using JuiceFS in Kubernetes to install the JuiceFS CSI Driver in your EKS cluster and configure the use of JuiceFS for persistent data storage.