Automatische Upgrades für Ihre Knoten ausführen

Auf dieser Seite erfahren Sie, wie Sie automatische Knotenupgrades in Google Kubernetes Engine (GKE) konfigurieren.

Überblick

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:

  1. Öffnen Sie in der Console die Seite Google Kubernetes Engine.

    Zur Seite „Google Kubernetes Engine“

  2. Klicken Sie in der Clusterliste auf den Namen des Clusters, den Sie anzeigen möchten.

  3. Klicken Sie auf den Tab Knoten.

  4. Klicken Sie unter Knotenpools auf den Namen des Knotenpools, den Sie aufrufen möchten.

  5. 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:

  1. Öffnen Sie in der Console die Seite Google Kubernetes Engine.

    Zur Seite „Google Kubernetes Engine“

  2. Klicken Sie in der Clusterliste auf den Namen des Clusters, den Sie ändern möchten.

  3. Klicken Sie auf den Tab Knoten.

  4. Klicken Sie unter Knotenpools auf den Namen des Knotenpools, den Sie ändern möchten.

  5. Klicken Sie auf der Seite Knotenpooldetails auf Bearbeiten.

  6. Klicken Sie unter Verwaltung das Kästchen Automatische Upgrades aktivieren an.

  7. 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 Strategie für Knotenpools 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 für vorhandene Knotenpools aktivieren

Obwohl das nicht empfohlen wird, können Sie das automatische Knotenupgrade für einen vorhandenen Knotenpool deaktivieren, wenn der zugrunde liegende Cluster derzeit nicht für einen Releaseversion registriert ist. Durch das Deaktivieren von automatischen Knotenupgrades wird nicht das Upgrade der Steuerungsebene des Clusters blockiert.

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. Knoten, die Versionen ausführen, die ihr Ende des Lebenszyklus erreicht haben, werden auch dann automatisch aktualisiert, wenn das automatische Upgrade deaktiviert ist, um die Kompatibilität und die Versionsinkompatibilität zu gewährleisten.

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:

  1. Öffnen Sie in der Console die Seite Google Kubernetes Engine.

    Zur Seite „Google Kubernetes Engine“

  2. Klicken Sie in der Clusterliste auf den Namen des Clusters, den Sie ändern möchten.

  3. Klicken Sie auf den Tab Knoten.

  4. Klicken Sie unter Knotenpools auf den Namen des Knotenpools, den Sie ändern möchten.

  5. Klicken Sie auf der Seite Knotenpooldetails auf Bearbeiten.

  6. Entfernen Sie unter Verwaltung das Häkchen aus dem Kästchen Automatische Upgrades aktivieren.

  7. Klicken Sie auf Speichern um den Cluster zu ändern.

Arbeitslasten zur vorherigen Knotenversion migrieren (vorübergehende Problemminderung)

Sie können für einen Knotenpool kein Downgrade ausführen. Wenn Sie jedoch ein Downgrade auf eine Knotenversion ausführen möchten, nachdem der Knotenpool aktualisiert wurde, verwenden Sie die folgenden Richtlinien, um die Arbeitslasten vorübergehend zur gewünschten Knotenversion zu migrieren.

  1. Prüfen Sie, ob über den Subnetzbereich und den Pod-IP-Bereich zusätzliche Knoten im Cluster gehostet werden, um alle Pods zu hosten, die derzeit vom aktuellen Knotenpool gehostet werden. Prüfen Sie die maximale Anzahl von Pods und die maximale Anzahl von Knoten für einen Subnetzbereich.
  2. Prüfen Sie, ob die Zielknotenversion für die Migration unterstützt wird.

  3. Prüfen Sie, ob die Knoten Arbeitslasten mit PodDisruptionBudget haben, was die Migration von Arbeitslasten verlangsamen kann.

  4. Erstellen Sie mit der vorherigen Knotenversion einen weiteren Knotenpool mit einer Kapazität (Anzahl von Knoten), mit der alle Pods gehostet werden können, die derzeit vom aktuellen Knotenpool gehostet werden.

  5. Entleeren Sie Knoten im Knotenpool mit der neuesten Version einen nach dem anderen mithilfe von kubectl drain <nodename>. Prüfen Sie, ob Pods auf dem Knoten zu einem Knoten im neuen Knotenpool verschoben wurden, der mit der vorherigen Knotenversion ausgeführt wird.

  6. Äußerst wichtig: Prüfen Sie, ob alle Pods zu Knoten im Knotenpool migriert wurden, der mit der vorherigen Knotenversion ausgeführt wird.

  7. Löschen Sie den Knotenpool, der mit der neuesten Knotenpoolversion ausgeführt wird, wenn Sie ihn nicht mehr benötigen.

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 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.

  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 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 einen Knotenpool zurücksetzen, um ihn in seinen ursprünglichen Zustand zurückzusetzen, wenn ein Upgrade abgebrochen wurde oder fehlgeschlagen ist. Sie können für Knotenpools kein Rollback mehr durchführen, nachdem sie erfolgreich aktualisiert worden sind.

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.

Nächste Schritte