為避免到期版本叢集存在的安全和穩定性風險,保證業務的連貫性,建議您及時升級叢集版本。一個ACK叢集由控制面和節點池兩部分組成。您可以在控制台完成前置檢查以及控制面和節點池的升級。
為什麼需要升級
ACK保證Kubernetes最新3個次要版本的建立。例如,ACK支援Kubernetes 1.28、1.30、1.31三個版本時,1.26版本不再支援建立,到期補丁版本也不再支援建立。更多關於Kubernetes版本支援資訊,請參見Kubernetes版本概覽及機制。
到期版本叢集存在安全隱患和穩定性風險。叢集版本到期後,將無法享受新Kubernetes版本支援的功能特性及缺陷修複,無法獲得及時有效支援人員,面臨無法修複安全性漏洞的風險。
建議您及時主動升級叢集,以便享用最新的功能特性、缺陷修複和更及時的支援人員。
升級叢集時,Container ServiceACK會對您的叢集進行前置檢查,但無法保證檢查出所有不相容的功能配置和API。根據安全責任共擔模型,請您通過協助文檔、控制台資訊、站內信等渠道關注版本發布情況,並在叢集升級時提前瞭解相應版本的升級注意事項。
注意事項
ACK叢集的Kubernetes版本需按照支援的版本依次升級,不支援回退。如需多次升級,請在每次升級後觀察叢集業務是否持續穩定運行,再進行下一次升級。
請查看Kubernetes版本概覽及機制及各版本說明瞭解待升級版本的版本解讀、廢棄API、升級注意事項等,避免因高版本的功能變更導致業務功能不相容。
控制面升級不會影響應用的正常運行。升級過程中API Server會滾動重啟。如果您的應用強依賴於API Server,需進行重連重試。
Kubernetes 1.24不再支援將Docker作為內建容器運行時。叢集由1.22升級至1.24及更高版本,需將節點容器運行時從Docker遷移到containerd,請參見將節點容器運行時從Docker遷移到containerd。
叢集控制面升級將持續5~8分鐘。在此期間,請勿操作叢集。
關於kubelet和容器運行時升級的注意事項,請參見注意事項。
升級說明
升級ACK叢集時,包括控制面升級和節點池升級。大致流程如下。
升級前準備
確定待升級叢集的Kubernetes版本後,仔細閱讀待升級版本的ACK版本發布說明,瞭解升級注意事項,避免升級時潛在的功能不相容問題。請在業務低峰期執行升級操作。
叢集升級中
控制面和節點池升級前,均需通過前置檢查,等待所有檢查項均已通過或修複完成後,可進入後續的升級操作。
控制面升級
ACK託管叢集、ACK Serverless叢集
採用滾動升級的方式。升級控制面組件,包括kube-apiserver、kube-controller-manager、kube-scheduler。
ACK專有叢集
採用原地升級的方式,以更大程度地保證業務的連貫性,減少資料移轉和配置調整的風險。具體流程如下。
當ACK檢測到您的叢集需要進一步升級etcd和Container Runtime時,將依次升級Master節點上的etcd和Container Runtime。
依次選擇Master節點,一次只升級一個Master節點,並展示當前正在升級的Master節點的編號。
升級Master組件,包括kube-apiserver、kube-controller-manager、kube-scheduler。
升級Master節點上的kubelet。
節點池升級
節點池升級包括kubelet和容器運行時的升級。如運行時需從Docker升級為containerd,系統會通過替換系統硬碟(替盤升級)的方式完成升級,即更換磁碟的同時進行作業系統或應用程式的升級。請提前做好系統硬碟的備份工作。其他情況下,保持使用原地升級方式。更多資訊,請參見升級節點池。
ACK將叢集中的節點按照分批策略執行分批升級。
根據節點池依次執行,同一時間只對一個節點池執行升級。
同一個節點池內採用分批升級。第一批升級的節點數為1,後續的批次以2的冪數進行增長。如果暫停後重新恢複升級,依然遵循該分批策略。您可以在節點池升級頁面配置每批升級節點的最大數量,推薦設定為10。具體操作,請參見升級節點池。
叢集升級後
核驗叢集版本資訊,檢查節點池運行是否正常,並檢查叢集業務運行是否正常。
操作步驟
您可以先完成控制面的升級,再升級節點池。升級叢集控制面前,請確保叢集節點的版本與控制面版本相同。例如,如果您的控制面版本為1.30,節點版本為1.28,則您需將節點升級至1.30後,然後才能將控制面升級至1.31。
1、升級控制面
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,選擇目的地組群,並在目的地組群右側操作列,選擇 。
在叢集升級頁面手動升級的操作對象地區,選擇可升級的叢集版本,選擇升級模式為僅控制面,然後單擊前置檢查,提前掃描叢集升級可能存在的潛在風險。
檢查完成後,您可以在前置檢查結果地區查看檢查結果。
結果正常時,升級檢查成功,請繼續進行叢集升級操作。
結果提示異常時,不影響當前叢集的運行及叢集狀態。您可以參見推薦的解決方案進行修複。關於典型修複方案,請參見叢集檢查項及修複方案。
說明Kubernetes 1.20及以後版本的叢集升級前檢查時,會檢查目前的版本是否使用了廢棄API,檢查結果不會影響升級流程,僅作為提示資訊。詳細內容,請參見廢棄API說明。
前置檢查通過後,單擊開始升級,按照頁面提示進行控制面的升級。
升級過程中,您可以在頁面下方查看升級歷史。
升級完成後,請在叢集列表查看叢集版本,確認升級是否成功。新擴容節點的版本也將遵循控制面版本。
2、升級節點池
控制面升級完成後,請儘快在業務低峰期完成節點池的升級。節點池升級包括節點kubelet和容器運行時的升級。功能介紹、相關注意事項及操作步驟,請參見升級節點池。
叢集升級常見問題
叢集升級會持續多長時間?
如何處理叢集升級失敗並提示the aliyun service is not running on the instance?
如何處理節點PLEG not healthy?
升級叢集時出現invalid object doesn't have additional properties
報錯怎麼辦?
相關文檔
ACK對Kubernetes版本支援的機制,請參見Kubernetes版本概覽及機制。
ACK支援版本的版本說明文檔,請參見ACK版本發布說明。
您也可以啟用叢集自動升級功能,降低版本營運壓力,請參見自動升級叢集。