Manuelles Upgrade eines Clusters oder Knotenpools


Standardmäßig sind automatische Upgrades für GKE-Cluster (Google Kubernetes Engine) und für GKE-Standardknotenpools aktiviert.

Auf dieser Seite wird erläutert, wie Sie manuell ein Upgrade oder Downgrade für die Steuerungsebene oder die Knoten eines GKE-Clusters anfordern. Sie können die Version manuell aktualisieren:

Zum Upgrade eines Clusters aktualisiert GKE die Version, mit der die Steuerungsebene und die Knoten ausgeführt werden. Cluster werden entweder auf eine neuere Nebenversion (z. B. 1.24 bis 1.25) oder eine neuere Patchversion (z. B. 1.24.2-gke.100 auf 1.24.5-gke.200) aktualisiert. Weitere Informationen finden Sie unter Versionsverwaltung und Support für GKE.

Weitere Informationen zur Funktionsweise automatischer und manueller Clusterupgrades erhalten Sie unter Clusterupgrades. Sie können auch festlegen, wann automatische Upgrades ausgeführt werden sollen. Dazu müssen Sie entsprechende Wartungsfenster und -ausschlüsse konfigurieren.

Neue GKE-Versionen werden regelmäßig angekündigt. Sie erhalten Benachrichtigungen zu den neuen Versionen, auf die ein bestimmter Cluster aktualisiert werden kann, mit Clusterbenachrichtigungen.

Informationen zu verfügbaren Versionen finden Sie unter Versionsverwaltung. Weitere Informationen zu Clustern finden Sie unter Clusterarchitektur. Weitere Informationen zum Upgrade von Clustern finden Sie unter Best Practices für das Upgrade von Clustern.

Hinweis

Führen Sie die folgenden Schritte durch, bevor Sie beginnen:

  • Aktivieren Sie die Google Kubernetes Engine API.
  • Google Kubernetes Engine API aktivieren
  • Wenn Sie die Google Cloud CLI für diese Aufgabe verwenden möchten, müssen Sie die gcloud CLI installieren und dann initialisieren. Wenn Sie die gcloud CLI bereits installiert haben, rufen Sie die neueste Version mit gcloud components update ab.

Daten auf nichtflüchtigen Speichern speichern

Prüfen Sie vor dem Upgrade eines Knotenpools, ob alle Daten, die Sie beibehalten möchten, in einem Pod mit nichtflüchtigen Volumes gespeichert sind, die nichtflüchtigen Speicher verwenden. Nichtflüchtige Speicher werden während der Upgrades getrennt, aber nicht gelöscht. Die darin enthaltenen Daten werden zwischen den Pods "übergeben".

Die folgenden Einschränkungen gelten für nichtflüchtige Speicher:

  • Die Knoten, auf denen Pods ausgeführt werden, müssen Compute Engine-VMs sein.
  • Diese VMs müssen sich im selben Compute Engine-Projekt und in derselben Zone wie der nichtflüchtige Speicher befinden.

Informationen zum Hinzufügen eines nichtflüchtigen Speichers zu einer vorhandenen Knoteninstanz finden Sie in der Compute Engine-Dokumentation unter Zonale nichtflüchtige Speicher hinzufügen oder ihre Größe anpassen.

Informationen zu Upgrades

Die Steuerungsebene und Knoten eines Clusters werden separat aktualisiert.

Cluster-Steuerungsebenen werden immer regelmäßig aktualisiert, unabhängig davon, ob Ihr Cluster in einer Release-Version registriert ist oder nicht.

Wie Sie proaktiv Upgrade-Benachrichtigungen erhalten, erfahren Sie unter Clusterbenachrichtigungen erhalten.

Beschränkungen

Für Alphacluster kann kein Upgrade durchgeführt werden.

Unterstützte Versionen

Die Versionshinweise informieren darüber, wann neue Versionen verfügbar sind und wann ältere Versionen nicht mehr erworben werden können. Mit dem folgenden Befehl können Sie jederzeit alle unterstützten Cluster- und Knotenversionen auflisten:

gcloud container get-server-config

