Omówienie konfiguracji narzędzia scaler
Wersja v2
interfejsu API HPA umożliwia dostosowanie niektórych aspektów jego zachowania przy użyciu nowego klucza w pliku YAML o nazwie spec.behavior
. Akceptuje dwa inne klucze: scaleDown
i scaleUp
, które definiują sposób działania hpa podczas skalowania w dół i skalowania w górę.
Dla każdego z tych kluczy dozwolone są następujące wartości:
Key | Type | Opis |
---|---|---|
stabilizacjaWindowSeconds | int | Okres, w którym HPA szuka metryk do obliczenia żądanego stanu. Wartość domyślna wynosi scaleDown pięć minut i nie ma okna stabilizacji dla elementu scaleUp . |
selectPolicy | string | Wybrany typ zasad do użycia może mieć Min wartość , Max lub Disabled . |
policies | tablica HPAScalingPolicy |
Tablica możliwych zasad do zastosowania. |
Obiekt HPAScalingPolicy
jest definiowany jako obiekt z następującymi kluczami:
Key | Type | Opis |
---|---|---|
type | string | Typ zasad może mieć wartość Percent lub Pods . |
wartość | int | Wartość zasad. |
periodSeconds | int | Czas wymagany przed ponownym zastosowaniem tych zasad. |
Zasady skalowania umożliwiają dostosowanie sposobu działania skalowania. Na przykład można całkowicie wyłączyć operację skalowania w dół, ustawiając scaleDown
zasady na Disabled
, jak pokazano w poniższym przykładzie:
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
Można również ustawić liczbę replik do skalowania w poziomie naraz, definiując scaleUp
zasady w następujący sposób:
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
W tym manifeście mówisz HPA, aby wyszukać ostatnie 120 sekund metryk w celu obliczenia żądanego stanu i uzyskać najwyższy z tych wartości. Gdy tak się dzieje, oblicza 30% istniejących zasobników, zaokrągla tę liczbę w górę i porównuje ją ze stałą wartością siedmiu zasobników. Ponieważ parametr selectPolicy
jest ustawiony na Max
wartość , przyjmuje większą liczbę tych dwóch liczb i stosuje te zasady, a następnie czeka periodSeconds
przed ponownym zastosowaniem zasad.
Załóżmy na przykład, że witryna internetowa działa z 18 zasobnikami, a następnie występuje skok, który trwa około 120 sekund. Żądany stan jest obliczany przez obliczenie 30% bieżących uruchomionych zasobników, czyli 5,4 (zaokrąglone do 6). Ta wartość jest porównywana z liczbą zasobników w drugiej zasadach, czyli 7. selectPolicy
Ponieważ klucz jest ustawiony na Max
wartość , używa większej wartości tych dwóch wartości. Następnie narzędzie HPA skaluje się o 7 i czeka 90 sekund przed ponownym skalowaniem w górę. Jeśli skok nadal wynosi 25 zasobników, obliczenie zostanie wykonane ponownie. 30% z 25 zasobników wynosi 7,5 (zaokrąglone do 8), co jest większe niż 7. Teraz narzędzie HPA tworzy osiem nowych zasobników i czeka na 60 sekund przed ponownym skalowaniem w górę.