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