Knotenpool aktualisieren

In diesem Thema wird erläutert, wie Sie Ihre Knotenpools aktualisieren können. Sie können Ihre Knotenpools aus folgenden Gründen aktualisieren:

  • So aktualisieren Sie die Version Ihres Knotenpools:
  • So ändern Sie die Anzahl der Knoten in Ihrem Knotenpool:
  • Zum Ändern der Knotenpoolannotationen (nur über die API aktualisierbar)

Sie können auch zusätzliche Parameter in Ihren Knotenpools ändern, die oben nicht aufgeführt sind. Eine vollständige Liste der Parameter, die Sie aktualisieren können, finden Sie in der Dokumentation zu gcloud container azure node-pools update und projects.locations.azureNodePools.patch.

Prozess aktualisieren

In diesem Abschnitt werden die Prozesse beschrieben, die bei GKE on Azure zum Aktualisieren eines Knotenpools erforderlich sind. Der Vorgang unterscheidet sich je nach Umfang der erforderlichen Änderungen am Knotenpool.

Reine Konfigurationsaktualisierung

Wenn GKE on Azure einen Knotenpool aktualisieren kann, ohne Ressourcen neu zu starten oder neu zu erstellen, werden diese Änderungen vorgenommen. Beispielsweise werden durch das Aktualisieren der Anmerkungen des Knotenpools keine Instanzen neu gestartet.

Rolling Update

Wenn für eine Änderung an einem Knotenpool vorhandene virtuelle Maschinen neu gestartet werden müssen, z. B. beim Aktualisieren der Kubernetes-Version, führt GKE on Azure die folgenden Schritte aus:

  1. Ändern Sie den VM-Skalierungsbereich der Knotenpools mit der neuen Konfiguration.
  2. Wählen Sie die zu aktualisierende zugrunde liegende Instanz eines Knotens aus.
  3. GKE on Azure sperrt den Knoten und beendet ihn per Drain. Zu diesem Zeitpunkt können keine neuen Pods auf dem Zielknoten geplant werden. Vorhandene Pod-Objekte auf dem Zielknoten werden auf andere Knoten umgeplant. Pods, die nicht auf einen anderen vorhandenen Knoten umgeplant werden können, verbleiben in der Phase Ausstehend, bis sie geplant werden können.
  4. Aktualisieren Sie die Instanz, um die neueste Konfiguration aus dem VM-Skalierungsbereich abzurufen.
  5. Erstellen Sie ein neues Image und starten Sie die Instanz neu.
  6. Warten Sie, bis die Knoten in diesem Knotenpool fehlerfrei sind.
  7. Wenn alle Knoten in diesem Knotenpool fehlerfrei sind, wählen Sie einen anderen Knoten aus, bis alle Knoten aktualisiert sind. Wenn ein Knoten fehlerhaft ist, versetzt GKE on Azure den Knotenpool in den Status DEGRADED. Weitere Informationen finden Sie unter Fehlgeschlagene Aktualisierungen.

Arbeitslasten während eines Rolling Update für einen Knotenpool schützen

Während des Rolling Updates des Knotenpools berücksichtigt GKE on Azure die PodDisruptionBudget-Konfiguration
bis zu eine Stunde lang, nachdem ein Knoten ausgeglichen wurde. Nach einer Stunde löscht GKE on Azure alle verbleibenden Pods auf dem Knoten.

Während des Rolling Updates führt GKE on Azure bis zu zwei Stunden lang ein ordnungsgemäßes Herunterfahren aller Knoten durch, die neu gestartet oder entfernt werden sollen. Wenn nach zwei Stunden verbleibende Pod-Objekte auf dem Knoten vorhanden sind, löscht GKE on Azure den Knoten und erstellt die Images der zugrunde liegenden VM-Instanz neu.

Größe von Knotenpools anpassen

Für GKE-Knotenpools in Azure ist Cluster Autoscaling standardmäßig aktiviert. Cluster Autoscaling passt die Größe des Knotenpools automatisch an die Anforderungen der Arbeitslasten an. Weitere Informationen zu Cluster Autoscaling finden Sie unter Cluster Autoscaling.

