節點池是具有相同屬性的一組節點的邏輯集合,允許對節點進行統一的管理和營運,例如節點升級、Auto Scaling等。ACK還提供多種節點池自動化營運能力,包括OS CVE漏洞自動修複、故障節點自動回復等,以降低營運成本。
節點池介紹
簡單來說,節點池是一個配置模板,後續節點池中擴容出的節點都將使用它的配置。一個叢集中可以建立多個不同配置和類型的節點池。節點池的配置包含節點的屬性,例如節點執行個體規格、計費類型、可用性區域(vSwitch)、作業系統鏡像、CPU架構、標籤和汙點等。這些屬性可以在建立節點池時指定,也可以在建立後編輯。
ACK節點池功能推出前建立的老叢集中,可能存在未被節點池管理的游離Worker節點。如仍需要保留這些節點,推薦將其納入節點池進行管理。具體操作,請參見遷移游離節點至節點池。
可使用單節點池,減少管理和配置的複雜性,也可使用多節點池,實現更精細的資源隔離和不同類型節點的混合部署管理。
單節點池 | 多節點池 |
通過一個節點池管理多個團隊或多種工作負載的計算資源,簡化操作和維護工作。單節點池可支援以下功能。
目前不支援混合不同作業系統類型和CPU架構(Arm和x86)的執行個體。 | 建立多個節點池,為不同工作負載或團隊提供獨立的計算資源,從而避免資源爭用和潛在的安全風險。適用於以下情境。
|
使用多節點池時,可通過調度策略定義不同節點池的優先順序順序,以最佳化資源和成本管理。例如以下情境。
控制不同成本的計算資源供給(例如搶佔式執行個體、訂用帳戶執行個體等)的優先順序順序,以降低成本。
根據工作負載需求,按比例分配不同類型的執行個體,例如x86架構和Arm架構的使用比例。
節點池功能
ACK在節點池維度提供多種節點管理能力。如需減少Worker節點營運壓力,更關注於上層應用開發,建議開啟節點池的託管能力,使用多種自動化營運能力。
基礎功能
功能項 | 說明 | 相關文檔 |
建立、編輯、刪除與查看 |
| |
手動或自動擴縮容 |
| |
添加已有節點 | 如購買ECS執行個體後需將其添加到ACK叢集中作為Worker節點,或移除Worker節點後需重新加入節點池,可以使用添加已有節點的功能。此功能存在一些使用限制和注意事項,請參見文檔瞭解。 | |
移除節點 | 如果不再需要某些節點,可將節點從叢集或節點池中移除。請按標準化操作移除,避免出現預期外行為。 | |
升級kubelet版本 | 可通過自動升級叢集實現kubelet和運行時的自動升級 升級節點池中節點的kubelet版本和containerd版本。 | |
更換作業系統 | 支援作業系統版本的升級和作業系統類型的更換(例如將EOL的作業系統切換為ContainerOS或Alibaba Cloud Linux)。 | |
CVE漏洞修複 | 可開啟自動化營運能力 手動執行CVE漏洞的掃描並修複節點作業系統存在的安全性漏洞。部分CVE漏洞的修複需要通過重啟節點來實現,請參見文檔瞭解功能說明及注意事項。 | |
自訂節點池kubelet參數 | 在節點池維度自訂節點的kubelet參數配置,調整節點行為,例如調整叢集資源預留以調配資源用量等。 | |
自訂節點池OS參數 | 在節點池維度自訂節點的OS參數配置,以調優系統效能。 | |
成本洞察 | 節點池維度資源使用方式及成本分布分析,便於節約成本,提升叢集資源使用率。 |
自動化營運能力
啟用節點池的自動化營運能力能夠降低Worker節點的營運負擔,讓ACK自動化完成某些營運操作,例如作業系統(OS)CVE漏洞自動修複、kubelet自動升級、節點故障自愈等。但如果業務對底層節點的變更比較敏感,無法容忍節點的重啟以及業務Pod的遷移,不推薦啟用。
準備工作
確保作業系統為Alibaba Cloud Linux 3容器最佳化版、ContainerOS、Alibaba Cloud Linux、Red Hat、Ubuntu。
關於ACK叢集支援的作業系統鏡像介紹及鏡像的使用限制,請參見作業系統。
使用節點池的自動化營運能力前,需在Container Service管理主控台的節點池頁面完成以下操作(配置完成後均支援修改)。
關於如何建立和編輯節點池,請參見建立和管理節點池。
功能介紹
功能項 | 說明 |
節點自愈 | ACK會自動監控節點狀態,在節點發生異常時自動執行自愈任務,修複系統和K8s組件異常以及節點執行個體異常問題,請參見開啟節點自愈。 |
OS CVE漏洞自動修複 | ACK將掃描節點上存在的安全性漏洞,根據叢集營運視窗排期並執行CVE漏洞修複計劃,以提升叢集穩定性、安全性、合規性。相關注意事項,請參見修複節點池作業系統CVE漏洞。 |
ECS系統事件自動響應 | 支援ECS系統事件的自動響應。目前支援的系統事件類型如下。
|
自2026年01月31日起,託管節點池 kubelet 和容器運行時的自動升級配置入口將下線,可配置自動升級叢集來完成節點池的自動升級。詳情請參見【產品變更】關於託管節點池安全性漏洞修複和自動升級的變更公告。
節點池生命週期
ACK叢集節點池的生命週期涉及多個階段和狀態,從節點池的建立部署、運行維護(擴容縮容、更新升級、節點移除等),到最終的刪除。不同狀態的含義和流轉如下。
節點池狀態 | 說明 |
初始化中(initial) | 正在建立節點池。 |
已啟用(active) | 成功建立節點池,運行中。 |
失敗(failed) | 節點池建立失敗。 |
擴容中(scaling) | 節點池擴容中或正在添加節點。 |
更新中(updating) | 節點池配置更新中。 |
移除節點中(removing_nodes) | 正在移除節點池中的節點。 |
升級中(upgrading) | 節點池升級中。 |
修複中(repairing) | 節點池修複中,例如修複節點池節點、節點池CVE漏洞等。 |
刪除中(deleting) | 正在刪除節點池。 |
已刪除(deleted,該狀態您不可見) | 成功刪除節點池。 |
刪除失敗(deleted_failed) | 節點池刪除失敗。請重新刪除。 如仍然刪除失敗,請提交工單。 |
節點池計費
使用節點池和節點池提供的自動化營運能力不收費,但節點池內ECS執行個體等雲資源由對應的雲產品收取費用。
關於ECS執行個體的計費說明,請參見計費概述。
如需修改節點池中已有節點的付費類型,請參見隨用隨付轉訂用帳戶。修改節點池的付費類型僅對擴容的新節點生效,不會改變節點池內已有節點的付費類型。
關於Auto Scaling組的計費詳情,請參見Auto Scaling產品計費。
相關術語
首次使用節點池前,建議瞭解節點池相關的概念術語。
伸縮組:當對節點池進行擴容和縮容時,ACK通過Auto Scaling服務下發擴容和移除節點的操作。節點池與彈性伸縮組執行個體為一一對應的關係。一個伸縮組是一個或多個ECS執行個體(Worker節點)的合集。
伸縮配置:節點池底層使用伸縮組態管理節點配置。ESS伸縮配置是Auto Scaling時ECS執行個體使用的模板。當Auto Scaling觸發彈性擴張活動後,Auto Scaling以該伸縮配置為模板自動建立ECS執行個體。
伸縮活動:節點池的每次擴縮容、添加節點、移除節點都會觸發伸縮活動。觸發伸縮活動後,所有擴容和縮容動作都交由系統自動完成,並留下相關記錄。可通過節點池的伸縮活動查看節點池的歷史伸縮活動記錄。
替換系統硬碟:節點池的某些操作,例如自動添加已有節點、更換容器運行時等,會通過替換節點系統硬碟(替盤升級)的方式初始化節點。該節點的執行個體屬性不發生改變,例如節點名稱、執行個體ID、IP等,但節點系統硬碟上的資料將被刪除。額外掛載到該節點上的資料盤不受影響。
ACK執行替盤時會進行節點排水操作,遵循Pod Disruption Budget(PDB)的前提下將節點上的Pod驅逐至其他可用節點。為確保服務高可用性,建議採用多副本部署策略,將工作負載分散在多個節點上,同時為關鍵業務配置PDB,控制同時中斷的Pod數量。
原地升級:與替盤升級對應的一種升級方式,直接在原節點上更新替換所需的組件。原地升級不會替換系統硬碟,也不會重新初始化節點,原節點的資料不受影響。
相關文檔
關於叢集支援的Kubernetes資源(例如叢集中最大支援的節點數量、Pod數量等)容量上限,請參見配額(Quota)。
ACK支援自動升級叢集。
1.24版本的叢集將不再支援使用Docker作為內建容器運行時,請遷移至containerd,請參見將節點容器運行時從Docker遷移到containerd。
隨著叢集負載的增加,可啟用Auto Scaling方案,動態調整節點資源,請參見Auto Scaling。
如需指定應用Pod使用的節點池,請參見調度應用至指定節點池。
ACK託管叢集基礎版支援的節點上限為10,建議熱遷移至ACK託管叢集Pro版以獲得更大的資源配額,請參見熱遷移ACK託管叢集基礎版至ACK託管叢集Pro版。
如果在使用節點或節點池的過程中遇到問題,可參見節點與節點池FAQ進行自排查。
ACK提供叢集成本管理解決方案,請參見成本套件。
節點池相關的最佳實務,請參見節點與節點池最佳實務。