節點伸縮
若叢集啟用了節點伸縮功能,為保證自動調整功能不受影響,叢集在升級成功後會自動更新cluster-autoscaler組件至最新版本。叢集升級後,請確認cluster-autoscaler組件版本是否正常。更多資訊,請參見啟用節點自動調整。
叢集升級期間,伸縮模式為極速模式的節點可能會因節點關機而無法完成升級。如果升級結束後存在節點因極速模式未被升級,建議手動移除該節點。
升級叢集至1.18版本後,ACK會預設配置節點資源預留。如果叢集未配置資源預留且節點水位較高,升級後存在Pod驅逐後無法被快速調度的風險。請為節點預留部分資源,推薦CPU使用率不超過50%,記憶體使用量率不超過70%。更多資訊,請參見節點資源預留策略。
在1.24及以下版本的叢集中,如果工作負載的Pod只配置了啟動探針(Startup Probe),Pod會在kubelet重啟後出現短暫的NotReady現象。建議您採用多副本部署策略,將工作負載分散在多個節點上,以確保在某個節點重啟期間仍有足夠的可用Pod。
如果某個Pod通過LoadBalancer類型的Service的SLB地址訪問同一節點上的另一個Pod,並且該Service的externalTrafficPolicy設定為Local,那麼在節點輪轉後,兩個Pod可能不再位於同一個節點上,繼而導致網路不通。
自訂動作系統鏡像非ACK官方嚴格驗證。ACK無法完全保證升級成功。
叢集升級需要使用yum下載升級所需的軟體包。如果您的叢集曾自行修改節點的網路設定或者使用了自訂的作業系統鏡像,需確保節點的yum能正常使用。您可以執行yum makecache進行檢查。
如果您對叢集有過配置更改,例如開啟了SWAP分區、曾通過黑屏操作修改kubelet配置或運行時配置等,叢集升級過程有可能失敗,或自訂配置可能會被覆蓋。
通過替盤方式升級節點時,ACK會進行節點排水操作,遵循Pod Disruption Budget(PDB)的前提下將節點上的Pod驅逐至其他可用節點。為確保服務高可用性,建議您採用多副本部署策略,將工作負載分散在多個節點上,同時為關鍵業務配置PDB,控制同時中斷的Pod數量。
節點排水的預設逾時時間為30分鐘。如果在逾時時間內未能完成Pod遷移,ACK將終止本次升級以確保業務穩定性。
通過替盤方式升級節點時,ACK將按照節點池當前的配置(例如節點登入方式、標籤、汙點、作業系統鏡像、運行時版本)重新初始化節點。正常情況下,更新節點池配置需通過編輯節點池來實現。如您通過其他方式對節點進行了更改,升級時這些更改會被覆蓋。
如果節點中的Pod引用了HostPath,且該HostPath指向系統硬碟,替盤升級後HostPath目錄中資料會丟失。
節點池升級過程中僅支援擴容操作,不支援縮容操作。
如果您的節點為游離節點,即未被節點池管理的Worker節點,需參見遷移游離節點至節點池完成遷移。