Amazon EKS — Kubernetes Version Lifecycle on EKS

1 minute read

Kubernetes Version Lifecycle on EKS

EKS supports multiple Kubernetes versions simultaneously, but each version has a limited support window. Understanding the lifecycle prevents surprise costs and forced upgrades.


EKS Version Support Model

Kubernetes Version Lifecycle on EKS
┌──────────────────────────────────────────────────────────┐
│                                                          │
│  Release ──▶ Standard Support ──▶ Extended ──▶ End of   │
│              (14 months)          Support     Life       │
│              $0.10/hr             (+12 months) (forced   │
│                                  $0.60/hr     upgrade)  │
│                                                          │
│  Timeline:                                               │
│  │─── 14 months ───│── 12 months ──│                    │
│  ├─────────────────┼───────────────┼                    │
│  │ Standard        │ Extended      │ End of Life        │
│  │ $73/month       │ $438/month    │ Auto-upgraded      │
│  └─────────────────┴───────────────┘                    │
│                                                          │
└──────────────────────────────────────────────────────────┘

Current Version Support (2024)

K8s Version EKS Status Standard Support Ends Extended Support Ends
1.31 Standard ~March 2026 ~March 2027
1.30 Standard ~November 2025 ~November 2026
1.29 Standard ~June 2025 ~June 2026
1.28 Standard ~March 2025 ~March 2026
1.27 Extended Ended ~March 2025
≤ 1.26 End of Life — —

Upgrade Strategy

# Check current version
$ kubectl version --short
Server Version: v1.28.5-eks-...

# Upgrade control plane (one minor version at a time!)
$ aws eks update-cluster-version --name demo --kubernetes-version 1.29

# Wait for completion (~15-30 minutes)
$ aws eks describe-update --name demo --update-id <update-id>

# Then upgrade node groups
$ eksctl upgrade nodegroup --name demo-nodes --cluster demo --kubernetes-version 1.29

Important: You can only upgrade one minor version at a time (1.28 → 1.29 → 1.30, not 1.28 → 1.30).


Upgrade Order

Correct Upgrade Order
1. Update add-ons (VPC CNI, CoreDNS, kube-proxy)
2. Upgrade control plane
3. Upgrade managed node groups
4. Verify cluster health
5. Update application manifests if needed

Common Mistakes

Mistake Impact
Ignoring version lifecycle $365/month extra per cluster in extended support
Skipping versions Not allowed — must go 1.28 → 1.29 → 1.30
Not testing upgrades in staging Breaking changes can affect workloads
Upgrading nodes before control plane Nodes can’t be newer than control plane

Quick Reference

# Check current version
$ aws eks describe-cluster --name demo --query 'cluster.version'

# List available versions
$ aws eks describe-addon-versions --query 'addons[0].addonVersions[*].compatibilities[*].clusterVersion' --output text | sort -u

# Start upgrade
$ aws eks update-cluster-version --name demo --kubernetes-version 1.29

What’s Next?

Test your knowledge: Architecture Exercises.