Cluster-Autoscaling

In diesem Dokument wird das Cluster-Autoscaling beschrieben, das die Größe Ihrer Knotenpools automatisch steuert. Cluster-Autoscaling wird aktiviert, wenn Sie Mindest- und Höchstwerte für die Anzahl der Knoten in einem Knotenpool angeben. Diese Werte geben Sie beim Erstellen eines Knotenpools oder beim Aktualisieren eines Knotenpools an.

Knotenpool automatisch skalieren

Das Cluster-Autoscaling passt die Größe der Knoten in einem Knotenpool automatisch an die Anforderungen der Arbeitslasten an. Sie müssen weder Knoten manuell hinzufügen oder entfernen noch Ihre Knotenpools überdimensionieren. Stattdessen geben Sie eine Mindest- und eine maximale Größe für den Knotenpool an. Alles andere erfolgt automatisch.

Wenn Ressourcen beim Autoscaling Ihres Clusters gelöscht oder verschoben werden müssen, können Ihre Arbeitslasten vorübergehend unterbrochen werden. Umfasst eine Arbeitslast beispielsweise einen Controller mit einem einzelnen Replikat, kann der Pod dieses Replikats auf einen anderen Knoten verschoben werden, wenn der aktuelle Knoten gelöscht wird. Aus diesem Grund müssen Sie Ihre Arbeitslasten so entwerfen, dass mögliche Unterbrechungen toleriert werden oder wichtige Pods nicht unterbrochen werden.

So funktioniert das Cluster-Autoscaling

Cluster Autoscaler wird jeweils für einen Knotenpool aktiviert. Wenn Sie das Cluster Autoscaling zum Konfigurieren eines Knotenpools verwenden, geben Sie eine minimale und eine maximale Größe für den Knotenpool an. Sie können die Mindest- und Maximalgröße ändern, wenn Sie einen Knotenpool erstellen oder Knotenpool aktualisieren.

Das Cluster-Autoscaling vergrößert bzw. verkleinert den Knotenpool automatisch entsprechend den Ressourcenanfragen (statt der tatsächlichen Ressourcennutzung) in diesem Knotenpool. Das Cluster-Autoscaling fügt Knoten hinzu, wenn Pod-Objekte nicht planbar sind und nicht genügend Kapazität im Knotenpool vorhanden ist, um Anfragen zu erfüllen.

Das Cluster-Autoscaling entfernt außerdem Knoten, wenn diese nicht ausgelastet sind und alle Pod-Objekte auf einer kleineren Anzahl von Knoten geplant werden können. Wenn der Knoten nach 10 Minuten nicht ordnungsgemäß geleert werden kann, wird der Knoten zwangsweise beendet. Dieser Zeitraum kann nicht konfiguriert werden.

Wenn ein Pod zu wenige Ressourcen anfordert (z. B. wenn die Standardeinstellungen unzureichend sind), wird diese Situation von Cluster-Autoscaling nicht korrigiert. Sie können dafür sorgen, dass Cluster-Autoscaling so präzise wie möglich funktioniert, wenn Sie angemessene Ressourcenanfragen für alle Ihre Arbeitslasten stellen. Weitere Informationen finden Sie unter Ressourcen für Container verwalten.

Einsatzkriterien

Das Cluster-Autoscaling geht bei der Änderung der Größe eines Knotenpools von folgenden Annahmen aus:

  • Alle replizierten Pod-Objekte können auf einem anderen Knoten neu gestartet werden. Dies führt unter Umständen zu einer kurzen Störung. Wenn Ihre Arbeitslast keine Unterbrechungen toleriert, konfigurieren Sie die Arbeitslast so, dass sie in einem Knotenpool mit deaktiviertem Autoscaling ausgeführt wird. Weitere Informationen finden Sie unter Planung mit Knotenmarkierungen steuern.
  • Das Cluster-Autoscaling kann alle manuellen Knotenverwaltungsvorgänge überschreiben.
  • Alle Knoten in einem einzelnen Knotenpool haben dieselben Labels.
  • Das Cluster-Autoscaling wählt eine Knotengruppe mit der geringsten inaktiven CPU oder dem nicht verwendeten Speicher nach dem Hochskalieren aus. Dieses Verhalten wirkt sich darauf aus, welche Knotenpools hochskaliert werden, wenn sich im selben Cluster verschiedene Knotengrößen befinden (z. B. Knoten mit hoher CPU-Anzahl oder großem Arbeitsspeicher).

Mindest- und Maximalgröße von Knotenpools

Sie können die Mindest- und Maximalgröße für jeden Knotenpool in Ihrem Cluster mit den Flags min-nodes und max-nodes angeben. Wenn Sie das Autoscaling deaktivieren möchten, legen Sie für min-nodes und max-nodes dieselbe Zahl fest. Cluster Autoscaler trifft die Skalierungsentscheidungen innerhalb dieser Größengrenzen.

Achten Sie beim Festlegen der maximalen Größe der Knotenpools darauf, dass sie groß genug ist, um alle Arbeitslasten auszuführen. Wenn die Knotenpools in Ihrem Cluster nicht genügend Arbeitsspeicher und CPU haben, um alle Ihre Arbeitslasten auszuführen, können Ausfälle auftreten.

Arbeitslasten mit PodDisruptionBudget schützen

Sie können GKE on Azure zum Schutz vor Unterbrechungen von Arbeitslasten mit einem PodDisruptionBudget konfigurieren. Beim Erstellen eines PodDisruptionBudget geben Sie die Mindestanzahl von Pod-Replikaten an, die verfügbar sein sollen, oder die maximale Anzahl von Pod-Replikaten, die zu einem bestimmten Zeitpunkt nicht verfügbar sein können. Weitere Informationen finden Sie unter Unterbrechungsbudget für Ihre Anwendung festlegen.

Nächste Schritte