Wenn Ihr Cluster in einem Release-Kanal registriert ist, können Sie ein Upgrade auf eine Patch-Version in einer anderen Release-Version mit derselben Nebenversion wie auf Ihrer Steuerungsebene durchführen. Beispielsweise können Sie Ihren Cluster von Version 1.21.12-gke.1700 im Regular Channel auf 1.21.13-gke.900 im Rapid Channel aktualisieren. Weitere Informationen finden Sie unter Patchversionen aus einem neueren Kanal ausführen. Alle Autopilot-Cluster sind in einer Release-Version registriert.

Downgrade-Einschränkungen

In bestimmten Szenarien können Sie ein Downgrade der Version Ihres Clusters auf eine frühere Version ausführen.

Um einem fehlgeschlagenen Upgrade der Cluster-Steuerungsebene entgegenzuwirken, können Sie Folgendes tun:Downgrade der Steuerungsebene auf einen vorherigen Patchrelease durchführen, wenn die Version ein früherer Patchrelease innerhalb der gleichen Nebenversion ist. Wenn auf der Steuerungsebene Ihres Clusters beispielsweise GKE 1.25.3-gke.400 ausgeführt wird, können Sie ein Downgrade der Steuerungsebene auf 1.25.2-gke.100 durchführen, wenn diese Version noch verfügbar ist.

Sie können kein Downgrade einer Kubernetes-Cluster-Steuerungsebene auf eine frühere Nebenversion ausführen. Wenn auf der Steuerungsebene beispielsweise die GKE-Version 1.25 ausgeführt wird, ist ein Downgrade auf 1.24 nicht möglich. Wenn Sie dies versuchen, wird die folgende Fehlermeldung angezeigt:

ERROR: (gcloud.container.clusters.upgrade) ResponseError: code=400,
message=Master cannot be upgraded to "1.24.3-gke.100": specified version is not
newer than the current version.

Sie können kein Downgrade der Nebenversion der Steuerungsebene eines Clusters ausführen. Daher empfehlen wir das Testen und Qualifizieren von Upgrades von Nebenversionen mit Clustern in einer Testumgebung, wenn eine neue Nebenversion verfügbar wird, aber bevor die Version als Standard festgelegt wird. Dies wird insbesondere empfohlen, wenn Ihr Cluster von erheblichen Änderungen in der nächsten Nebenversion betroffen sein könnte, z. B. das Entfernen verworfener APIs oder Features.

Um einem fehlgeschlagenen Upgrade des Knotenpools entgegenzuwirken, können Sie für einen Knotenpool ein Downgrade auf einen früheren Patchrelease oder eine Nebenversion durchführen. Achten Sie darauf, dass Sie die Knoten nicht auf eine Version downgraden, die mehr als zwei Nebenversionen hinter der Version der Cluster-Steuerungsebene liegt.

Clusterupgrade

Google führt automatisch Upgrades für Cluster und Knoten aus. Für eine bessere Kontrolle automatischer Upgrades für Ihren Cluster und seine Knoten können Sie ihn für einen Releasekanal registrieren. Alle Autopilot-Cluster sind automatisch in einer Release-Version registriert.

Weitere Informationen zur Verwaltung der GKE-Version des Clusters finden Sie unter Upgrades.

Sie können jederzeit ein manuelles Upgrade ausführen, wenn eine neue Version zur Verfügung steht.

Manuelles Upgrade der Steuerungsebene

Wenn Sie ein Clusterupgrade ausführen, können Sie die Konfiguration des Clusters erst dann ändern, wenn die Steuerungsebene wieder zugänglich ist. Dies kann mehrere Minuten dauern. Durch das Verwenden eines Autopilot-Clusters oder eines regionalen Standardclusters können Sie Ausfallzeiten bei Steuerungsebeneupgrades vermeiden. Dieser Vorgang wirkt sich nicht auf die Verfügbarkeit der Worker-Knoten aus, auf denen Ihre Arbeitslasten ausgeführt werden, da diese während Upgrades der Steuerungsebene verfügbar bleiben.

