Auto Scaling是根據業務需求和策略,自動調整計算資源的管理服務,典型的情境包含線上業務彈性、大規模計算訓練、深度學習GPU或共用GPU的訓練與推理等。本文介紹ACK Serverless叢集支援的Auto Scaling方案。
方案 | 一句話介紹 | 擴縮依據的指標 | 使用情境 | 支援的資源類型 | 相關文檔 |
HPA | 在業務負載上升時快速擴容Pod副本來緩解壓力,在業務負載變小時適當縮容以節省資源,是最常執行的 App彈性方案。 |
| 服務波動較大、服務數量多且需要頻繁擴縮容的線上業務情境,例如電商服務、線上教育、金融服務等。 | Deployment、StatefulSet等支援 | |
CronHPA | 類似Crontab的策略定時對Pod進行擴縮容,支援配置時區、執行的日期、跳過執行的日期(例如節假日),支援和HPA協同使用。 | 定時擴縮容 | 業務流量有明顯高峰時段、應用程式需要在特定時間執行任務等情境。 | Deployment、StatefulSet等 | |
VPA | 監控Pod的資源消耗模式,靈活推薦CPU和記憶體資源分派的配置,並在適當的情況下自動進行調整,而不調整Pod的副本數量。 | 推薦並自動調整Pod中容器的CPU及記憶體的Request和Limit | 需要穩定資源配置的有狀態應用的擴容、大型單體應用等情境,通常是在Pod出現異常恢複時生效。 | Deployment、DaemonSet、StatefulSet等 | |
AHPA | 根據業務歷史指標,自動、主動識別彈性周期並對容量進行預測,提前進行彈性規劃,解決彈性滯後的問題。 |
| 業務流量有明顯周期性的情境,例如直播、線上教育、遊戲服務等。 | Deployment、Knative Service等 |