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:
- Autopilot: Version der Steuerungsebene aktualisieren.
- Standard: Version der Steuerungsebene und die Knotenpool-Version 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:
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf:
Klicken Sie auf den gewünschten Clusternamen.
Klicken Sie unter Clustergrundlagen neben Version auf edit Upgrade verfügbar.
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
- Legen Sie vor dem Downgrade einen Wartungsausschluss fest, um zu verhindern, dass GKE nach dem Downgrade automatisch ein Upgrade der Steuerungsebene durchführt.
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
odercluster-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:
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf:
Klicken Sie neben dem Cluster, den Sie bearbeiten möchten, auf more_vert Aktionen und dann auf edit Bearbeiten.
Klicken Sie auf der Seite Clusterdetails auf den Tab Knoten.
Klicken Sie im Bereich Knotenpools auf den Namen des Knotenpools, den Sie aktualisieren möchten.
Klicken Sie auf edit Bearbeiten.
Klicken Sie unter Knotenversion auf Ändern.
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.
- Legen Sie einen Wartungsausschluss für den Cluster fest, um zu verhindern, dass der Knotenpool nach dem Downgrade von GKE automatisch aktualisiert wird.
- 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.
Rufen Sie die Vorgangs-ID des Upgrades ab:
gcloud container operations list
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