Sie können Ihre Autopilot- oder Standard-Steuerungsebene manuell über die Google Cloud Console oder die Google Cloud CLI aktualisieren.

gcloud

Führen Sie den folgenden Befehl aus, um die verfügbaren Versionen für die Steuerungsebene Ihres Clusters anzuzeigen:

gcloud container get-server-config

Führen Sie den folgenden Befehl aus, um ein Upgrade auf die Standard-Clusterversion durchzuführen:

gcloud container clusters upgrade CLUSTER_NAME --master

Wenn Sie ein Upgrade auf eine bestimmte Version ausführen möchten, die nicht die Standardversion ist, geben Sie das Flag --cluster-version wie im folgenden Befehl an:

gcloud container clusters upgrade CLUSTER_NAME --master \
    --cluster-version VERSION

Ersetzen Sie VERSION durch die Version, auf die Sie Ihren Cluster aktualisieren möchten. Sie können eine bestimmte Version verwenden, z. B. 1.18.17-gke.100, oder einen Versionsalias wie latest verwenden. Weitere Informationen finden Sie unter Clusterversion angeben.

Console

Führen Sie die folgenden Schritte aus, um die Steuerungsebene des Clusters manuell zu aktualisieren:

  1. Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf:

    Zur Seite „Google Kubernetes Engine“

  2. Klicken Sie auf den gewünschten Clusternamen.

  3. Klicken Sie unter Clustergrundlagen neben Version auf Upgrade verfügbar.

  4. Wählen Sie die gewünschte Version aus und klicken Sie dann auf Änderungen speichern.

Nach dem Upgrade einer Standard-Steuerungsebene können Sie ein Upgrade der Knoten ausführen. Bei Standardknoten, die mit der Google Cloud Console erstellt wurden, ist das automatische Upgrade standardmäßig aktiviert. Autopilot aktualisiert Knoten immer automatisch.

Cluster-Downgrades

  1. Legen Sie vor dem Downgrade einen Wartungsausschluss fest, um zu verhindern, dass GKE nach dem Downgrade automatisch ein Upgrade der Steuerungsebene durchführt.
  2. Führen Sie ein Downgrade der Cluster-Steuerungsebene auf eine frühere Patchversion durch:

     gcloud container clusters upgrade CLUSTER_NAME \
         --master --cluster-version VERSION
    

Automatische Upgrades von Clustern deaktivieren

Die Infrastruktursicherheit hat für GKE höchste Priorität. Daher werden die Steuerungsebenen regelmäßig aktualisiert und können nicht deaktiviert werden. Sie können jedoch Wartungsfenster und -ausschlüsse anwenden, um Upgrades für Steuerungsebenen und Knoten vorübergehend zu blockieren.

Sie können das automatische Upgrade von Knoten deaktivieren. Dieser Vorgang wird jedoch nicht empfohlen.

Knotenpools aktualisieren

Für die Knoten eines Clusters ist standardmäßig das automatische Upgrade aktiviert. Wir empfehlen, dies nicht zu deaktivieren. Automatische Knotenupgrades sorgen dafür, dass die Steuerungsebene und die Knotenversion Ihres Clusters synchron bleiben und die Versionsinkompatibilitätsrichtlinie von Kubernetes einhalten. Dadurch wird sichergestellt, dass die Steuerungsebenen mit Knoten kompatibel sind, die bis zu zwei Nebenversionen älter als die Steuerungsebene sind. Die Steuerungsebenen von Kubernetes 1.29 sind beispielsweise mit den Knoten von Kubernetes 1.27 kompatibel.

Bei GKE-Knotenpool-Upgrades haben Sie die Wahl zwischen zwei konfigurierbaren Upgradestrategien, nämlich Surge-Upgrades und Blau/Grün-Upgrades.

Wählen Sie eine Strategie aus und verwenden Sie die Parameter, um die Strategie so zu optimieren, dass sie die Anforderungen Ihrer Clusterumgebung am besten erfüllt.

