通過配置叢集維護視窗,可將叢集自動升級、CVE修複等計劃內變更操作安排在業務低穀期執行,以保障核心業務在高峰時段的穩定性,並最大限度地降低變更對業務的潛在影響。
適用範圍:ACK託管叢集
叢集維護視窗介紹
叢集維護視窗是一個為ACK叢集預先設定的、可重複的特定時間段。在此期間,ACK將執行叢集自動化營運操作,如叢集自動升級、CVE漏洞自動修複等。
預設情況
ACK會根據任務類型及其影響範圍,自動規劃營運計劃執行的時間及順序,無需手動設定維護視窗。
下圖展示了一個以周為單位的維護視窗樣本。
自訂維護視窗
通過設定合理的自訂維護視窗,限定ACK可執行營運操作的時間,例如將計劃內變更操作限定在業務低穀期執行。
下圖展示了一個以周為單位的維護視窗樣本。
維護視窗定義了允許ACK執行營運操作的時間視窗,但ACK並不一定會立即在下一個可用的維護視窗內執行營運任務。任務的最終執行時間遵循ACK的整體任務下發節奏與全域灰階編排規則。
配置建議
可通過控制台、API或Terraform在建立叢集時配置維護視窗,也可修改已有叢集的維護視窗。配置方式如下:
控制台:建立ACK託管叢集
Terraform:通過Terraform建立ACK託管叢集
配置建議如下:
周期:可選擇每周維護或自訂維護周期。為便於規律性地管理營運活動,建議生產環境採用固定維護周期,並將起始時間設定在業務流量低穀期,例如淩晨00:00至04:00。
時間長度:為避免因視窗期過短導致升級等耗時較長的任務無法完成,建議單次維護視窗時間長度不少於4小時,且每月累計可用的維護總時間長度不少於48小時。
時區:根據業務所在地選擇正確的時區,確保視窗開啟時間符合預期。
應用高可用配置:為確保服務高可用性,建議採用多副本部署策略,將工作負載分散在多個節點上,同時為關鍵業務配置Pod Disruption Budget(PDB),控制同時中斷的Pod數量。
多叢集情境:如有多個生產叢集,建議將維護視窗錯開設定,以實現叢集間的灰階升級,進一步提升整體業務的穩定性。
異常處理
失敗重試:若營運任務在當前維護視窗內執行失敗,ACK將在下一個可用的維護視窗期自動重試該任務。
逾時取消:營運計劃對應的任務通常分批次下發執行。如果某個營運計劃(如CVE修複)的整體執行時間超出當前維護視窗,ACK將按以下方式處理:
未開始的批次:將被自動取消,並順延至下一個維護視窗期執行。
已開始的批次:將繼續執行直至完成,以保證節點狀態的一致性。該批次完成後,後續未開始的新批次將被取消。
二、遵循和不遵循維護視窗的營運操作
在維護視窗期內,ACK會執行一系列自動化的營運操作,但某些緊急或高優任務可能不會等待維護視窗。
遵循維護視窗的營運操作
叢集控制面的Kubernetes版本自動升級。
自動掃描並修複節點作業系統存在的CVE漏洞。
Auto Mode叢集中關鍵系統組件的自動升級。
Auto Mode叢集中節點池鏡像ID的自動更新。
即自動更新節點池的作業系統配置,使得後續新擴容的節點使用新的作業系統鏡像。但不會直接升級存量節點的作業系統。
ECS系統事件的自動響應,(如因系統維護執行個體重啟:SystemMaintenance.Reboot)。
不遵循維護視窗的營運操作
以下操作因其高優先順序或由獨立機制管理,將在需要時立即執行,不遵循維護視窗的限制:
控制面修複:為保障叢集核心服務的穩定性,控制面組件的自愈修複會立即執行,不受維護視窗限制。
節點自愈:當託管節點池中的節點出現故障時,自愈機制會立即介入以恢複節點,不等待維護視窗。
節點自動擴縮容:叢集節點伸縮根據即時的業務負載(CPU/記憶體等)觸發,與計劃性的維護視窗無關。
關鍵安全性漏洞修補:對於嚴重層級的安全性漏洞,為保障叢集與業務的整體安全,ACK保留繞過維護視窗進行緊急修複的權利。