Skip to main content

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:

  1. Managed nodes - Use EC2 instances as cluster nodes.
  2. 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.

IAM Permissions for EKS

Create an Access Key for this user in the "Security Credentials" section to configure the AWS CLI.

caution

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.