Inzicht in schaalconfiguraties

Voltooid

Met v2 de versie van de HPA-API kunt u bepaalde aspecten van het gedrag ervan verfijnen met behulp van een nieuwe sleutel in het YAML-bestand met de naam spec.behavior. Er worden twee andere sleutels geaccepteerd: scaleDown en scaleUp, waarmee wordt gedefinieerd hoe de HPA zich gedraagt wanneer u omlaag schaalt en wanneer u omhoog schaalt.

De volgende waarden zijn toegestaan voor elk van deze sleutels:

Key Type Description
stabilisatieWindowSeconds int De periode waarin de HPA zoekt naar metrische gegevens om de gewenste status te berekenen. De standaardwaarde voor scaleDown is vijf minuten en er is geen stabilisatievenster voor scaleUp.
selectPolicy tekenreeks Het geselecteerde type beleid dat moet worden gebruikt, kan Mindeze waarde zijn, Maxof Disabled.
policies matrix van HPAScalingPolicy Een matrix van mogelijke beleidsregels die moeten worden toegepast.

Het HPAScalingPolicy object wordt gedefinieerd als een object met de volgende sleutels:

Key Type Description
type tekenreeks Het type beleid kan of PercentPods.
waarde int Waarde van het beleid.
periodSeconden int Tijd die nodig is voordat dit beleid opnieuw kan worden toegepast.

Met schaalbeleid kunt u de werking van de schaal aanpassen. U kunt de schaal omlaag bijvoorbeeld volledig uitschakelen door een scaleDown beleid in te Disabledstellen op , zoals wordt weergegeven in het volgende voorbeeld:

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

U kunt ook het aantal replica's instellen dat tegelijk moet worden uitgeschaald door een scaleUp beleid te definiƫren, zoals:

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

In dit manifest geeft u de HPA de opdracht om te zoeken naar de laatste 120 seconden metrische gegevens om de gewenste status te berekenen en de hoogste van deze waarden op te halen. Zodra dit is voltooid, wordt 30% van de bestaande pods berekend, wordt dit getal naar boven afgerond en wordt het vergeleken met de vaste waarde van zeven pods. Aangezien de selectPolicy instelling is ingesteld Max, wordt het grotere aantal van deze twee getallen gebruikt en wordt dat beleid toegepast. Vervolgens wacht u periodSeconds voordat u een beleid opnieuw toepast.

Stel dat de website wordt uitgevoerd met 18 pods en dat er een piek optreedt die ongeveer 120 seconden duurt. De gewenste status wordt berekend door 30% van de huidige actieve pods te berekenen. Dit is 5,4 (afgerond op 6). Deze waarde wordt vergeleken met het aantal pods in het tweede beleid, wat 7 is. Omdat de selectPolicy sleutel is ingesteld Maxop, wordt de grotere waarde van deze twee waarden gebruikt. Vervolgens wordt de HPA geschaald met 7 en wacht 90 seconden voordat u weer omhoog schaalt. Als de piek tot 25 pods is voortgezet, wordt de berekening opnieuw uitgevoerd. 30% van 25 pods is 7,5 (afgerond op 8), wat groter is dan 7. De HPA maakt nu acht nieuwe pods en wacht 60 seconden voordat u weer omhoog schaalt.

Test uw kennis

1.

Wat is het stabilisatievenster?

2.

Wat zijn de drie waarden voor selectPolicies?

3.

Wanneer moet u gedrag voor uw HPA definiƫren?