Advanced Horizontal Pod Autoscaler(簡稱:AHPA)是kubernetes中HPA的功能加強. 在兼容原生HPA功能基礎上,增長預測、執行模式配置、縮容控制等功能。用戶可使用AdvancedHorizontalPodAutoscaler對支持scale功能的對象(例如Deployment等)進行彈性伸縮。nginx
HPA在使用方面存在不便之處:算法
AHPA功能分爲兩部分:controller和algorithm。api
針對規律性明顯的應用,通常有以下特徵:
bash
上圖中,紅線表示應用的入網流量(qps),藍線表示容器數。從圖中藍色能夠看出,在qps到來前一段時間(好比:60min)已經開始備容,在qps達到峯值前資源已經ready,下降流量高峯來臨時刻備容應用抖動帶來的風險;在qps峯值事後,資源緩慢回收(縮容速率線性遞減),避免產生浪費。經過上圖能夠看出,針對規律性明顯應用,提早備容,緩慢縮容,最終可以保證應用穩定性的前提下達到成本優化目的。架構
方式一:進入「容器服務」->"市場"->"應用目錄"->"ack-advanced-horizontal-pod-autoscaler"進行安裝,以下圖:
app
方式二:優化
helm install ack-advanced-horizontal-pod-autoscaler -n ahpa複製代碼
helm delete ahpa複製代碼
參數說明默認值ahpa.replicaCountAHPA controller 副本數1
ahpa.imageTagAHPA 鏡像tag.v1.0
ahpa.imagePullPolicyAHPA 鏡像拉取策略Always
ahpa.ALGORITHM_SERVICE_AHPA_SVC_HOSTAHPA 算法依賴svcalgorithm-service
algorithm.replicaCount算法服務 副本數1
algorithm.ports算法服務 端口號5000
algorithm.imageTag算法服務 鏡像tag1.0
algorithm.imagePullPolicy算法服務 鏡像拉取策略Always
alibabaCloudMetricsAdapter.needcreate是否安裝alibaba-cloud-metric-adaptertrue
crds.needcreate是否安裝crdstrue
rbac.needcreate是否配置rbactrue
ui
apiVersion: autoscaling.alibabacloud.com/v1
kind: AdvancedHorizontalPodAutoscaler
metadata:
labels:
controller-tools.k8s.io: "1.0"
name: ahpa-sample-original-support
namespace: kube-system
spec:
scaleTargetRef:
apiVersion: extensions/v1beta1
kind: Deployment
name: nginx-deploy
selector:
matchLabels:
app: nginx-deploy
minReplicas: 2
maxReplicas: 5
# 擴縮模式,scalingUpOnly:只擴模式,observer:觀察模式,auto:擴縮模式
scaleMode: "auto"
# 單位爲分鐘,預測將來60分鐘所需副本數
forecastWindow: 60
metrics:
- type: External
external:
metric:
name: k8s_workload_cpu_util
selector:
matchLabels:
k8s.cluster.id: "xxx"
k8s.workload.name: "nginx-deploy"
k8s.workload.type: "Deployment"
k8s.workload.namespace: "kube-system"
k8s.period: "100"
target:
type: Value
value: 60複製代碼
參數說明默認值scaleMode擴縮模式,scalingUpOnly:只擴模式,observer:觀察模式,auto:擴縮模式"observer"forecastWindow預測將來時間窗口(分鐘),0表示不使用預測功能0阿里雲
Advanced Horizontal Pod Autoscaler可針對週期性規律強的應用進行提早備容,減小擴容資源申請、應用啓動耗時帶來的容量風險,同時更好的支持擴縮模式和擴縮控制,增長了自動擴縮的業務的可用性。spa
本文爲雲棲社區原創內容,未經容許不得轉載。