在雲原生情境下,資源容量通常難以預估,而使用Kubernetes原生的HPA時需要面對彈性滯後以及配置複雜問題。為此,ACK推出了AHPA(Advanced Horizontal Pod Autoscaler)彈性預測,支援根據業務歷史指標,自動識別彈性周期並對容量進行預測,提前進行彈性規劃,解決彈性滯後的問題。
背景資訊
傳統管理應用執行個體數有固定執行個體數、HPA和CronHPA三種方法。三種方法的缺點如下。
類型 | 缺點 |
固定執行個體數 | 資源浪費嚴重,在業務低穀時仍需要全量支付資源費用。 |
HPA | 彈性觸發滯後,只有達到業務洪峰才會觸發Auto Scaling。 |
CronHPA |
|
針對上述彈性方式存在的問題,ACK支援AHPA彈性預測功能,以提高資源使用率和易用性。AHPA彈性預測根據歷史資料自動規劃未來24小時每一分鐘的應用執行個體數,相當於進行1440個點(一天為1440分鐘)的CronHPA定時配置。如下圖所示,左側為傳統HPA策略,右側為有預測功能的HPA。
傳統HPA策略:在業務量上漲之後開始擴容,滯後的資源供給不能及時補充業務需求。
有預測功能的HPA:根據歷史Pod的Ready Time以及歷史Metrics自動學習規律,在業務量上漲之前的一個Ready Time開始擴容。當業務量上漲時Pod已提前準備,可以及時供給資源。
業務架構
豐富的資料指標:支援包括CPU、GPU、Memory、QPS、RT以及外部指標等。
穩定性保障:AHPA的彈性邏輯基於主動預測、被動兜底的策略,並結合降級保護,保證了資源的穩定性。
主動預測:根據歷史指標預測出未來一段時間的趨勢結果,適用於周期性的應用。
被動預測:即時預測。針對突發流量情境,通過被動預測即時準備資源。
降級保護:支援配置多個時間區間範圍最大、最小值。
多種伸縮方式:AHPA支援伸縮方式包括Knative、HPA以及Deployment:
Knative:解決Serverless應用情境下,基於並發數、QPS或RT彈性冷啟動的問題。
HPA:簡化HPA彈性策略配置,降低使用者使用彈性的門檻,解決使用HPA面臨的彈性滯後問題。
Deployment:直接使用Deployment,自動擴縮容。
核心優勢
更快:毫秒級預測,秒級彈性。
更准:複雜周期識別率95%以上,主動預測和被動預測相結合。
更穩: 支援分鐘級邊界保護配置。
適用情境
有明顯周期性情境。例如直播、線上教育、遊戲服務情境等。
固定執行個體數+彈性兜底。例如常態業務下應對突發流量等。
推薦執行個體數配置情境。提供標準K8s API擷取預測結果,常用於與自身業務平台進行整合。
使用說明
部署並使用AHPA,請參見部署AHPA。
基於GPU指標實現AHPA彈性預測,請參見基於GPU指標實現AHPA彈性預測。
在Knative中使用AHPA彈性預測,請參見在Knative中使用AHPA彈性預測。