| title | EKS Kubernetes 版本回滚 — 安全升级集群 | ||||||
|---|---|---|---|---|---|---|---|
| domain | ops | ||||||
| subdomain | kubernetes | ||||||
| tags |
|
||||||
| source | aws.amazon.com/blogs | ||||||
| status | published | ||||||
| confidence | 0.9 | ||||||
| created | 2026-07-01 | ||||||
| verified_date | |||||||
| domain_expert |
升级 Kubernetes 控制平面是单向操作——开源 K8s 不支持控制平面回滚。团队因此延迟升级,错过安全补丁。
开源 Kubernetes 的控制平面升级不可逆。社区 KEP-4330 引入了模拟版本来缓解,但实践中团队仍需构建复杂的补偿机制(bake periods、stagger groups、automated sign-offs)。
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.301. 创建回滚点(自动备份 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- 创建 EKS 1.30 集群
- 升级到 1.31
- 验证回滚功能:
aws eks rollback-cluster-version --name my-cluster --kubernetes-version 1.30 - 确认集群恢复到 1.30
- 开源 K8s 不支持控制平面回滚,这是 EKS 独有功能
- KEP-4330(模拟版本)是社区方向,但尚未 GA
- 对于受监管环境,版本回滚是升级的前提条件
- Source: aws.amazon.com/blogs (2026-07-01)