# eksctl — The Official CLI for Amazon EKS > eksctl is a simple CLI tool for creating and managing Kubernetes clusters on Amazon EKS, abstracting away CloudFormation complexity with sensible defaults. ## Install Save in your project root: # eksctl — The Official CLI for Amazon EKS ## Quick Use ```bash # Install brew tap weaveworks/tap brew install weaveworks/tap/eksctl # Create a cluster with defaults eksctl create cluster --name my-cluster --region us-west-2 # Check nodes kubectl get nodes ``` ## Introduction eksctl is the official command-line tool for creating and managing Amazon EKS (Elastic Kubernetes Service) clusters. Originally built by Weaveworks and now maintained under the eksctl-io organization, it uses CloudFormation under the hood but exposes a simple, opinionated CLI that gets a production-ready cluster running in minutes. ## What eksctl Does - Creates fully managed EKS clusters with a single command and sensible defaults - Manages node groups including managed, self-managed, and Fargate profiles - Handles IAM roles, VPC networking, and security groups automatically - Supports cluster configuration via YAML files for reproducible setups - Enables and configures EKS add-ons like VPC CNI, CoreDNS, and kube-proxy ## Architecture Overview eksctl translates CLI commands and YAML configuration into AWS CloudFormation stacks. Each cluster operation generates or updates CloudFormation templates that provision the EKS control plane, VPC, subnets, NAT gateways, and node groups. eksctl communicates with the AWS API using standard AWS SDK credentials and writes the resulting kubeconfig to your local machine. ## Self-Hosting & Configuration - Install via Homebrew, Chocolatey, or download the binary from GitHub releases - Configure AWS credentials via `aws configure` or environment variables before running eksctl - Define cluster specs in a `ClusterConfig` YAML file for version-controlled infrastructure - Scale node groups with `eksctl scale nodegroup --cluster my-cluster --nodes 5` - Upgrade cluster Kubernetes version with `eksctl upgrade cluster --name my-cluster` ## Key Features - One-command cluster creation with production-ready defaults (VPC, IAM, security groups) - Declarative YAML configuration for GitOps-style cluster management - Managed node group support with automatic AMI updates and rolling deployments - Fargate profile management for serverless Kubernetes workloads - Seamless integration with kubectl via automatic kubeconfig generation ## Comparison with Similar Tools - **AWS Console** — web UI for manual EKS setup; eksctl automates the entire process from the terminal - **Terraform** — general-purpose IaC supporting any cloud; eksctl is EKS-specific with simpler syntax - **AWS CDK** — programmatic infrastructure in TypeScript/Python; eksctl is faster for EKS-only workflows - **kOps** — creates self-managed K8s clusters on AWS EC2; eksctl uses the managed EKS service - **Pulumi** — multi-cloud IaC with general-purpose languages; eksctl provides a focused EKS experience ## FAQ **Q: Does eksctl require an existing VPC?** A: No. By default eksctl creates a new VPC with public and private subnets. You can also specify an existing VPC in the cluster config YAML. **Q: How long does cluster creation take?** A: Typically 15-20 minutes, most of which is AWS provisioning the EKS control plane and node groups via CloudFormation. **Q: Can I use eksctl with Fargate?** A: Yes. Define Fargate profiles in your ClusterConfig to run pods without EC2 nodes. **Q: Is eksctl safe to use in production?** A: Yes. eksctl is the officially recommended tool in the AWS EKS documentation and is used widely in production environments. ## Sources - https://github.com/eksctl-io/eksctl - https://eksctl.io/ --- Source: https://tokrepo.com/en/workflows/5a52b776-414b-11f1-9bc6-00163e2b0d79 Author: AI Open Source