Omówienie konfiguracji narzędzia scaler

Ukończone

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ć Minwartość , Maxlub 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 Maxwartość , 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 Maxwartość , 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ę.

Sprawdź swoją wiedzę

1.

Co to jest okno stabilizacji?

2.

Jakie są trzy wartości dla pozycji selectPolicies?

3.

Kiedy należy zdefiniować zachowanie w usłudze HPA?