ACK Auto Mode 叢集依賴多種系統組件保障叢集正常運行,將系統組件與業務工作負載混合部署可能導致資源爭搶和相互影響。系統節點池是 ACK Auto Mode 叢集中的專用智能託管節點池,通過標籤、汙點和調度策略將系統組件隔離運行在獨立節點上,提升叢集的可靠性和安全性。系統節點池在建立 ACK Auto Mode 叢集中預設啟用,預設名稱為ack-system,由 ACK 全託管營運。
工作原理
系統節點池的預設名稱為ack-system,通過以下標籤、汙點和調度策略的組合機制,實現系統組件與業務工作負載的嚴格隔離。
機制 | 配置 | 作用 |
專用標籤(Label) |
| 標識節點屬於系統節點池,供調度策略匹配使用。 |
汙點(Taint) |
| 阻止未配置容忍的業務 Pod 調度到系統節點池。 |
節點親和性(Node Affinity) |
| 強制系統組件 Pod 調度到帶有系統節點池標籤的節點。 |
容忍(Toleration) |
| 確保系統組件 Pod 可正常調度到系統節點池。 |
上述機制組合實現以下調度效果:
系統組件調度到系統節點池:通過 Node Affinity 強制調度,同時配置 Toleration 允許通過汙點檢查。
業務 Pod 調度到普通節點池:因業務 Pod 未配置對
CriticalAddonsOnly汙點的容忍,無法調度到系統節點池。
主要特性與優勢
嚴格隔離:系統組件僅調度到系統節點池,與業務節點池嚴格隔離,避免資源爭搶,提升叢集整體的穩定性和效能。
ACK 託管營運:ACK 負責系統節點池的建立、升級和Auto Scaling,無需人工幹預。
ACK僅提供系統節點池能力,不承擔系統節點池對應的資源費用。
常見問題
哪些組件會運行在系統節點池中?
ACK系統組件預設調度到系統節點池運行,包括但不限於:
CoreDNScsi-plugincsi-provisionermetrics-serverack-cost-exporterloongcollector
能否刪除系統節點池?
如無特殊原因,請勿刪除系統節點池。刪除後,系統組件Pod將被驅逐,且由於普通節點池缺少系統節點池標籤,無法滿足節點親和性要求,系統組件將無法被重新調度,可能導致叢集功能異常。
如確需刪除,請先建立一個滿足以下調度要求的替代節點池:
labels:
alibabacloud.com/system-nodepool: "true"
taints:
- key: CriticalAddonsOnly
value: "true"
effect: NoSchedule存量系統組件調度策略
系統組件升級版本時自動調度到系統節點池。
DaemonSet 類組件和控制面託管組件不受影響,仍按原有策略部署。
可以通過手動更改組件的通用配置,將系統組件調度到系統節點池:
機制 | 配置 | 作用 |
節點親和性 | 必須滿足/盡量滿足:必須滿足 Key: 操作符: Value: | 匹配系統節點池標籤 |
調度容忍 | Key: 操作符: Value: 效果: | 允許Pod調度到系統節點池 |
通過控制台或 OpenAPI 新安裝系統組件時,將預設調度到系統節點池。
如使用者手動指定了 NodeAffinity 或 Toleration,系統組件的調度以使用者配置為準。
業務 Pod 能否調度到系統節點池?
預設不可以。如確有需要,可為業務 Pod 添加對 CriticalAddonsOnly 汙點的容忍(Toleration),但不推薦此做法,因為這會破壞隔離性,可能影響系統組件的穩定運行。
如何確認系統節點池已啟用?
您可以在控制台的節點池列表中查看是否存在 ack-system 節點池。