Auf dieser Seite erfahren Sie, wie Sie automatische Knotenupgrades in Google Kubernetes Engine (GKE) konfigurieren.
Übersicht
Automatische Knotenupgrades helfen Ihnen, die Knoten in Ihrem Cluster mit der Steuerungsebene des Clusters auf dem neuesten Stand zu halten, wenn Ihre Steuerungsebene für Sie aktualisiert wird.
Wenn Sie einen neuen Cluster oder Knotenpool mit der Google Cloud Console oder dem gcloud
-Befehl erstellen, sind automatische Knotenupgrades standardmäßig aktiviert.
Weitere Informationen finden Sie unter Automatische Cluster- und Knotenupgrades.
Automatische Knotenupgrades bieten mehrere Vorteile:
- Geringer Verwaltungsaufwand: Sie müssen Ihre Knoten nicht manuell nachverfolgen und aktualisieren, wenn die Steuerungsebene für Sie aktualisiert wird.
- Bessere Sicherheit: Manchmal werden neue Binärprogramme veröffentlicht, um ein Sicherheitsproblem zu beheben. Mit automatischen Upgrades werden Sicherheitsupdates in GKE automatisch angewendet und auf dem neuesten Stand gehalten.
- Nutzerfreundlichkeit: Bietet eine einfache Möglichkeit, Knoten immer mit den neuesten Kubernetes-Features zu aktualisieren.
Für Knotenpools mit aktivierten automatischen Upgrades werden Upgrades geplant, wenn sie die Auswahlkriterien erfüllen (in den Versionshinweisen angekündigt). Rollouts erfolgen über mehrere Wochen, um die Stabilität von Clustern und Gerätepools zu gewährleisten. Beim Ausführen eines Upgrades werden Knoten per Drain beendet und neu erstellt, damit sie der aktuellen Version der Steuerungsebene entsprechen. Änderungen am Bootlaufwerk einer Knoten-VM gehen bei der Neuerstellung von Knoten verloren. Verwenden Sie ein DaemonSet, um Änderungen beizubehalten, wenn Knoten neu erstellt werden.
Für Alphacluster sind keine automatischen Knotenupgrades verfügbar. Wenn Sie einen Cluster mit Windows Server-Knotenpools verwenden, lesen Sie den Abschnitt Windows Server-Knotenpools upgraden, bevor Sie das automatische Knotenupgrade aktivieren.
Status des automatischen Upgrades für einen vorhandenen Knotenpool prüfen
Mit der Google Cloud Console oder dem Befehl gcloud
können Sie prüfen, ob das automatische Upgrade für einen Knotenpool aktiviert oder deaktiviert ist.
gcloud
Führen Sie den folgenden Befehl aus, um den Status des automatischen Upgrades für einen Knotenpool zu prüfen:
gcloud container node-pools describe NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--zone COMPUTE_ZONE
Dabei gilt:
NODE_POOL_NAME
ist der Name des Knotenpools.CLUSTER_NAME
ist der Name des Clusters, der den Knotenpool enthält.COMPUTE_ZONE
ist die Computing-Zone für den Cluster.
Console
So prüfen Sie den Status des automatischen Upgrades für einen Knotenpool:
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.
Klicken Sie in der Clusterliste auf den Namen des Clusters, den Sie anzeigen möchten.
Klicken Sie auf den Tab Knoten.
Klicken Sie unter Knotenpools auf den Namen des Knotenpools, den Sie aufrufen möchten.
Sehen Sie sich auf der Seite Knotenpooldetails unter Verwaltung den Wert des Felds Automatisches Upgrade an.
Automatische Knotenupgrades für vorhandene Knotenpools aktivieren
Wenn Sie mit der Google Cloud Console oder dem Befehl gcloud
einen neuen Cluster erstellen, sind automatische Knotenupgrades standardmäßig aktiviert.
Sie können automatische Knotenupgrades aktivieren, wenn sie derzeit deaktiviert sind.
gcloud
Führen Sie den folgenden Befehl aus, um automatische Upgrades für einen vorhandenen Knotenpool zu aktivieren:
gcloud container node-pools update NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--zone COMPUTE_ZONE \
--enable-autoupgrade
Dabei gilt:
NODE_POOL_NAME
ist der Name des Knotenpools.CLUSTER_NAME
ist der Name des Clusters, der den Knotenpool enthält.COMPUTE_ZONE
ist die Computing-Zone für den Cluster.
Console
Gehen Sie so vor, um automatische Upgrades für einen vorhandenen Knotenpool zu aktivieren:
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.
Klicken Sie in der Clusterliste auf den Namen des Clusters, den Sie ändern möchten.
Klicken Sie auf den Tab Knoten.
Klicken Sie unter Knotenpools auf den Namen des Knotenpools, den Sie ändern möchten.
Klicken Sie auf der Seite Knotenpooldetails auf edit Bearbeiten.
Klicken Sie unter Verwaltung das Kästchen Automatische Upgrades aktivieren an.
Klicken Sie auf Speichern.
Wenn Sie eine bessere Kontrolle darüber möchten, wann automatische Knotenupgrades durchgeführt werden können, sollten Sie Wartungsfenster und Ausschlüsse konfigurieren.
Status von Knotenupgrades 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
Automatische Knotenupgrades deaktivieren
Obwohl das nicht empfohlen wird, können Sie das automatische Knotenupgrade für einen vorhandenen Knotenpool deaktivieren, wenn der zugrunde liegende Cluster nicht für einen Releaseversion registriert ist.
Überlegungen vor der Deaktivierung automatischer Knotenupgrades
Wenn Sie automatische Knotenupgrades für einen Knotenpool deaktivieren, aktualisiert GKE die Version der Knoten nicht. Durch das Deaktivieren von automatischen Knotenupgrades wird nicht verhindert, dass GKE ein Upgrade der Steuerungsebene Ihres Clusters ausführt.
Durch das Deaktivieren werden Versionsupdates verhindert, jedoch nicht alle Wartungsaufgaben
Durch das Deaktivieren von automatischen Knotenupgrades wird nur verhindert, dass GKE die Version der Knoten aktualisiert. GKE kann jedoch weiterhin andere Wartungsaufgaben initiieren. So werden beispielsweise selbst bei deaktivierten automatischen Knoten-Upgrades durch das Auslösen der IP-Adressrotation, das Aktivieren der Netzwerkrichtlinie oder die PSC-Migration auf einem Cluster alle Knoten mit der gleichen Version wie die Steuerebene neu erstellt, unabhängig von der für den Knotenpool ausgewählten Version. Verwenden Sie Wartungsfenster und -ausschlüsse, um den Wartungszeitpunkt zu steuern.
Deaktivierung bedeutet, dass die Kompatibilität der Steuerebenen-Knoten gewährleistet ist
Wenn Sie automatische Knotenupgrades deaktivieren, müssen Sie dafür sorgen, dass auf den Knoten des Clusters eine Version ausgeführt wird, die mit der Version des Clusters kompatibel ist, und dass die Version der Supportrichtlinie für Kubernetes-Versionen und Versionsinkompatibilität entspricht. Ab der GKE-Version 1.19 aktualisiert GKE Knoten, auf denen eine nicht unterstützte Version ausgeführt wird, nachdem die Version abgelaufen ist, um den Zustand des Clusters und die Ausrichtung an der Open-Source-Versionsinkompatibilitätsrichtlinie sicherzustellen. Knoten, die nicht unterstützte Versionen ausführen, werden möglicherweise nicht sofort nach dem Ende der Supportdauer aktualisiert. Der tatsächliche Zeitpunkt kann nach Ermessen von Google variieren.
Durch das Deaktivieren werden die laufenden Vorgänge nicht gestoppt
Durch das Deaktivieren von automatischen Knotenupgrades werden laufende Upgrades auf Knoten in Knotenpools nicht beendet oder abgebrochen. Wie Sie laufende Upgrades abbrechen oder beenden können, erfahren Sie unter Knotenupgrade abbrechen. Das Abbrechen eines Knotenupgrades kann hilfreich sein, wenn Arbeitslasten auf aktualisierten Knoten fehlschlagen und Sie eine weitere Unterbrechung vermeiden möchten.
Wenn das Upgrade für den gesamten Knotenpool vollständig abgeschlossen wurde, kann kein Upgrade durchgeführt oder abgebrochen werden. Informationen zum Downgrade des Knotenpools finden Sie unter Downgrade von Knotenpools.
Automatische Knotenupgrades für vorhandene Knotenpools aktivieren
gcloud
Führen Sie den folgenden Befehl aus, um automatische Upgrades für einen vorhandenen Knotenpool zu deaktivieren:
gcloud container node-pools update NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--zone COMPUTE_ZONE \
--no-enable-autoupgrade
Console
Gehen Sie so vor, um automatische Upgrades für einen vorhandenen Knotenpool zu deaktivieren:
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.
Klicken Sie in der Clusterliste auf den Namen des Clusters, den Sie ändern möchten.
Klicken Sie auf den Tab Knoten.
Klicken Sie unter Knotenpools auf den Namen des Knotenpools, den Sie ändern möchten.
Klicken Sie auf der Seite Knotenpooldetails auf edit Bearbeiten.
Entfernen Sie unter Verwaltung das Häkchen aus dem Kästchen Automatische Upgrades aktivieren.
Klicken Sie auf Speichern um den Cluster zu ändern.
Cluster oder Knotenpool mit aktivierten automatischen Knotenupgrades erstellen
gcloud
Wenn Sie einen Cluster mit aktivierten automatischen Upgrades für den Standard-Knotenpool erstellen möchten, geben Sie im Befehl gcloud container clusters
create
das Flag --enable-autoupgrade
an:
gcloud container clusters create CLUSTER_NAME \
--zone COMPUTE_ZONE \
--enable-autoupgrade
Geben Sie zum Erstellen eines Knotenpools mit aktiviertem automatischen Upgrade das --enable-autoupgrade
-Flag im gcloud container node-pools create
-Befehl an:
gcloud container node-pools create NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--zone COMPUTE_ZONE \
--enable-autoupgrade
Console
Mit der Cloud Console erstellte Cluster und Knotenpools haben standardmäßig automatische Upgrades aktiviert. Anleitungen zum Erstellen von Clustern und Knotenpools finden Sie unter Cluster erstellen oder Knotenpools hinzufügen und verwalten.
Sie können automatische Upgrades für neue Knotenpools deaktivieren. Klicken Sie auf der Seite zur Clustererstellung auf den Namen des Knotenpools, den Sie ändern möchten, und deaktivieren Sie dann die Option Automatisches Upgrade aktivieren.
Upgrade-Benachrichtigungen erhalten
GKE veröffentlicht Benachrichtigungen zu Upgrades in Pub/Sub. Damit haben Sie einen Kanal, über den Sie Informationen zu Ihren Clustern von GKE erhalten.
Weitere Informationen finden Sie unter Benachrichtigungen zu Cluster-Upgrades erhalten.
Surge-Upgradeparameter ändern
Weitere Informationen zum Ändern von Surge-Upgrade-Parametern finden Sie unter Surge-Upgrades konfigurieren.
Steuerung während eines Knotenpool-Upgrades ausführen
Bei automatischen Upgrades und manuell initiierten Knotenpoolupgrades können Sie die folgenden Aktionen ausführen.
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 des 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 Sie beispielsweise ein laufendes Upgrade auf Version 1.23.1-gke.100 anhalten, können Sie das abgebrochene Upgrade fortsetzen. Starten Sie dazu das gleiche Upgrade im Knotenpool noch einmal und richten Sie sich dabei nach Version 1.23.1-gke.100.
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
.
Rollback für Knotenpool-Upgrade durchführen
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 für Knotenpools ausführen
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
.