Auto Scaling是根據業務需求和策略,經濟地自動調整彈性計算資源的管理方式。本文介紹Auto Scaling的背景資訊和Auto Scaling的組件資訊。
背景介紹
Auto Scaling是K8s上被廣泛採用的功能,典型的情境包含線上業務彈性、定時周期性負載變化等。ACS目前支援HPA、CronHPA、AHPA、KEDA和AVPAAuto Scaling策略,通過感知應用負載或設定時間表,動態調整應用副本數或者應用的資源規格,以確保資源的高效利用和服務的穩定性。
Auto Scaling組件介紹
組件名稱 | 組件介紹 | 適用情境 | 使用限制 | 參考文檔 |
HPA | Kubernetes內建群組件,主要面向線上業務。 | 線上業務 | 適用於Deployment、StatefulSet等實現了scale介面的對象。 | |
CronHPA | 開源組件,主要面嚮應用資源使用率存在周期性變化的情境。 | 周期性負載業務 | 適用於Deployment、StatefulSet等,實現了scale介面的對象。此外CronHPA提供了HPA對象的相容能力,您可以同時使用CronHPA與HPA。 | |
AHPA | 開源組件,主要面向有明顯周期性情境。例如直播、線上教育、遊戲服務等。 | 周期性負載業務 | 適用於Deployment、StatefulSet等實現了scale介面的對象。此外,AHPA彈性預測需要至少七天的應用歷史資料作為預測基礎。 | |
KEDA | 開源組件,適用於音視頻離線轉碼、事件驅動作業、流式資料處理等情境。 | 事件驅動的負載業務 | 適用於Deployment、StatefulSet等實現了scale介面的對象。 | |
AVPA | 應用市場組件, 主要面向不適合做水平彈性的有狀態或者作業, 例如遊戲服務,離線作業等,以及規格設定不合理需要動態調整的業務。 | 應用啟動加速 短期負載變化業務 | 適用於任何工作負載。AVPA 適用於10分鐘及以上的短期負載變化,且目前只支援調整CPU資源, 不適用於秒級的負載突發變化以及記憶體資源的調整。 |