Cluster Creation
Using eksctl (Recommended)
Basic Cluster
eksctl create cluster \
--name my-cluster \
--region us-west-2 \
--without-nodegroup
Cluster with Managed Node Group
eksctl create cluster \
--name my-cluster \
--region us-west-2 \
--nodegroup-name standard-workers \
--node-type t3.medium \
--nodes 3 \
--nodes-min 1 \
--nodes-max 4 \
--managed
Cluster with Fargate
eksctl create cluster \
--name my-cluster \
--region us-west-2 \
--fargate
Cluster with Karpenter
eksctl create cluster \
--name my-cluster \
--region us-west-2 \
--with-karpenter
module "eks" {
source = "terraform-aws-modules/eks/aws"
version = "~> 20.0"
cluster_name = "my-cluster"
cluster_version = "1.30"
vpc_id = module.vpc.vpc_id
subnet_ids = module.vpc.private_subnets
eks_managed_node_groups = {
standard = {
instance_types = ["t3.medium"]
min_size = 1
max_size = 4
desired_size = 2
}
}
}
Using AWS Console
- Navigate to EKS in AWS Console
- Click “Create cluster”
- Configure:
- Name and Kubernetes version
- IAM role for EKS service
- VPC and subnets
- Security groups
- Endpoint access (public/private)
- Click “Create”
Cluster Configuration Options
Endpoint Access
| Type | Control Plane | Worker Nodes |
|---|
| Public | Public endpoint | Same VPC |
| Private | Private endpoint only | Private subnets |
| Public & Private | Both endpoints | Private subnets |
Networking Considerations
- At least 2 subnets in different AZs
- Subnets must have DNS hostnames enabled
- Consider NAT Gateway costs for private-only clusters
- Security groups must allow EKS control plane communication
References