Zum Hauptinhalt springen

Autoscaling aktivieren

Der Cluster Autoscaler passt die Anzahl der Nodes eines Node Pools automatisch an den Bedarf an. Können Pods mangels Kapazität nicht platziert werden, stellt er zusätzliche Nodes bereit; werden Nodes dauerhaft nicht ausgelastet, entfernt er sie wieder.

Autoscaling wird je Node Pool konfiguriert. Ein Cluster kann Pools mit und ohne Autoscaling gleichzeitig enthalten.

Abgrenzung zum Horizontal Pod Autoscaling

MechanismusSkaliertKonfiguration
Cluster Autoscaling (CA)Anzahl der NodesJe Node Pool im Control Panel
Horizontal Pod Autoscaling (HPA)Anzahl der PodsÜber ein HorizontalPodAutoscaler-Objekt im Cluster

Beide ergänzen sich: HPA startet zusätzliche Pods, CA stellt die dafür nötigen Nodes bereit. Für lastabhängige Skalierung sollten beide aktiv sein. Siehe Horizontal Pod Autoscaling.

Bei der Cluster-Erstellung aktivieren

  1. Aktivieren Sie im Erstellungsdialog unter Choose Cluster capacity die Option Set node pool to autoscale.
  2. Legen Sie Minimum Nodes und Maximum Nodes fest.

Anstelle des Feldes Nodes treten damit die beiden Grenzwerte. Die Summary weist die Kosten anschließend als Spanne aus.

Für einen bestehenden Node Pool aktivieren

  1. Öffnen Sie das Cluster und wechseln Sie in den Tab Resources.
  2. Öffnen Sie am gewünschten Node Pool das Kebab-Menü (drei Punkte).
  3. Aktivieren Sie Set node pool to autoscale und legen Sie Minimum und Maximum fest.
  4. Speichern Sie die Änderung.

In der Übersicht zeigt die Spalte Autoscale anschließend On, die Spalte Nodes die konfigurierte Spanne, etwa 3-5.

Grenzwerte sinnvoll wählen

  • Minimum: Bestimmt die Grundkapazität, die immer bereitsteht. Für produktive Pools mindestens 2, damit die Anwendung während Upgrades erreichbar bleibt. Ein zu niedriges Minimum führt bei plötzlichen Lastspitzen zu Wartezeiten, da neue Nodes erst bereitgestellt werden müssen.
  • Maximum: Begrenzt die Kosten nach oben. Wählen Sie den Wert so, dass er die erwartete Spitzenlast abdeckt – aber nicht so hoch, dass eine fehlerhafte Anwendung unbegrenzt Nodes anfordern kann.

Kosten einschätzen

Abgerechnet werden nur tatsächlich laufende Nodes. Die Zusammenfassung weist deshalb eine Spanne aus.

Beispiel für einen Pool vom Typ C3 – die Kosten skalieren linear mit der Node-Anzahl:

Node-AnzahlKosten / Monat
3 (Minimum)3 × Node-Preis
5 (Maximum)5 × Node-Preis

Die Maximalkosten entstehen ausschließlich bei dauerhafter Vollauslastung.

Voraussetzungen für zuverlässiges Skalieren

Der Autoscaler entscheidet anhand der angeforderten Ressourcen (requests), nicht anhand der tatsächlichen Auslastung. Ohne gesetzte requests kann er den Bedarf nicht korrekt bestimmen:

    spec:
containers:
- name: web
image: nginx:stable
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 256Mi

Zu hoch angesetzte requests führen dazu, dass Nodes hinzugefügt werden, obwohl noch Kapazität frei wäre. Zu niedrige Werte führen zu überlasteten Nodes.

Verhalten prüfen

# Nicht platzierbare Pods erkennen
kubectl get pods --field-selector status.phase=Pending

# Ursache im Abschnitt Events
kubectl describe pod <pod-name>

# Reservierte Kapazität je Node
kubectl describe node <node-name>

Die Meldung 0/3 nodes are available: Insufficient cpu zeigt an, dass der Autoscaler einen zusätzlichen Node bereitstellen sollte. Bleibt das aus, ist das konfigurierte Maximum bereits erreicht.

Hinweise

  • Das Bereitstellen eines neuen Nodes dauert einige Minuten. Autoscaling fängt Lastspitzen daher nicht sofort ab – halten Sie über das Minimum ausreichend Grundkapazität vor.
  • Nodes werden erst entfernt, wenn ihre Pods anderweitig platziert werden können.
  • Pods ohne Controller (also ohne Deployment oder StatefulSet) können das Entfernen eines Nodes verhindern.
  • Ein PodDisruptionBudget wird beim Herunterskalieren berücksichtigt.

Verwandte Themen

Hinweis

Alle Preise verstehen sich zuzüglich Umsatzsteuer.