全部產品
Search
文件中心

Container Service for Kubernetes:AHPA概述

更新時間:Aug 31, 2024

在雲原生情境下,資源容量通常難以預估,而使用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擷取預測結果,常用於與自身業務平台進行整合。

使用說明