Beim Upgrade von Knoten wird die Planung neuer Pods für diese Knoten in GKE beendet. In diesem Fall werden die neu geplanten Pods nach Möglichkeit auf anderen Knoten geplant. Dies ist mit anderen Ereignissen vergleichbar, bei denen der Knoten neu erstellt wird, z. B. beim Aktivieren oder Deaktivieren eines Features im Knotenpool.

Das Upgrade ist erst abgeschlossen, wenn alle Knoten neu erstellt worden sind und der Cluster den gewünschten Status hat. Die aktualisierten Knoten werden bei der Registrierung auf der Steuerungsebene in GKE als planbar gekennzeichnet.

Neue Knoteninstanzen führen die gewünschte Kubernetes-Version aus sowie:

Manuelles Upgrade für einen Knotenpool ausführen

Sie können die Version eines Knotenpools manuell auf die Version der Steuerungsebene oder auf eine frühere Version aktualisieren, die noch verfügbar und mit der Steuerungsebene kompatibel ist. Sie können mehrere Knotenpools gleichzeitig manuell aktualisieren, während GKE automatisch jeweils nur einen Knotenpool nacheinander aktualisiert.

Wenn Sie einen Knotenpool manuell aktualisieren, entfernt GKE alleLabels, die Sie einzelnen Knoten mit kubectl hinzugefügt haben. Um dies zu vermeiden, können Sie stattdessen Labels auf Knotenpools anwenden.

Sie können Knotenpools mithilfe der Google Cloud Console oder der Google Cloud CLI manuell auf eine Version aktualisieren, die mit der Steuerungsebene kompatibel ist.

gcloud

Die folgenden Variablen werden in den Befehlen in diesem Abschnitt verwendet:

  • CLUSTER_NAME ist der Name des Clusters des Knotenpools, der aktualisiert werden soll.
  • NODE_POOL_NAME ist der Name des Knotenpools, der aktualisiert werden soll.
  • VERSION ist die Kubernetes-Version, auf die die Knoten aktualisiert werden. Beispiel: --cluster-version=1.7.2 oder cluster-version=latest.

Knotenpool aktualisieren:

gcloud container clusters upgrade CLUSTER_NAME \
  --node-pool=NODE_POOL_NAME

Wenn Sie für Knoten eine andere Version von GKE angeben möchten, verwenden Sie das optionale Flag --cluster-version:

gcloud container clusters upgrade CLUSTER_NAME \
  --node-pool=NODE_POOL_NAME \
  --cluster-version VERSION

Weitere Informationen zum Festlegen von Versionen finden Sie unter Versionsverwaltung.

Weitere Informationen finden Sie in der Dokumentation zu gcloud container clusters upgrade.

Console

Zum Aktualisieren eines Knotenpools mithilfe der Google Cloud Console führen Sie die folgenden Schritte aus:

  1. Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf:

    Zur Seite „Google Kubernetes Engine“

  2. Klicken Sie neben dem Cluster, den Sie bearbeiten möchten, auf Aktionen und dann auf Bearbeiten.

  3. Klicken Sie auf der Seite Clusterdetails auf den Tab Knoten.

  4. Klicken Sie im Bereich Knotenpools auf den Namen des Knotenpools, den Sie aktualisieren möchten.

  5. Klicken Sie auf  Bearbeiten.

  6. Klicken Sie unter Knotenversion auf Ändern.

  7. Wählen Sie die gewünschte Version aus der Drop-down-Liste Knotenversion aus und klicken Sie auf Ändern.

Knotenpools downgraden

Sie können beispielsweise ein Downgrade für einen Knotenpool ausführen, um einem fehlgeschlagenen Knotenpool-Upgrade entgegenzuwirken. Lesen Sie sich die Einschränkungen durch, bevor Sie ein Downgrade für einen Knotenpool durchführen.

  1. Legen Sie einen Wartungsausschluss für den Cluster fest, um zu verhindern, dass der Knotenpool nach dem Downgrade von GKE automatisch aktualisiert wird.
  2. Geben Sie für das Downgrade eines Knotenpools eine frühere Version an, wenn Sie der Anleitung unter Manuelles Upgrade für einen Knotenpool ausführen folgen.

