Knoten automatisch upgraden

Auf dieser Seite wird erläutert, wie Sie die automatischen Knotenupgrades in Google Kubernetes Engine konfigurieren.

Übersicht

Automatische Knotenupgrades helfen Ihnen, die Knoten in Ihrem Cluster mit der Steuerungsebene des Clusters (Master) 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 Zone für den Cluster.

Console

So prüfen Sie den Status des automatischen Upgrades für einen Knotenpool:

  1. Rufen Sie in der Cloud Console das Google Kubernetes Engine-Menü auf.

    Zum Google Kubernetes Engine-Menü

  2. Klicken Sie auf die Schaltfläche "Bearbeiten" (Stiftsymbol) des Clusters.

  3. Wählen Sie im Bereich Knotenpools den Knotenpool aus, den Sie untersuchen möchten.

  4. Sehen Sie sich im Bereich Verwaltung den Wert für das Feld 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 Zone für den Cluster.

Console

Gehen Sie so vor, um automatische Upgrades für einen vorhandenen Knotenpool zu aktivieren:

  1. Rufen Sie in der Cloud Console das Google Kubernetes Engine-Menü auf.

    Zum Google Kubernetes Engine-Menü

  2. Klicken Sie auf die Schaltfläche "Bearbeiten" (Stiftsymbol) des Clusters.

  3. Klicken Sie im Abschnitt Knotenpools auf den Namen des zu ändernden Knotenpools und dann auf Bearbeiten.

  4. Wählen Sie Automatisches Upgrade aktivieren aus.

  5. Klicken Sie auf Speichern, um den Cluster zu ändern.

Wenn Sie eine bessere Kontrolle darüber möchten, wann automatische Knotenupgrades durchgeführt werden können, sollten Sie Wartungsfenster und Ausschlüsse konfigurieren.

Automatische Knotenupgrades für vorhandene Knotenpools deaktivieren

Sie können automatische Knotenupgrades für einen vorhandenen Knotenpool deaktivieren, wenn der zugrunde liegende Cluster derzeit nicht für eine Release-Version registriert ist. In diesem Fall 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.

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. Rufen Sie in der Cloud Console das Google Kubernetes Engine-Menü auf.

    Zum Google Kubernetes Engine-Menü

  2. Klicken Sie auf die Schaltfläche "Bearbeiten" (Stiftsymbol) des Clusters.

  3. Klicken Sie im Abschnitt Knotenpools auf den Namen des zu ändernden Knotenpools und dann auf Bearbeiten.

  4. Deaktivieren Sie die Option Automatisches Upgrade aktivieren.

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

So erstellen Sie einen Knotenpool mit aktivierten automatischen Upgrades:

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.

Surge-Upgradeparameter ändern

Mit Surge-Upgrades können Sie die Anzahl der Knoten, die GKE in einem Schritt aktualisiert, sowie den Umfang der Unterbrechung, die ein Upgrade bei Ihren Arbeitslasten verursacht, ändern.

Die Flags max-surge-upgrade und max-unavailable-upgrade sind für jeden Knotenpool definiert. Weitere Informationen zur Auswahl der richtigen Parameter finden Sie unter Optimale Surge-Konfiguration ermitteln.

Sie können diese Einstellungen ändern, wenn Sie einen Cluster oder Knotenpool erstellen oder aktualisieren.

Die folgenden Variablen werden in den unten aufgeführten Befehlen verwendet:

  • CLUSTER_NAME: Der Name des Clusters für den Knotenpool.
  • COMPUTE_ZONE: Die Zone für den Cluster.
  • NODE_POOL_NAME ist der Name des Knotenpools.
  • NUMBER_NODES: Die Anzahl der Knoten im Knotenpool in jeder der Clusterzonen.
  • SURGE_NODES: Die Anzahl der zusätzlichen Knoten (Surge), die bei jedem Upgrade des Knotenpools erstellt werden.
  • UNAVAILABLE_NODES: Die Anzahl der Knoten, die bei jedem Upgrade des Knotenpools gleichzeitig nicht verfügbar sein können.

Cluster mit unterschiedlichen Surge-Parametern erstellen

Verwenden Sie die Flags max-surge-upgrade und max-unavailable-upgrade, um einen Cluster mit spezifischen Einstellungen für Surge-Upgrades zu erstellen.

gcloud container clusters create CLUSTER_NAME \
  --max-surge-upgrade=SURGE_NODES --max-unavailable-upgrade=UNAVAILABLE_NODES

Cluster mit deaktiviertem Surge-Upgrade erstellen

Wenn Sie einen Cluster ohne Surge-Upgrades erstellen möchten, legen Sie den Wert für das Flag max-surge-upgrade auf 0 fest.

gcloud container clusters create CLUSTER_NAME \
  --max-surge-upgrade=0 --max-unavailable-upgrade=1

Knotenpool mit unterschiedlichen Surge-Parametern erstellen

Verwenden Sie die Flags max-surge-upgrade und max-unavailable-upgrade, um einen Knotenpool in einem vorhandenen Cluster mit spezifischen Einstellungen für Surge-Upgrades zu erstellen.

gcloud container node-pools create NODE_POOL_NAME \
  --num-nodes=NUMBER_NODES --cluster=CLUSTER_NAME \
  --max-surge-upgrade=SURGE_NODES --max-unavailable-upgrade=UNAVAILABLE_NODES

Surge-Upgrade für einen vorhandenen Knotenpool aktivieren oder deaktivieren

Verwenden Sie die Flags max-surge-upgrade und max-unavailable-upgrade, um die Upgradeeinstellungen eines vorhandenen Knotenpools zu aktualisieren. Wenn Sie max-surge-upgrade auf einen größeren Wert als 0 festlegen, erstellt GKE Surge-Knoten. Wenn Sie max-surge-upgrade auf 0 festlegen, erstellt GKE keine Surge-Knoten.

gcloud beta container node-pools update NODE_POOL_NAME \
  --cluster=CLUSTER_NAME \
  --max-surge-upgrade=SURGE_NODES --max-unavailable-upgrade=UNAVAILABLE_NODES

Surge-Upgrades in einem Knotenpool auf Aktivierung prüfen

Wenn Sie prüfen möchten, ob Surge-Upgrades für einen Knotenpool aktiviert sind, verwenden Sie gcloud zum Beschreiben der Parameter des Clusters:

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

Benachrichtigungen zu Upgrades 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.

Weitere Informationen