瞭解 scaler 設定
v2
HPA API 的版本可讓您使用稱為 spec.behavior
的 YAML 檔案中的新密鑰,微調其行為的一些層面。 它接受另外兩個索引鍵: scaleDown
和 scaleUp
,其會定義 HPA 在相應減少和相應增加時的行為方式。
每個索引鍵都允許下列值:
機碼 | 類型 | 描述 |
---|---|---|
stabilizationWindowSeconds | int | HPA 尋找計量以計算所需狀態的期間。 的預設值 scaleDown 為 5 分鐘,且沒有的 scaleUp 穩定視窗。 |
selectPolicy | string | 所選取要使用的原則類型,這個值可以是 Min 、Max 或 Disabled 。 |
原則 | HPAScalingPolicy 的陣列 |
要套用的可能原則陣列。 |
HPAScalingPolicy
物件會定義為具有下列索引鍵的物件:
機碼 | 類型 | 描述 |
---|---|---|
type | string | 原則的類型,可以是 Percent 或 Pods 。 |
value | int | 原則的值。 |
periodSeconds | int | 重新套用此原則之前所需的時間量。 |
調整原則可讓您微調調整規模的運作方式。 例如,您可以將原則設定 scaleDown
為 Disabled
,以完全停用相應減少作業,如下列範例所示:
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: contoso-website
namespace: hpa-contoso
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: contoso-website
minReplicas: 1
maxReplicas: 10
behavior:
scaleDown:
selectPolicy: Disabled
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 20
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: 50
您也可以定義 scaleUp
原則,設定一次要向外延展的複本數目 (如下所示):
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: contoso-website
namespace: hpa-contoso
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: contoso-website
minReplicas: 1
maxReplicas: 10
behavior:
scaleUp:
selectPolicy: Max
stabilizationWindowSeconds: 120
policies:
- type: Percent
value: 30
periodSeconds: 60
- type: Pods
value: 7
periodSeconds: 90
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 20
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: 50
在此指令清單中,您會告訴 HPA 尋找最後 120 秒的計量,以計算所需的狀態,並取得這些值的最高值。 完成後,它會計算 30% 的現有 Pod、四捨五入此數位,並將它與七個 Pod 的固定值進行比較。 selectPolicy
由於 設定為 Max
,因此會採用這兩個數位中的較大數目並套用該原則,然後等候periodSeconds
再套用任何原則。
例如,假設網站是以 18 個 Pod 執行,然後遇到持續約 120 秒的尖峰。 所需的狀態是透過計算目前執行中 Pod 的 30% 獲得,也就是 5.4 (四捨五入為 6)。 此值會與第二個原則中的 Pod 數目進行比較,也就是 7。 由於索引 selectPolicy
鍵設定為 Max
,因此會使用這兩個值較大的值。 然後,HPA 會調整 7 秒,並等候 90 秒後再相應增加。 如果尖峰持續到 25 個 Pod,計算會再次完成。 25 個 Pod 的 30% 是 7.5 (四捨五入為 8),大於 7。 現在,HPA 會建立八個新的 Pod,並等候 60 秒後再相應增加。