LinuxCommandLibrary

eksctl

Create and manage Kubernetes clusters on AWS

TLDR

Create a basic cluster

$ eksctl create cluster
copy

List the details about a cluster or all of the clusters
$ eksctl get cluster --name=[name] --region=[region]
copy

Create a cluster passing all configuration information in a file
$ eksctl create cluster --config-file=[path/to/file]
copy

Create a cluster using a configuration file and skip creating nodegroups until later
$ eksctl create cluster --config-file=<path> --without-nodegroup
copy

Delete a cluster
$ eksctl delete cluster --name=[name] --region=[region]
copy

Create cluster and write cluster credentials to a file other than the default
$ eksctl create cluster --name=[name] --nodes=[4] --kubeconfig=[path/to/config.yaml]
copy

Create a cluster and prevent storing cluster credentials locally
$ eksctl create cluster --name=[name] --nodes=[4] --write-kubeconfig=false
copy

Create a cluster and let eksctl manage cluster credentials under the ~/.kube/eksctl/clusters directory
$ eksctl create cluster --name=[name] --nodes=[4] --auto-kubeconfig
copy

SYNOPSIS


eksctl <command> [options]

Examples:

eksctl create cluster --name=my-cluster --region=us-east-1
eksctl get cluster --name=my-cluster --region=us-east-1
eksctl delete cluster --name=my-cluster --region=us-east-1

PARAMETERS

--name
    Specifies the name of the EKS cluster.

--region
    Specifies the AWS region where the cluster will be created or managed.

--cluster, -c
    Alias for --name, specifying the cluster name.

--config-file, -f
    Specifies the path to a YAML configuration file for detailed cluster definitions.

--verbose, -v
    Enables verbose logging for more detailed output.

--dry-run
    Shows what operations would be performed without actually executing them.

--help, -h
    Displays help information for the command or subcommand.

DESCRIPTION

eksctl is a powerful command-line interface (CLI) tool for Amazon Elastic Kubernetes Service (EKS). Developed by Weaveworks and widely adopted by the AWS community, it aims to simplify the entire lifecycle of an EKS cluster. Users can create, configure, update, and delete EKS clusters and all associated resources (like EC2 instances, VPC, subnets, IAM roles) with a single command or a declarative configuration file. It automates much of the boilerplate infrastructure setup, making it significantly easier to get started with Kubernetes on AWS, manage node groups, and integrate with other AWS services. eksctl supports various configurations, including managed node groups, Fargate, and custom networking, streamlining complex deployments and promoting best practices for EKS.

CAVEATS

eksctl requires appropriate AWS IAM permissions to create and manage resources. It can be resource-intensive, provisioning many AWS services like EC2 instances, VPCs, IAM roles, and more. Misconfigurations or insufficient permissions can lead to failed operations or orphaned resources. Users should be familiar with underlying AWS concepts and Kubernetes to effectively troubleshoot issues. Network connectivity to AWS APIs is also essential for eksctl to function correctly.

YAML CONFIGURATION FILES

While eksctl supports command-line flags for basic cluster creation, its true power lies in using comprehensive YAML configuration files. These files allow for highly detailed and reproducible cluster definitions, including custom VPCs, multiple node groups, Fargate profiles, add-ons, and IAM roles, promoting infrastructure-as-code principles.

ADD-ONS MANAGEMENT

eksctl can manage certain EKS add-ons, like VPC CNI, CoreDNS, and Kube-proxy, ensuring they are properly configured and updated within the cluster. This streamlines the setup of essential Kubernetes components that run on EKS.

HISTORY

eksctl was initially developed by Weaveworks as an open-source project to simplify the deployment of Kubernetes clusters on AWS EKS. It quickly gained traction within the Kubernetes and AWS communities due to its user-friendly approach and comprehensive automation. Its development continues with strong community contributions and support, making it the de-facto standard CLI for EKS cluster management for many users.

SEE ALSO

kubectl(1), aws(1), helm(1)

Copied to clipboard