當叢集的容量規劃無法滿足應用Pod調度時,您可以使用節點自動調整方案實現節點的自動擴縮。節點自動調整適用於擴容規模較小(例如開啟彈性的節點池數量少於20,或對應節點池中的節點數量少於100),工作負載批次較為穩定,以單次伸縮為主等業務情境。
閱讀前提示
為了讓您更好地使用節點自動調整功能,建議您在閱讀本文檔前,已閱讀節點伸縮概述並瞭解以下內容:
節點自動調整的工作原理與功能特性
哪些業務情境下,節點自動調整可以滿足您的業務訴求
使用節點自動調整前需要瞭解的注意事項
前提條件
步驟一:開啟節點自動調整
使用節點自動調整功能前,您需要在節點池頁面開啟並配置叢集自動Auto Scaling,使節點具備伸縮能力。配置時,請選擇節點伸縮方案為自動調整。
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇 。
在節點池頁面,單擊節點伸縮後方的去配置。
首次使用叢集自動Auto Scaling功能時,按照頁面提示,開通ESS服務並完成授權(如已開通並授權,請跳過)。
ACK託管叢集:完成AliyunCSManagedAutoScalerRole角色授權。
ACK專有叢集:完成KubernetesWorkerRole角色授權和AliyunCSManagedAutoScalerRolePolicy系統策略的授權,入口如下所示。
在節點伸縮配置頁面,選擇節點伸縮方案為自動調整,配置伸縮的配置項,然後單擊確定。
配置
說明
節點池擴容順序策略
隨機策略:存在多個可擴容節點池時,從中任意選擇一個節點池進行擴容。
預設策略:存在多個可擴容節點池時,從中選擇一個資源浪費最少的節點池進行擴容。
優先順序策略:存在多個可擴容節點池時,會按照您自訂的順序選擇優先順序高的節點池進行擴容。
需在建立開啟了彈性的節點池後再操作。
彈性靈敏度
用於調整系統判斷伸縮的間隔時間。預設值為60s。
實施Auto Scaling時,彈性組件會基於調度情況自動觸發擴容。您只需配置縮容條件。
重要ECS節點:僅當同時滿足縮容閾值、縮容觸發時延和靜默時間三個條件時,彈性組件才有可能執行節點縮容。
GPU節點:僅當同時滿足GPU 縮容閾值、縮容觸發時延和靜默時間三個條件時,彈性組件才有可能執行GPU節點縮容。
允許縮容
是否允許進行節點縮容。關閉時,縮容相關配置不生效。請謹慎設定。
縮容閾值
啟用節點自動調整的節點池中,單個節點的請求資源(Request)與單個節點資源容量的比值。
僅當該比值低於配置的閾值時,即節點的CPU和記憶體資源使用率均低於縮容閾值時,節點才有可能被縮容。
GPU 縮容閾值
GPU執行個體的縮容閾值。
僅當該比值低於配置的閾值時,即節點的CPU、記憶體和GPU資源使用率均低於GPU 縮容閾值時,GPU節點才有可能被縮容。
縮容觸發時延
從檢測到有縮容需求(達到縮容閾值)到實際執行縮容操作(縮容Pod數量)之間的時間間隔。單位:分鐘。預設值:10分鐘。
重要僅當滿足縮容閾值配置,且達到縮容觸發時延後,彈性組件才有可能執行節點縮容。
靜默時間
距離最近一次擴容完成後,彈性組件不執行縮容的時間間隔。
在靜默時間內,彈性組件不會縮容節點,但仍會判斷節點是否可以縮容;超過靜默時間後,如果節點滿足縮容閾值和縮容觸發時延兩個條件,彈性組件則會正常執行縮容。例如,當靜默時間為10分鐘,縮容觸發時延為5分鐘時,彈性組件在最近一次擴容後的10分鐘內不會縮容節點,但會在靜默的10分鐘內判斷節點是否符合縮容條件。等待靜默時間結束,節點達到縮容閾值且時間超過縮容觸發時延規定的5分鐘時,彈性組件會繼續執行縮容。
步驟二:配置開啟彈性的節點池
節點自動調整的擴縮對象為開啟自動調整節點池的節點。因此,配置節點自動調整後,您還需要配置至少一個開啟了彈性的節點池。您可以建立一個開啟自動Auto Scaling的節點池,也可以配置已有節點池,為其開啟自動Auto Scaling功能。
下表介紹主要配置項,其中“節點池”均指“開啟彈性的節點池”。更多資訊,請參見建立節點池、編輯節點池。
配置 | 說明 |
自動調整 | 是否開啟自動調整。自動調整可根據業務需求和策略,經濟地自動調整彈性計算資源的管理服務。更多資訊,請參見Auto Scaling概述。開啟前,請先配置節點池的自動Auto Scaling能力,操作步驟可參考步驟一:開啟節點自動調整。 |
執行個體相關的配置項 | 根據執行個體規格或屬性選擇Worker節點池使用的ECS執行個體,可通過vCPU、記憶體、規格類型系列、架構等屬性進行篩選。 節點池擴容時,將從選中的執行個體規格中擴容。具體擴容到的執行個體規格取決於節點池擴縮容策略。選擇的執行個體規格越多,節點池成功彈出節點的機率越大。 節點池內執行個體的規格。單一規格的ECS執行個體庫存容量波動較大,建議配置多種相同規格的執行個體類型,以提高節點伸縮成功率。 如果您選擇的執行個體均為GPU伺服器,您可以按需開啟共用 GPU 調度。更多資訊,請參見共用GPU調度概述。 |
執行個體數量 | 節點池所包含的執行個體數量(不包含您已有的執行個體)。 預設情況下,執行個體數最少為0。超過0時,叢集會預設向節點池中添加執行個體,並將執行個體加入到節點池對應的ACK叢集中。 |
作業系統 | 在開啟自動調整時,支援選擇Alibaba Cloud Linux、Windows鏡像、Windows Core鏡像。 當所選鏡像是Windows鏡像或Windows Core鏡像時,系統將自動設定汙點(Taints) |
節點標籤 | 在叢集中添加節點標籤(Label)後,會自動添加到Auto Scaling擴容出的節點上。 重要 當節點標籤和汙點配置映射到節點池Tag後,自動調整才可識別,且節點池Tag存在數量上限。因此,請將開啟自動調整的節點池配置的ECS標籤、汙點和節點標籤的總數控制在12個之內。 |
擴縮容策略 |
|
伸縮模式 | 支援標準模式和極速模式。
|
汙點 (Taints) | 添加汙點後,叢集將不會將Pod調度到該節點上。 |
建立開啟了彈性的節點池後,您可以參見步驟一:開啟節點自動調整選擇是否配置優先順序策略。優先順序取值範圍為[1, 100],必須為正整數。
步驟三:(可選)結果驗證
完成如上操作後,您便可以使用節點自動調整功能。此時,節點池將顯示已開始自動調整且叢集已自動安裝cluster-autoscaler組件。
節點池已開啟自動調整
在節點池頁面,節點池列表中將展示已開啟自動調整的節點池。
已安裝cluster-autoscaler組件
在叢集管理頁左側導覽列,選擇 。
選擇kube-system命名空間,顯示cluster-autoscaler組件。
常見問題
分類 | 二級分類 | 跳轉連結 |
節點自動調整的擴縮容行為 | ||
縮容行為相關 | ||
拓展支援 | ||
自訂的擴縮容行為 | 通過Pod控制擴縮容行為 | |
通過節點控制擴縮容行為 | ||
cluster-autoscaler組件相關 |