Archive · Kubernetes

A Managed Cluster on Amazon EKS

Create an EKS cluster and managed node group with eksctl.

1 min read

  • Amazon EKS 1.21
  • eksctl 0.8x
  • Region ap-south-1

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.