A méretezési konfigurációk ismertetése
A v2
HPA API verziója lehetővé teszi viselkedésének néhány aspektusának finomhangolását egy új kulccsal a YAML-fájlban.spec.behavior
Két másik kulcsot is elfogad: scaleDown
a leskálázáskor és scaleUp
a felskálázáskor a HPA viselkedését meghatározó kulcsokat.
A következő értékek engedélyezettek az egyes kulcsokhoz:
Kulcs | Type | Description |
---|---|---|
stabilizationWindowSeconds | egész | Az az időszak, amelyben a HPA metrikákat keres a kívánt állapot kiszámításához. Az alapértelmezett érték scaleDown öt perc, és nincs stabilizációs időszak a következőre scaleUp : . |
selectPolicy | sztring | A használni kívánt házirendtípus, ez az érték lehet Min , Max vagy Disabled . |
policies | tömbje HPAScalingPolicy |
A lehetséges alkalmazható szabályzatok tömbje. |
Az HPAScalingPolicy
objektum az alábbi kulcsokkal rendelkező objektumként van definiálva:
Kulcs | Type | Description |
---|---|---|
típus | sztring | A szabályzat típusa lehet Percent vagy Pods . |
Érték | egész | A szabályzat értéke. |
periodSeconds | egész | A szabályzat ismételt alkalmazásához szükséges idő. |
A méretezési szabályzatok lehetővé teszik a skálázás működésének finomhangolását. A leskálázási műveletet például letilthatja úgy, hogy a scaleDown
szabályzatot a következő példában láthatóra Disabled
állítja:
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
A replikák számát is beállíthatja egy szabályzat definiálásával scaleUp
, például a következő módon:
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
Ebben a jegyzékben azt mondja a HPA-nak, hogy keresse meg a metrikák utolsó 120 másodpercét, hogy kiszámítsa a kívánt állapotot, és a legmagasabb értéket kapja. Ha így tesz, kiszámítja a meglévő podok 30%-át, felfelé kerekíti ezt a számot, és összehasonlítja a hét pod rögzített értékével. Mivel a selectPolicy
beállítás Max
értéke , a két szám közül a nagyobb számot veszi igénybe, és alkalmazza ezt a házirendet, majd megvárja, amíg újra alkalmazza a szabályzatokat periodSeconds
.
Tegyük fel például, hogy a webhely 18 podtal fut, majd körülbelül 120 másodpercig tartó csúcsot tapasztal. A kívánt állapot kiszámítása az aktuális futó podok 30%-ának kiszámításával történik, ami 5,4 (6-ra kerekítve). Ezt az értéket összehasonlítjuk a második házirend podjainak számával, ami 7. Mivel a selectPolicy
kulcs értéke Max
a következő, a két érték nagyobb értékét használja. Ezután a HPA 7-sel skáláz, és 90 másodpercet vár a felskálázás előtt. Ha a kiugró érték 25 podig folytatódott, a számítás újra megtörténik. A 25 pod 30%-a 7,5 (8-ra kerekítve), ami nagyobb, mint 7. A HPA most nyolc új podot hoz létre, és 60 másodpercig vár, mielőtt újra felskálázható.