Surge-Upgradeparameter ändern

Weitere Informationen zum Ändern von Surge-Upgrade-Parametern finden Sie unter Surge-Upgrades konfigurieren.

Upgradestatus eines Knotenpools prüfen

Sie können den Status eines Upgrades mit gcloud container operations prüfen.

Rufen Sie eine Liste aller ausgeführten und abgeschlossenen Vorgänge im Cluster auf:

gcloud container operations list

Jedem Vorgang werden eine Vorgangs-ID, ein Vorgangstyp, Start- und Endzeiten, Zielcluster und ein Status zugewiesen. Eine solche Liste sieht etwa so aus:

NAME                              TYPE                ZONE           TARGET              STATUS_MESSAGE  STATUS  START_TIME                      END_TIME
operation-1505407677851-8039e369  CREATE_CLUSTER      us-west1-a     my-cluster                          DONE    20xx-xx-xxT16:47:57.851933021Z  20xx-xx-xxT16:50:52.898305883Z
operation-1505500805136-e7c64af4  UPGRADE_CLUSTER     us-west1-a     my-cluster                          DONE    20xx-xx-xxT18:40:05.136739989Z  20xx-xx-xxT18:41:09.321483832Z
operation-1505500913918-5802c989  DELETE_CLUSTER      us-west1-a     my-cluster                          DONE    20xx-xx-xxT18:41:53.918825764Z  20xx-xx-xxT18:43:48.639506814Z

Weitere Informationen zu einem bestimmten Vorgang erhalten Sie, wenn Sie die Vorgangs-ID wie im folgenden Befehl angeben:

gcloud container operations describe OPERATION_ID

Beispiel:

gcloud container operations describe operation-1507325726639-981f0ed6
endTime: '20xx-xx-xxT21:40:05.324124385Z'
name: operation-1507325726639-981f0ed6
operationType: UPGRADE_CLUSTER
selfLink: https://container.googleapis.com/v1/projects/.../kubernetes-engine/docs/zones/us-central1-a/operations/operation-1507325726639-981f0ed6
startTime: '20xx-xx-xxT21:35:26.639453776Z'
status: DONE
targetLink: https://container.googleapis.com/v1/projects/.../kubernetes-engine/docs/zones/us-central1-a/clusters/...
zone: us-central1-a

Upgrade-Einstellungen für Knotenpools prüfen

Mit dem Befehl gcloud container node-pools describe können Sie Details zur Aktualisierungsstrategie für Knoten abrufen, die für Ihre Knotenpools verwendet wird. Bei Blau/Grün-Upgrades gibt der Befehl auch die aktuelle Phase des Upgrades zurück.

Führen Sie dazu diesen Befehl aus:

gcloud container node-pools describe NODE_POOL_NAME \
--cluster=CLUSTER_NAME

Dabei gilt:

  • NODE_POOL_NAME ist der Name des zu beschreibenden Knotenpools.
  • CLUSTER_NAME ist der Name des Clusters des zu beschreibenden Knotenpools.

Mit diesem Befehl werden die aktuellen Upgrade-Einstellungen ausgegeben. Das folgende Beispiel zeigt die Ausgabe, wenn Sie die Blau/Grün-Upgrade-Strategie verwenden.

upgradeSettings:
  blueGreenSettings:
    nodePoolSoakDuration: 1800s
    standardRolloutPolicy:
      batchNodeCount: 1
      batchSoakDuration: 10s
  strategy: BLUE_GREEN

Wenn Sie die Blau/Grün-Upgrade-Strategie verwenden, enthält die Ausgabe auch Details zu den Blau/Grün-Upgrade-Einstellungen und deren aktuelle Zwischenphase. Das folgende Beispiel zeigt, wie dies aussehen könnte:

