為避免到期版本存在的安全和穩定性風險,請及時升級叢集。叢集升級包括控制面升級和節點池升級。
升級叢集前,請確保已閱讀升級叢集瞭解升級叢集重要事項。
操作入口
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
在叢集升級頁面選擇可升級的目標版本,按照頁面提示完成升級。
升級控制面
1. 前置檢查
控制面升級前置檢查包括檢查廢棄API、組件相容性、叢集狀態等。
1.20及以上版本的叢集會檢查目前的版本是否使用了廢棄API。檢查結果不影響升級流程,僅作為提示資訊。建議在升級前完成修複,避免影響下一版本叢集的正常運行。
在控制面升級頁簽單擊前置檢查,提前掃描叢集升級可能存在的潛在風險。檢查完成後,在前置檢查結果地區查看檢查結果。
結果正常:升級檢查成功,繼續執行升級。
結果異常:不影響當前叢集的運行及叢集狀態。請參見解決方案完成修複。更多資訊,請參見叢集檢查項及修複方案。
2. 執行升級
耗時:ACK託管叢集、ACK Serverless叢集由ACK託管升級,約5分鐘;ACK專有叢集的Master節點需逐一串列升級,每個節點約8分鐘。
前置檢查處理完成後,單擊立即升級,按照頁面提示進行控制面的升級。升級期間,請勿進行業務應用的發布、變更操作,或叢集擴縮容、節點池管理等營運操作,以免影響升級流程或導致業務異常。
升級後,新擴容節點的版本也將遵循控制面版本。
3. 升級後驗證
控制面完成升級後,建議檢查如下內容:
控制面升級成功,在叢集列表查看叢集版本時已更新至新版本。
API Server和核心組件狀態正常。
業務應用運行正常。
可正常建立Pod。
可正常添加節點。
4.(可選)繼續升級控制面
(可選)當叢集版本為1.30或更高時,ACK託管叢集控制面支援的最高版本可以比叢集中所有節點中最低的 kubelet 版本高 2 個次要版本(Minor Version)。例如,所有節點中最低的 kubelet 版本為1.30時,控制面最高可升級至1.32。
如需進行繼續升級控制面,請參照上述步驟1至3,依次執行控制面前置檢查、升級與驗證,直至控制面達到最高可升級版本。
升級節點池
控制面升級完成後,請儘快在業務低峰期完成節點池升級,包括節點kubelet和容器運行時升級。
1. 配置升級策略並執行升級
耗時:取決於節點分批情況。原地升級每批次約5~10分鐘;替盤升級(不涉及快照)約8分鐘,具體時間長度受排水情況影響;如需建立快照,升級需等待快照結束後執行,快照建立時間受資料量影響。
在升级节点池頁簽的節點池列表,單擊目標節點池對應的立即升級。
在升級策略配置中,確認升級資訊並配置升級策略,然後單擊開始升級,按照頁面提示進行節點池的升級。
如果控制面領先節點kubelet 2個次要版本,節點kubelet將會跨版本升級到與控制面相同的版本。
配置項
說明
升級節點
可升級所有節點,也可選擇指定節點升級。
升級方式
原地升級:直接在原節點上更新替換所需的組件。不替換系統硬碟,也不會重新初始化節點,原節點的資料不受影響。
替盤升級:通過替換節點系統硬碟的方式重新初始化節點。節點的執行個體屬性(如節點名稱、執行個體ID、IP等)不發生改變,但節點系統硬碟上的資料將被刪除。額外掛載到該節點上的資料盤不受影響。
可參見參考資訊:原地升級和替盤升級瞭解升級邏輯和流程說明。
忽略警告層級檢查項
升級節點池時,自動執行的前置檢查出現警告項時,是否繼續執行升級。
批量升級策略
每批次執行最多節點數:ACK同一時間只升級一個節點池,節點池內部根據此配置執行分批升級。如需暫停後重新恢複升級,依然遵循該分批策略。批次節點數遞增:1、2、4、8……直至達到最大並行數,之後每批均按最大並行數執行。
例如:最大並行數為4時,批次節點數依次為1、2、4、4、4……詳細說明請參見參考資訊:原地升級和替盤升級。
自動暫停策略:節點升級過程中的暫停策略。如選擇不暫停時,還可配置每批次間隔時間,即每個升級批次之間是否需要時間間隔或間隔的時間長度(5~120分鐘)。
每批次間隔時間:每批次執行升級中的間隔時間。如選擇不設定,則每一個批次升級完成後立即開始下一個批次的升級。
自動快照:如節點系統硬碟上有重要業務資料,可選擇是否在升級節點池前為節點建立快照,以便進行節點資料的備份和恢複。
2. 升級後驗證
節點池完成升級後,建議檢查如下內容:
節點升級成功,且在節點詳情頁面查看kubelet和containerd版本時已更新至新版本。
Pod調度正常。
業務應用運行正常。
相關文檔
關於升級叢集前和升級過程中的常見問題,請參見常見問題。
ACK對Kubernetes版本支援的機制,請參見版本說明。
自1.24版本起不再支援將Docker作為內建容器運行時,升級至1.24及更高版本時需要將節點容器運行時從Docker遷移到containerd。
自1.30版本起不再支援CentOS和Alibaba Cloud Linux 2,請使用支援中的作業系統。
建議啟用叢集自動升級功能,降低版本營運壓力,請參見自動升級叢集。
建議將叢集中的游離節點納入節點池統一管理後再進行升級,詳見遷移游離節點至節點池。