彈性伸縮是根據業務需求和策略,經濟地自動調整彈性計算資源的管理服務。本文介紹彈性伸縮的背景信息和彈性伸縮涉及的組件。
背景介紹
彈性伸縮是ACK被廣泛采用的功能,典型的場景包含在線業務彈性、大規模計算訓練、深度學習GPU或共享GPU的訓練與推理、定時周期性負載變化等。彈性伸縮分為兩個維度:
工作負載伸縮(調度層彈性):主要負責修改工作負載的調度容量變化。例如,HPA是典型的調度層彈性組件,可以調整應用的副本數,調整的副本數會改變當前負載占用的調度容量,從而實現調度層的伸縮。
節點伸縮(資源層彈性):在集群的容量規劃不能滿足集群調度容量時,會擴容節點資源,進行調度容量的補充。
兩層的彈性組件與能力可以分開使用,也可以結合在一起使用,并且兩者之間是通過調度層面的容量狀態進行解耦。
ACK彈性伸縮組件介紹
工作負載伸縮彈性組件
組件名稱 | 組件介紹 | 適用場景 | 使用限制 | 參考文檔 |
HPA | Kubernetes內置組件,主要面向在線業務。 | 在線業務 | 適用于Deployment、StatefulSet等實現scale接口的對象。 | |
VPA(alpha) | 開源社區組件,主要面向大型單體應用。 | 大型單體應用 | 適用于無法水平擴展的應用,通常是在Pod出現異?;謴蜁r生效。 | |
CronHPA | ACK開源的組件,主要面向應用資源使用率存在周期性變化的場景。 | 周期性負載業務 | 適用于Deployment、StatefulSet等,實現了scale接口的對象。此外CronHPA提供了HPA對象的兼容能力,您可以同時使用CronHPA與HPA。 | |
UnitedDeployment | ACK組件,主要面向精細化角度場景,例如希望在不同的可用區進行負載分布。 | 精細調度場景 | 適用于在線業務精細化控制的場景。例如,一個Deployment的部分應用運行在ECS上,而超出的部分運行在ECI上。 |
節點伸縮彈性組件
組件名稱 | 組件介紹 | 適用場景 | 資源交付速度 | 參考文檔 |
cluster-autoscaler組件 | Kubernetes社區開源組件,節點水平伸縮組件,阿里云提供了調度、彈性優化、成本優化的功能。 | 全場景支持,適合在線業務、深度學習、大規模成本算力交付等。 | 以100節點為一個交付批次為例:
| |
虛擬節點組件 | ACK開源組件,提供無服務器運行時環境。開發者無需關心節點資源,只需針對Pod按量付費即可。 | 部分場景支持,主要包括在線突增流量、CI/CD、大數據作業。 | 以1000個Pod為一個交付批次為例:
| |
即時彈性(GOATScaler) | 即時彈性是一個基于事件驅動的節點伸縮控制器,兼容現有的開啟集群自動彈性伸縮的節點池語義與行為。 | 支持所有類型的應用對其無感開啟及使用。 | 以100節點為一個交付批次為例:
|
彈性伸縮日志
關于如何配置收集彈性伸縮的日志,請參見收集系統插件日志。