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/to/file] --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 [global-options] <command> [<args>]

PARAMETERS

--help
    Display help for eksctl or subcommands

--version
    Print current version of eksctl

--verbose int
    Log verbosity level: 0=off, 1=errors, 2=warn, 3=info, 4=debug (default 2)

--timeout duration
    Timeout for commands (e.g., 1h30m)

--region string
    AWS region (overrides config/default)

--profile string
    AWS profile name from credentials file

--dry-run
    Preview changes without applying

--approve
    Skip interactive approval prompts

--config-file string
    Path to YAML config file

--kubeconfig string
    Path to kubeconfig file (default ~/.kube/config)

--clusters-dir string
    Directory for cluster configs (~/.eksctl/clusters default)

--no-vpc-ip-availability-checks
    Skip VPC IP availability checks

DESCRIPTION

eksctl is the official command-line interface (CLI) for Amazon Elastic Kubernetes Service (EKS), designed to simplify cluster lifecycle management. It enables users to create, update, delete, and scale EKS clusters declaratively using simple YAML configuration files. This tool automates provisioning of required AWS resources, including VPCs, subnets, security groups, IAM roles, and EC2 instances for managed node groups.

Key capabilities include:
• Cluster creation with custom networking and add-ons.
• Managed and self-managed node groups.
• Fargate profiles for serverless compute.
• IAM integration for roles and policies.
• Upgrade and scaling operations with minimal downtime.
• Dry-run mode for previewing changes.

eksctl supports idempotent operations, detailed logging (verbosity 0-4), and integration with AWS profiles/regions. It's written in Go, open-source under Apache 2.0, and requires AWS CLI v2 for authentication. Ideal for DevOps workflows, it reduces boilerplate compared to manual AWS console or CloudFormation usage, making EKS accessible for Kubernetes users.

CAVEATS

Requires AWS CLI configured with IAM permissions for EKS; not all EKS features (e.g., custom AMIs) fully supported in managed mode; cluster configs must align with AWS quotas.

INSTALLATION

curl --silent --location "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp && sudo mv /tmp/eksctl /usr/local/bin

MAIN SUBCOMMANDS

create cluster - Create cluster
delete cluster - Delete cluster
scale nodegroup - Scale nodes
get clusters - List clusters
upgrade cluster - Upgrade control plane

CONFIG FILE

YAML-based; example at eksctl.io docs. Defines metadata.name, region, nodeGroups[].instanceType, vpc.subnetIds, etc.

HISTORY

Developed by Weaveworks in 2018 as open-source tool; adopted as official EKS CLI by AWS in 2020. Actively maintained with releases aligning EKS versions; v0.100+ added Fargate, add-ons support.

SEE ALSO

kubectl(1), aws(1), kops(1), terraform(1)

Copied to clipboard