eksctl
Create and manage Kubernetes clusters on AWS
TLDR
Create a basic cluster
List the details about a cluster or all of the clusters
Create a cluster passing all configuration information in a file
Create a cluster using a configuration file and skip creating nodegroups until later
Delete a cluster
Create cluster and write cluster credentials to a file other than the default
Create a cluster and prevent storing cluster credentials locally
Create a cluster and let eksctl manage cluster credentials under the ~/.kube/eksctl/clusters directory
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.


