Skip to content

Latest commit

 

History

History
77 lines (59 loc) · 2.03 KB

File metadata and controls

77 lines (59 loc) · 2.03 KB
title EKS Kubernetes 版本回滚 — 安全升级集群
domain ops
subdomain kubernetes
tags
kubernetes
eks
aws
upgrade
rollback
cluster-management
source aws.amazon.com/blogs
status published
confidence 0.9
created 2026-07-01
verified_date
domain_expert

Problem

升级 Kubernetes 控制平面是单向操作——开源 K8s 不支持控制平面回滚。团队因此延迟升级,错过安全补丁。

Root Cause

开源 Kubernetes 的控制平面升级不可逆。社区 KEP-4330 引入了模拟版本来缓解,但实践中团队仍需构建复杂的补偿机制(bake periods、stagger groups、automated sign-offs)。

Solution

EKS 版本回滚(2026-07 新功能)

AWS EKS 现在支持控制平面版本回滚:

# 升级前:创建回滚点
aws eks update-cluster-config \
  --name my-cluster \
  --kubernetes-version 1.31

# 升级后发现问题:回滚到上一版本
aws eks rollback-cluster-version \
  --name my-cluster \
  --kubernetes-version 1.30

安全升级策略

1. 创建回滚点(自动备份 etcd)
2. 升级控制平面
3. 运行 smoke tests
4. 如果失败 → 回滚
5. 如果成功 → 升级节点组

多集群管理

# 批量升级(带回滚保护)
for cluster in $(aws eks list-clusters --query 'clusters[]' --output text); do
  echo "Upgrading $cluster..."
  aws eks update-cluster-version --name "$cluster" --kubernetes-version 1.31
  # 等待升级完成
  aws eks wait cluster-active --name "$cluster"
  # 运行 smoke test
  kubectl --context="$cluster" get nodes
done

Verification

  1. 创建 EKS 1.30 集群
  2. 升级到 1.31
  3. 验证回滚功能:aws eks rollback-cluster-version --name my-cluster --kubernetes-version 1.30
  4. 确认集群恢复到 1.30

Notes

  • 开源 K8s 不支持控制平面回滚,这是 EKS 独有功能
  • KEP-4330(模拟版本)是社区方向,但尚未 GA
  • 对于受监管环境,版本回滚是升级的前提条件
  • Source: aws.amazon.com/blogs (2026-07-01)