跳轉到

EKS Cluster Version Upgrade

概念概覽

四階段升級流程

核心知識

四階段升級流程

Control Plane 升級 - 使用 eksctl upgrade cluster 約需 7 分鐘 - 升級後**無法 rollback**,只能 Blue/Green 切換或重建 nodegroup - 前置 pre-upgrade-check 約 3 分鐘

Add-on 升級(最多問題) - ARM 架構(c7g.2xlarge)下,PRESERVE 模式容易 timeout(>31 分鐘) - 腳本 timeout ≠ 升級失敗,需主動用 describe-addon 確認狀態 - Add-on 卡在 UPDATING 的根因:特定節點的 aws-node CrashLoopBackOff(grpc-health-probe :50051 gRPC 健康檢查失敗) - coredns ContainerCreating 卡住的快速解法:cordon 問題節點 → delete stuck pod → 讓 Deployment 重新排程到健康節點,不需修好問題節點本身 - aws-ebs-csi-driver 可能意外出現 UPDATE_FAILED,需監控**所有** add-on 而非只關注目標 add-on

Node Group Rolling Upgrade - eksctl upgrade nodegroup 在 ARM 架構下首次嘗試失敗(NodeCreationFailure) - 改用 aws eks update-nodegroup-version API 直接觸發更透明可控 - 失敗時透過 CloudFormation stack events 查看 NodeCreationFailure 根因 - 用 ASG activities 監控新節點是否成功 Launching - CrashLoopBackOff 的問題節點在 rolling upgrade 過程中**自然被替換終止**,可不急於修復

整體時間預估(ARM 叢集)

Pre-check:      ~3 分鐘
Control Plane:  ~7 分鐘
Add-on:         60-180 分鐘(含問題排查)
Node Group:     30-60 分鐘

經驗教訓

  • ARM 架構(c7g.2xlarge)升級 Add-on 時,直接使用 OVERWRITE 而非 PRESERVE,避免 >31 分鐘 timeout

  • Add-on 卡住時第一步查 aws-node DaemonSet:kubectl get pods -n kube-system -l k8s-app=aws-node -o wide,½ Ready 表示 CNI gRPC 問題

  • coredns 卡在 ContainerCreating 不用修問題節點,直接 delete pod 讓 Deployment 重新排程更快

  • Node Group 升級優先用 aws eks update-nodegroup-version API,比 eksctl 更直接透明

  • Control Plane 升級後不可 rollback,升級前務必完成 pre-upgrade-check

常見陷阱

  • 腳本 timeout 不等於升級失敗,需主動 describe-addon 確認狀態

  • 只監控目標 add-on 不夠,aws-ebs-csi-driver 可能意外 UPDATE_FAILED

  • PRESERVE 模式在 ARM 架構下超過 31 分鐘 timeout 是常見陷阱

  • eksctl upgrade nodegroup 在 ARM 環境不可靠,失敗時難以診斷

最佳實踐

  • Add-on 升級全程用 check_addon_status.sh 監控所有 add-on 狀態

  • Node Group 升級失敗查 CloudFormation stack events:--query ResourceStatus==UPDATE_FAILED

  • 升級腳本 timeout 對 ARM 架構建議調整至 60-90 分鐘

  • 問題節點若即將被 rolling upgrade 替換,可等自然消失而非急於修復

相關概念

來源 Sessions

日期 Session 貢獻摘要

| 2026-03-19 | 7f62faa7-a87f-4880-845e-714dc32b3241 | 記錄了 locust-eks(ARM 架構)從 1.32→1.33 的四階段完整升級流程與各階段踩坑 |


本概念頁面由 Semi-Brain Wiki 系統自動維護

最後更新: 2026-03-19