DEV Community

Mateen Anjum
Mateen Anjum

Posted on

EKS Rollback Is Not a Magic Undo Button

TL;DR: EKS version rollback gives platform teams a safer upgrade control, but it only works well when your upgrade process includes readiness checks, add-on governance, version skew discipline, and a controlled rollback window.

The Problem

Kubernetes upgrades still break production because most teams treat them like maintenance tasks.

Read the release notes. Check deprecated APIs. Upgrade the control plane. Upgrade nodes. Update add-ons. Watch dashboards. Keep a senior engineer nearby until the maintenance window stops feeling dangerous.

That works for one cluster if the same person owns every detail.

It does not work across dozens of clusters, multiple product teams, self-managed add-ons, admission controllers, CRDs, and workloads that may be using APIs nobody has audited in months.

Amazon EKS now supports Kubernetes version rollback. You can revert an upgraded cluster to the previous minor version within seven days. That sounds like the feature everyone wanted.

It is useful, but it is not the whole answer.

EKS Upgrade Risk Model

What EKS Rollback Actually Does

EKS rollback lets you move a cluster back to the previous Kubernetes minor version after an upgrade, within a seven day window. You can trigger rollback through the AWS console, AWS CLI, or SDKs.

Before rollback proceeds, EKS evaluates rollback readiness insights. These checks look for problems that could make the rollback unsafe:

  • API compatibility
  • API field changes
  • Cluster health
  • Kubelet version skew
  • Kube-proxy compatibility
  • EKS managed add-on compatibility
  • EKS Auto Mode disruption controls

That last point matters. Rollback is not just "set the old version again." EKS is checking whether the cluster can safely move backward.

That is the important shift.

What I Would Change In The Upgrade Playbook

If I were running this across production EKS clusters, I would not sell rollback internally as an undo button. I would use it to formalize the upgrade contract.

Before the upgrade:

# Review cluster insights before upgrading
aws eks list-insights \
  --cluster-name production \
  --filter categories=UPGRADE_READINESS

# Inspect a specific insight
aws eks describe-insight \
  --cluster-name production \
  --id <insight-id>
Enter fullscreen mode Exit fullscreen mode

Then I would answer five questions before approving the upgrade:

  1. Which cluster upgrades first?
  2. Which findings block the upgrade?
  3. Which changes are frozen during the rollback window?
  4. Which signals prove the upgrade is healthy?
  5. Who can trigger rollback?

If those answers are not written down, rollback mostly gives you a more dramatic incident channel.

The Seven Day Window Is The Product Constraint

The rollback window should become a controlled bake period.

During that window, do not let teams casually adopt Kubernetes APIs or fields that only exist in the new version. If they create resources the previous version cannot understand, rollback becomes harder or impossible.

For non Auto Mode clusters, keep control plane and data plane upgrades separate where possible. Upgrade the control plane first, validate production behavior, then upgrade worker nodes after the rollback decision is clear.

Seven Day EKS Rollback Window

Add-ons need the same discipline. Use versions that are compatible with both the current and target Kubernetes versions when possible. EKS managed add-ons help because readiness insights can reason about them. Self-managed add-ons are still your responsibility.

A Practical Upgrade Workflow

Here is the workflow I would use.

Phase 1: Preflight

# Find deprecated API usage with pluto
pluto detect-all-in-cluster

# Check add-on versions
aws eks list-addons --cluster-name production

aws eks describe-addon-versions \
  --kubernetes-version 1.36 \
  --addon-name vpc-cni
Enter fullscreen mode Exit fullscreen mode

Resolve upgrade readiness findings before touching the control plane.

Phase 2: Control Plane Upgrade

Upgrade the control plane first. Validate the core platform components:

  • CoreDNS
  • VPC CNI
  • kube-proxy
  • admission webhooks
  • autoscaling
  • ingress or Gateway API
  • observability agents
  • workload scheduling

Do not judge success only by cluster health. Watch user facing SLOs.

Phase 3: Bake Period

During the seven day rollback window:

# Review rollback readiness findings after the upgrade
aws eks list-insights \
  --cluster-name production \
  --filter categories=ROLLBACK_READINESS
Enter fullscreen mode Exit fullscreen mode

Keep new version only APIs controlled. Refresh insights after fixes. Track add-on drift. Decide whether to roll back while the option still exists.

Phase 4: Data Plane And Add-ons

After the rollback decision, upgrade worker nodes and add-ons according to the planned sequence.

Platform Upgrade Contract

The Lesson

EKS rollback is good news because it gives platform teams a native safety control for Kubernetes upgrades.

But the real lesson is bigger: Kubernetes upgrades are now a platform product problem.

The platform should expose readiness, risk, blocked workloads, add-on compatibility, and rollback status as part of the normal developer workflow. Teams should not learn about deprecated APIs during a failed upgrade. They should see the problem while there is still time to fix it.

Rollback does not remove complexity. It exposes complexity earlier.

That is exactly what mature platforms should do.

Resources

Top comments (0)