updateInfo:
  blueGreenInfo:
    blueInstanceGroupUrls:
    - https://www.googleapis.com/compute/v1/projects/{PROJECT_ID}/zones/{LOCATION}/instanceGroupManagers/{BLUE_INSTANCE_GROUP_NAME}
    bluePoolDeletionStartTime: {BLUE_POOL_DELETION_TIME}
    greenInstanceGroupUrls:
    - https://www.googleapis.com/compute/v1/projects/{PROJECT_ID}/zones/{LOCATION}/instanceGroupManagers/{GREEN_INSTANCE_GROUP_NAME} 
    greenPoolVersion: {GREEN_POOL_VERSION}
    phase: DRAINING_BLUE_POOL

Upgrade eines Knotenpools abbrechen

Sie können ein Upgrade jederzeit abbrechen. Weitere Informationen dazu, was beim Abbrechen eines Surge-Upgrades geschieht, finden Sie unter Surge-Upgrade abbrechen. Weitere Informationen dazu, was beim Abbrechen eines Blau/Grün-Upgrades geschieht, finden Sie unter Blau/Grün-Upgrade abbrechen.

  1. Rufen Sie die Vorgangs-ID des Upgrades ab:

    gcloud container operations list
    
  2. Upgrade abbrechen:

    gcloud container operations cancel OPERATION_ID
    

Weitere Informationen finden Sie in der Dokumentation zu gcloud container operations cancel.

Upgrade eines Knotenpools fortsetzen

Sie können ein Upgrade fortsetzen, indem Sie das Upgrade noch einmal manuell starten und dabei die Zielversion aus dem ursprünglichen Upgrade angeben.

Wenn beispielsweise ein Upgrade fehlgeschlagen ist oder Sie ein laufendes Upgrade pausiert haben, können Sie das abgebrochene Upgrade fortsetzen. Starten Sie dazu das gleiche Upgrade im Knotenpool noch einmal und geben Sie dabei die Zielversion aus dem ursprünglichen Upgradevorgang an.

Weitere Informationen dazu, was beim Fortsetzen eines Upgrades geschieht, finden Sie unter Surge-Upgrade fortsetzen und Blau/Grün-Upgrade.

Verwenden Sie den folgenden Befehl, um ein Upgrade fortzusetzen:

    gcloud container clusters upgrade CLUSTER_NAME \
      --node-pool=NODE_POOL_NAME \
      --cluster-version VERSION

Dabei gilt:

  • NODE_POOL_NAME ist der Name des Knotenpools, für den Sie das Upgrade des Knotenpools fortsetzen möchten.
  • CLUSTER_NAME ist der Name des Clusters des Knotenpools, für den Sie das Upgrade fortsetzen möchten.
  • VERSION ist die Zielversion des abgebrochenen Knotenpool-Upgrades.

Weitere Informationen erhalten Sie in der Dokumentation zu gcloud container clusters upgrade.

Upgrade eines Knotenpools rückgängig machen

Sie können ein Rollback für einen Knotenpool ausführen, um die aktualisierten Knoten auf ihren ursprünglichen Zustand vor dem Upgrade des Knotenpools zurücksetzen.

Verwenden Sie den Befehl rollback, wenn ein laufendes Upgrade abgebrochen wurde, das Upgrade fehlgeschlagen ist oder aufgrund einer Zeitüberschreitung des Wartungsfensters unvollständig ist. Wenn Sie die Version angeben möchten, folgen Sie der Anleitung zum Ausführen eines Downgrades des Knotenpools.

Weitere Informationen dazu, was beim Rollback eines Knotenpool-Upgrades geschieht, finden Sie unter Rollup bei einem Surge-Upgrade rückgängig machen oder Rollvorgang für Blau/Grün-Upgrades durchführen.

Führen Sie den folgenden Befehl aus, um ein Upgrade rückgängig zu machen:

gcloud container node-pools rollback NODE_POOL_NAME \
  --cluster CLUSTER_NAME

Dabei gilt:

  • NODE_POOL_NAME ist der Name des Knotenpools, für den ein Rollback durchgeführt werden soll.
  • CLUSTER_NAME ist der Name des Clusters des Knotenpools, für den das Upgrade rückgängig gemacht werden soll.

Weitere Informationen finden Sie in der Dokumentation zu gcloud container node-pools rollback.

Upgrade eines Knotenpools abschließen