Wenn Sie die maximale und die minimale Anzahl von Knoten im Knotenpool ändern, führt GKE on Azure unterschiedliche Aktionen aus, je nach neuer Konfiguration und aktueller Anzahl der Knoten des Knotenpools. Zu diesen Aktionen gehören:

  • Wenn die aktuelle Knotenanzahl des Knotenpools bereits innerhalb des neuen Bereichs liegt, ändert GKE on Azure die Anzahl der Knoten im Pool nicht.

  • Wenn die neue Mindestanzahl von Knoten die aktuelle Anzahl der Knoten überschreitet, fügt GKE on Azure mehr Knoten hinzu, bis der Knotenpool die neue Mindestgröße erreicht.

  • Wenn die neue maximale Anzahl von Knoten die aktuelle Knotenanzahl des Knotenpools unterschreitet, reduziert GKE on Azure die Größe des Knotenpools durch Ausführen der folgenden Aktionen:

    1. Aktualisieren der Autoscaling-Konfiguration auf die im Knotenpool festgelegte VM-Skalierungsstufe
    2. Knoten zum Entfernen auswählen
    3. Knoten sperren und per Drain beenden
    4. Die zugrunde liegende VM-Instanz löschen
    5. Warten Sie, bis die gelöschte virtuelle Maschine vollständig heruntergefahren ist
    6. Systemdiagnose für den gesamten Knotenpool ausführen
    7. Wiederholen, bis die Anzahl der Knoten die gewünschte Anzahl erreicht hat

So schützt GKE on Azure Arbeitslasten während der Größenanpassung von Knotenpools

Während der Größenanpassung des Knotenpools berücksichtigt GKE on Azure die PodDisruptionBudget-Konfiguration bis zu eine Stunde lang, nachdem ein Knoten ausgeglichen wurde. Nach einer Stunde löscht GKE on Azure alle verbleibenden Pod-Objekte auf dem Knoten.

Während der Größenanpassung des Knotenpools fährt GKE on Azure alle Knoten, die neu gestartet oder entfernt werden sollen, ordnungsgemäß herunter und wartet bis zu zwei Stunden. Wenn nach zwei Stunden verbleibende Pod-Objekte auf dem Knoten vorhanden sind, löscht GKE on Azure die zugrunde liegende VM-Instanz.

Status fehlgeschlagener Aktualisierungen prüfen

Wenn GKE on Azure nach einer Aktualisierung eine Systemdiagnose durchführen und die Systemdiagnose fehlschlägt, wird der Knotenpool als DEGRADED markiert. Mit dem folgenden Google Cloud CLI-Befehl können Sie Statusinformationen zu Ihrem Cluster abrufen:

gcloud container azure node-pools describe NODE_POOL_NAME \
    --cluster CLUSTER_NAME \
    --location GOOGLE_CLOUD_LOCATION

Dabei gilt:

  • NODE_POOL_NAME: der Name des Knotenpools.
  • CLUSTER_NAME: der Name Ihres Clusters
  • GOOGLE_CLOUD_LOCATION: die Google Cloud Region, die Ihren Cluster verwaltet

Die Ausgabe enthält Informationen zum Status und zur Konfiguration des Knotenpools.

Vorbereitung

Zum Aktualisieren eines Knotenpools benötigen Sie die Berechtigung gkemulticloud.googleapis.com/azureNodePools.update-Identitäts- und Zugriffsverwaltung

Knotenpool aktualisieren

Sie können einen Knotenpool mit der Google Cloud CLI aktualisieren. Zum Aktualisieren eines Knotenpools führen Sie folgenden Befehl aus:

gcloud container azure node-pools update NODE_POOL_NAME \
    --cluster CLUSTER_NAME \
    --location GOOGLE_CLOUD_LOCATION \
    --node-version NODE_POOL_VERSION \
    --min-nodes MIN_NODES \
    --max-nodes MAX_NODES     

Dabei gilt:

  • NODE_POOL_NAME: ist der Name des Knotenpools, der aktualisiert werden soll.
  • CLUSTER_NAME: ist der Name des Clusters, an den der Knotenpool angehängt werden soll.
  • GOOGLE_CLOUD_LOCATION: die unterstützte Google Cloud Region, die Ihren Cluster verwaltet, z. B. us-west1
  • NODE_POOL_VERSION: ist die neue unterstützte Knotenpoolversion
  • MIN_NODES: ist die neue Mindestanzahl von Knoten, die der Knotenpool enthalten darf. Muss 0 oder größer sein
  • MAX_NODES: ist die neue maximale Anzahl an Knoten, die der Knotenpool enthalten darf. Muss mindestens 1 sein und den Wert von MIN_NODES haben.

Aktualisierungsvorgang abbrechen

Führen Sie den folgenden Befehl aus, um einen laufenden Knotenpool-Aktualisierungsvorgang abzubrechen:

gcloud container azure operations cancel OPERATION_NAME

Ersetzen Sie OPERATION_NAME durch den Namen des Aktualisierungsvorgangs.

Hinweis: Wenn Sie einen laufenden Vorgang zum Aktualisieren eines Knotenpools abbrechen, werden bereits abgeschlossene Knotenupdates nicht rückgängig gemacht. Dies kann zu einem teilweise aktualisierten Knotenpool führen.

Nächste Schritte