Amazon EKS runs the control plane for you; you manage the worker nodes (or use Fargate).
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: prod
region: ap-south-1
version: "1.21"
managedNodeGroups:
- name: general
instanceType: t3.large
desiredCapacity: 3
minSize: 2
maxSize: 6
privateNetworking: true
eksctl create cluster -f cluster.yaml
aws eks update-kubeconfig --name prod --region ap-south-1
kubectl get nodes
Notes for 2022:
- EKS supports 1.21 now, and 1.22 is coming; versions have a limited support window, so plan upgrades.
- Use IAM roles for service accounts (IRSA) to give pods AWS permissions instead of node-wide roles.
- Install the AWS Load Balancer Controller for ALB ingress, and the EBS CSI driver for volumes.
- The control plane costs a fixed hourly fee per cluster, so avoid many small clusters.