Wenn Sie die Blau/Grün-Upgradestrategie verwenden, können Sie während der Betriebsphase ein Upgrade für einen Knotenpool ausführen und die restliche Betriebszeit überspringen.

Informationen zum Abschluss eines Knotenpool-Upgrades finden Sie unter Knoten-Upgrade abschließen.

Führen Sie den folgenden Befehl aus, um ein Upgrade bei Verwendung der Blau/Grün-Upgradestrategie durchzuführen:

gcloud container node-pools complete-upgrade NODE_POOL_NAME \
  --cluster CLUSTER_NAME

Dabei gilt:

  • NODE_POOL_NAME ist der Name des Knotenpools, für den Sie das Upgrade ausführen möchten.
  • CLUSTER_NAME ist der Name des Clusters des Knotenpools, für den Sie das Upgrade ausführen möchten.

Weitere Informationen finden Sie in der Dokumentation zu gcloud container node-pools complete-upgrade.

Bekannte Probleme

Wenn Sie PodDisruptionBudget-Objekte konfiguriert haben, die keine zusätzlichen Unterbrechungen zulassen, werden Knotenupgrades nach wiederholten Versuchen möglicherweise nicht auf die Version der Steuerungsebene aktualisiert. Zur Vermeidung dieses Fehlers empfehlen wir eine vertikale Skalierung von Deployment oder HorizontalPodAutoscaler, damit der Knoten unter Berücksichtigung der PodDisruptionBudget-Konfiguration entleert wird.

So rufen Sie alle PodDisruptionBudget-Objekte auf, die keine Unterbrechungen zulassen:

kubectl get poddisruptionbudget --all-namespaces -o jsonpath='{range .items[?(@.status.disruptionsAllowed==0)]}{.metadata.name}/{.metadata.namespace}{"\n"}{end}'

Obwohl das Problem bei automatischen Upgrades auftreten kann, erzwingt der automatische Upgrade-Prozess ein Upgrade der Knoten. Das Upgrade dauert jedoch für jeden Knoten im Namespace istio-system, der gegen das PodDisruptionBudget verstößt, eine zusätzliche Stunde.

Fehlerbehebung

Unvollständiges Knotenpool-Upgrade fortsetzen oder Rollback durchführen

Wenn GKE ein Knotenpool-Upgrade nicht abgeschlossen hat und die Knoten teilweise auf die neue Version aktualisiert wurden, können Sie das Upgrade entweder fortsetzen oder ein Rollback durchführen. Dies ist für Knotenpool-Upgrades relevant, bei denen entweder die Strategie für Knotenupgrades, Surge-Upgrades oder Blau/Grün-Upgrades verwendet wird.

Ein Knotenpool kann aus einem der folgenden Gründe nur teilweise aktualisiert werden:

  • Sie haben das Upgrade des Knotenpools abgebrochen.
  • Das Upgrade ist aufgrund eines unvorhergesehenen Problems fehlgeschlagen.
  • Das Upgrade ist aufgrund einer Zeitüberschreitung des Wartungsfensters unvollständig.

Folgen Sie der Anleitung, um das Upgrade fortzusetzen oder ein Rollback durchzuführen, damit alle Knoten im Knotenpool dieselbe Version ausführen. Wenn Sie nichts unternehmen, versucht GKE irgendwann noch einmal, den Knotenpool zu aktualisieren, sobald ein Wartungsfenster verfügbar ist.

Knoten-CPU-Auslastung höher als erwartet

Möglicherweise stoßen Sie auf ein Problem, bei dem einige Knoten eine höhere CPU-Auslastung verwenden, als von den ausgeführten Pods erwartet.

Dieser Fehler kann auftreten, wenn auf dem Cluster oder den Knoten keine unterstützte Version ausgeführt wird. Lesen Sie die Versionshinweise, um sicherzustellen, dass die von Ihnen verwendeten Versionen verfügbar und unterstützt werden. Sie können auch den folgenden Befehl ausführen, um alle unterstützten Cluster- und Knotenversionen aufzulisten:

gcloud container get-server-config

Nächste Schritte