Hostwartung in GKE

Während des Lebenszyklus eines lang laufenden GKE-Cluster kommt es aufgrund von Infrastrukturunterbrechungen, die vonGoogle Cloud ausgegeben werden, zu regelmäßigen Störungen bei Arbeitslasten. Diese automatischen Ereignisse können als Reaktion auf Planungsentscheidungen (Bereinigungsereignisse) oder Knotenaktualisierungen auftreten, zu denen automatische GKE-Knoten-Upgrades (Wartungsereignisse) oder die Behebung erkannter Probleme (Beendigungsereignisse) gehören.

In diesem Dokument wird erläutert, was Knotenunterbrechungen in GKE bedeuten und wie Sie die Auswirkungen von Unterbrechungen auf Ihre GKE-Knoten minimieren können.

Weitere Informationen zum Monitoring von Wartungsbenachrichtigungen und ‑ereignissen finden Sie unter Wartungsereignisse überwachen.

Dieses Dokument gilt für die folgenden Maschinentypen:

Dieses Dokument richtet sich an Plattformadministratoren und ‑betreiber, die den Lebenszyklus der zugrunde liegenden technischen Infrastruktur verwalten. Weitere Informationen zu gängigen Rollen und Beispielaufgaben, auf die wir in Google Cloud Inhalten verweisen, finden Sie unter Häufig verwendete GKE-Nutzerrollen und -Aufgaben.

Was bedeutet eine Unterbrechung der Infrastruktur in GKE?

Ihre GKE-Cluster verwalten den Lebenszyklus der GKE-Knoten. Diese Knoten werden auf Compute Engine-VMs bereitgestellt, die regelmäßig die folgenden Unterbrechungen aufweisen:

  • Behebung erkannter Probleme (TerminationEvent): Diese Ereignisse treten auf, weil Google Cloud ein Problem erkennt und Ihre Clusterinfrastruktur unterbricht. TerminationEvent-Ereignisse unterstützen kein Graceful Shutdown. TerminationEvent-Ereignisse werden durch die folgenden Probleme ausgelöst:

    • Die automatische Reparatur erfolgt, wenn GKE einen Knoten nach wiederholten fehlgeschlagenen Systemdiagnosen repariert.
    • HostError tritt auf, wenn ein Hardware- oder Softwarefehler auf der physischen Maschine dazu führt, dass die VM beendet wird.
  • Wartungs- oder Upgradeereignisse (MaintenanceEvent): Diese Ereignisse treten auf, wenn Google Cloud eine VM unterbrechen muss, um Wartungsarbeiten durchzuführen. Diese Ereignisse werden durch die folgenden Wartungsaufgaben ausgelöst:

    • Wartungen treten auf, wenn Google Cloud den zugrunde liegenden Host aktualisiert.
    • Knotenupdates, einschließlich automatischer Knotenupgrades, erfolgen, wenn GKE die Konfiguration des Knotens aktualisiert, z. B. die GKE-Version.

    Weitere Informationen dazu, wie Sie und GKE Änderungen während des Lebenszyklus eines Clusters verwalten, finden Sie unter Arten von Änderungen.

  • Reaktion auf Planungsentscheidungen (PreemptionEvent): Diese Ereignisse treten auf, wenn Google Cloud VMs auf Abruf beenden muss, um Kapazität für Ressourcen mit höherer Priorität freizugeben. PreemptionEvent-Ereignisse können Folgendes sein:

    • Entfernung:Tritt auf, wenn präemptive oder Spot-Infrastruktur vorzeitig beendet wird, um eine VM mit höherer Priorität zu ermöglichen.
    • Defragmentierung:Dies tritt auf, wenn GKE einen kleineren TPU-Slice vorzeitig beendet, um Platz für einen größeren TPU-Slice zu schaffen. Die Defragmentierung erfolgt nur auf TPU-Slices.

Während des Lebenszyklus eines lang laufenden GKE-Cluster kann es auf den Knoten zu regelmäßigen Störungen bei Arbeitslasten kommen. Wenn diese Störungen die GKE-Knoten betreffen, auf denen Ihre Arbeitslasten ausgeführt werden, muss GKE sowohl die laufenden Arbeitslasten als auch den zugrunde liegenden Knoten neu starten.

Warum Knoten, die die Live-Migration nicht unterstützen, eine Unterbrechungsverwaltung erfordern

Bei den meisten Compute Engine-VMs ist die Hostwartungsrichtlinie auf Live-Migration festgelegt. Das bedeutet, dass laufende Arbeitslasten in der Regel nur selten oder gar nicht unterbrochen werden. Bestimmte VM-Klassen unterstützen jedoch keine Live-Migration, einschließlich der folgenden Maschinentypen:

  • Maschinentypen mit angehängten GPUs und TPUs.
  • H4D-Maschinentypen.
  • Maschinentyp c4a-highmem-96-metal.
  • Z3-Maschinentypen mit mehr als 18 TiB angehängter Titanium-SSD.
  • Z4D-Maschinentypen mit mehr als 41 TiB angehängter Titanium-SSD.

Wenn beispielsweise ein Host-Ereignis für die VM in einem TPU-Slice auftritt, wird der gesamte Slice unterbrochen und dann neu geplant, da alle Wartungsereignisse auf Slice-Ebene koordiniert werden. Wenn Sie also einen TPU-Slice mit Hunderten von VMs erstellen, erhalten alle diese VMs denselben Wartungsereignisplan.

Wenn ein Hostereignis eintritt, beendet GKE den Knoten und seine Pods. Wenn die Pods als Teil einer größeren Arbeitslast wie eines Jobs oder Deployments bereitgestellt werden, startet GKE die Pods auf dem betroffenen Knoten neu.

Wartungsereignisse verwalten

Im Rest dieses Dokuments wird beschrieben, wie Sie MaintenanceEvent-Unterbrechungen verwalten.

Die Verwaltung von Knotenunterbrechungen während Hostwartungen erfolgt in drei Phasen:

  1. Geplante Hostwartung erkennen: Verwenden Sie GKE-Knotenlabels, Metadatenendpunkte oder Logs.
  2. Auf erkannte Wartungsarbeiten reagieren: Wenn Wartungsarbeiten geplant sind, bewerten Sie Ihre Infrastruktur und Arbeitslasten und ermitteln Sie die beste Maßnahme für Ihren Anwendungsfall. Ergreifen Sie die entsprechenden Maßnahmen, z. B. das System das Wartungsereignis automatisch verarbeiten lassen, die Hostwartung manuell starten oder Wartungsstrategien koordinieren.
  3. Ergebnis des Wartungsereignisses prüfen: Prüfen Sie, ob das Wartungsereignis korrekt gestartet wurde, entweder wenn Compute Engine das Wartungsereignis planmäßig startet oder wenn Sie es manuell starten.

Geplante Hostwartung erkennen

Wenn Sie anstehende Wartungsereignisse im Blick behalten und erkennen möchten, müssen Sie die Benachrichtigungen von GKE und Compute Engine aufrufen.

Weitere Informationen zum Monitoring von Wartungsbenachrichtigungen und ‑ereignissen finden Sie unter Wartungsereignisse überwachen.

Auf erkannte Wartungsarbeiten reagieren

Wenn Sie eine Benachrichtigung über eine anstehende geplante Wartung für einen oder mehrere Knoten in Ihrem Cluster sehen, verwenden Sie den folgenden Entscheidungsbaum, um die beste Vorgehensweise bei der Unterbrechung zu ermitteln:

  1. Automatische Wartung:Compute Engine startet das Wartungsereignis planmäßig. Ihre VMs werden automatisch im Hintergrund migriert. Dabei kommt es zu minimalen oder gar keinen Unterbrechungen.

    1. Wenn die Host-VM die Live-Migration unterstützt, empfehlen wir, das Wartungsereignis automatisch durchführen zu lassen.
    2. Wenn Ihre Arbeitslasten auf flexiblen Knoten im Leerlauf ausgeführt werden, können Sie das Timing der Wartung automatisch optimieren, indem Sie die opportunistische Wartung konfigurieren. Dadurch werden erforderliche Updates nur in Zeiten natürlicher Inaktivität ausgelöst.
  2. Hostwartungsereignis manuell starten:Beantworten Sie die folgenden Fragen, um die beste Methode für den manuellen Umgang mit der Unterbrechung zu ermitteln:

    1. Handelt es sich bei den betroffenen Knoten um einzelne oder isolierte VMs?

      • Ja (ich führe eine einzelne oder isolierte VM aus):
        • Wenn Sie keine präzisen Zeitsteuerungen benötigen, sollten Sie Compute Engine das Wartungsereignis planmäßig starten lassen (automatisch, Standard).
        • Wenn Sie unerwartete Preemptions vermeiden möchten, starten Sie das Host-Wartungsereignis manuell auf dem einzelnen Knoten zu einem passenden Zeitpunkt, z. B. bei geringem Traffic.
      • Nein (ich verwende einen Knotenpool mit Beschleunigern): Wählen Sie eine der Optionen im nächsten Schritt aus.
    2. Wählen Sie je nach Anwendungsfall eine der folgenden Optionen aus:

      • Wenn in Ihrem Accelerator-Pool gekoppelte KI‑/ML‑Trainingsaufgaben ausgeführt werden:Implementieren Sie die parallele Strategie. Speichern Sie den Trainingsstatus in einem Prüfpunkt, fahren Sie den Pool ordnungsgemäß herunter und führen Sie gleichzeitig Host-Updates und GKE-Cluster-Upgrades durch, bevor Sie den Pool neu starten.

      • Wenn in Ihrem Accelerator-Pool KI‑/ML-Bereitstellungs- oder Inferenzendpunkte mit hoher Verfügbarkeit ausgeführt werden, implementieren Sie die Rolling-Strategie. Koordinieren Sie geplante Hostwartungen und Versionsupgrades in rollierenden Batches innerhalb Ihrer Zone oder Poolgrenzen und verwenden Sie aktive Replikate, um SLAs zu schützen.

Host-Wartungsereignis auf einzelnen oder isolierten VMs manuell starten

Sie können verschiebbare Wartungen manuell starten, wenn es Ihnen passt, z. B. in Zeiten geringer Aktivität. Wenden Sie dazu das Label cloud.google.com/perform-maintenance=true an, wenn die folgenden Bedingungen erfüllt sind:

  • Compute Engine sendet eine Benachrichtigung über ein geplantes Wartungsereignis.
  • Das zugrunde liegende Compute Engine-Wartungsereignis kann neu geplant werden. Ob das Ereignis neu geplant werden kann, sehen Sie in den Ereignismetadaten in der Benachrichtigung can_reschedule=TRUE. Wenn die Veranstaltung nicht verschoben werden kann, hat das Festlegen des Labels cloud.google.com/perform-maintenance=true keine Auswirkungen und die Wartung erfolgt zum ursprünglich geplanten Zeitpunkt.

Wenn die oben genannten Bedingungen erfüllt sind, legen Sie für einen Knoten im Knotenpool das Knotenlabel cloud.google.com/perform-maintenance auf true fest. Beispiel:

kubectl label nodes <node-name> cloud.google.com/perform-maintenance=true

Wenn Sie ein Wartungsereignis starten, führt GKE die folgenden Vorgänge aus:

  1. Markiert den Knoten.
  2. Entfernt Pods ordnungsgemäß.
  3. Fordert Compute Engine auf, das Wartungsereignis sofort zu starten, anstatt auf die geplante Zeit zu warten.

Ergebnis des Wartungsereignisses überprüfen

Nachdem Sie ein bevorstehendes Wartungsereignis erkannt und sich für die beste Vorgehensweise entschieden haben, können Sie das Ergebnis des Wartungsereignisses überprüfen.

Compute Engine startet das Wartungsereignis planmäßig.

Wenn die Wartung beginnt, wird ein Knoten möglicherweise ein- oder mehrmals heruntergefahren. Die Benachrichtigungszeit vor dem bevorstehenden Herunterfahren ist kurz. In diesen Fällen unternimmt GKE alles, um Arbeitslasten zu beenden und Pods ordnungsgemäß zu entfernen.

Beginn der geplanten Wartung

Wenn die geplante Wartung beginnt, aktualisiert Compute Engine die Metadaten im Verzeichnis http://metadata.google.internal/computeMetadata/v1/instance/attributes/. Compute Engine aktualisiert die Metadatenlabels so:

  • Legt maintenance-event auf TERMINATE_ON_HOST_MAINTENANCE fest.
  • Legt in upcoming-maintenance maintenance_status auf ONGOING fest.

GKE erkennt und verarbeitet das geplante Hostwartungsereignis, unabhängig davon, ob Sie es manuell auslösen oder GKE automatisch vorgehen lassen.

Der folgende GKE-Systemmesswert gibt die Anzahl der Unterbrechungen für einen GKE-Knoten seit der letzten Stichprobe an (der Messwert wird alle 60 Sekunden abgerufen):

  • kubernetes.io/node/interruption_count

Die Felder interruption_type (z. B. TerminationEvent, MaintenanceEvent oder PreemptionEvent) und interruption_reason (z. B. HostError, Eviction oder AutoRepair) können Aufschluss darüber geben, warum ein Knoten unterbrochen wurde.

Wenn Sie eine Aufschlüsselung der Unterbrechungen und ihrer Ursachen in TPU-Knoten in den Clustern in Ihrem Projekt erhalten möchten, verwenden Sie die folgende PromQL-Abfrage:

  sum by (interruption_type,interruption_reason)(
    sum_over_time(
      kubernetes_io:node_interruption_count{monitored_resource="k8s_node"}[${__interval}]))

Wenn Sie nur die Hostwartungsereignisse sehen möchten, aktualisieren Sie die Abfrage, um den HW/SW Maintenance-Wert für interruption_reason zu filtern. Verwenden Sie die folgende PromQL-Abfrage:

  sum by (interruption_type,interruption_reason)(
    sum_over_time(
      kubernetes_io:node_interruption_count{monitored_resource="k8s_node", interruption_reason="HW/SW Maintenance"}[${__interval}]))

Verwenden Sie die folgende PromQL-Abfrage, um die Anzahl der Unterbrechungen nach Knotenpool zusammenzufassen:

  sum by (node_pool_name,interruption_type,interruption_reason)(
    sum_over_time(
      kubernetes_io:node_pool_interruption_count{monitored_resource="k8s_node_pool", interruption_reason="HW/SW Maintenance", node_pool_name=NODE_POOL_NAME }[${__interval}]))

Erweiterte Konfigurationen zur Minimierung von Unterbrechungen

In diesem Abschnitt werden zusätzliche Tools beschrieben, mit denen Sie Ihren Cluster und Ihre Arbeitslasten so konfigurieren können, dass Unterbrechungen minimiert werden.

Unterbrechungen verarbeiten aktivieren

apiVersion: v1
kind: ConfigMap
metadata:
  name: gke-disruption-handling
  namespace: kube-system
data:
  maintenance-experience.yaml: |
    gracefulTermination: true

Erstellen Sie eine Datei namens maintenance-config.yaml mit dieser ConfigMap, um die Störungsbehandlung zu aktivieren. Wenden Sie die ConfigMap mit dem folgenden Befehl auf den Cluster an:

kubectl apply -f my-configmap.yaml

GKE so konfigurieren, dass Arbeitslasten ordnungsgemäß beendet werden

In diesem Abschnitt konfigurieren Sie GKE, um den Anwendungslebenszyklus zu verwalten und Störungen Ihrer Arbeitslast zu minimieren. Wenn Sie keinen Kulanzzeitraum konfigurieren, wird standardmäßig ein Kulanzzeitraum von 30 Sekunden verwendet.

GKE unternimmt alles, um diese Pods ordnungsgemäß zu beenden und die von Ihnen definierte Beendigungsaktion auszuführen, z. B. das Speichern eines Trainingsstatus. GKE sendet zu Beginn des Kulanzzeitraums ein SIGTERM-Signal an Pods. Wenn Pods nicht bis zum Ende des Kulanzzeitraums beendet werden, sendet GKE ein weiteres SIGKILL-Signal an alle Prozesse, die noch in einem Container im Pod ausgeführt werden.

Um den Zeitraum für die ordnungsgemäße Beendigung zu konfigurieren, legen Sie den Kulanzzeitraum für die Beendigung (in Sekunden) im Feld spec.terminationGracePeriodSeconds Ihres Pod-Manifests fest. Wenn Sie beispielsweise eine Benachrichtigungszeit von 10 Minuten erhalten möchten, legen Sie das Feld spec.terminationGracePeriodSeconds in Ihrem Pod-Manifest so auf 600 Sekunden fest:

    spec:
      terminationGracePeriodSeconds: 600

Wir empfehlen, einen Kulanzzeitraum für die Kündigung festzulegen, der lang genug ist, damit alle laufenden Aufgaben innerhalb des Benachrichtigungszeitraums abgeschlossen werden können. Wenn Ihre Arbeitslast ein ML-Framework wie MaxText, Pax oder JAX mit Orbax verwendet, können die Arbeitslasten das SIGTERM-Signal erfassen und einen Prüfpunktprozess initiieren. Weitere Informationen finden Sie unter TPU Autocheckpoint.

Prozess der ordnungsgemäßen Beendigung

Wenn ein manuell gestartetes Wartungsereignis beginnt, signalisiert Compute Engine das bevorstehende Herunterfahren der Maschine durch Aktualisieren des Metadatenschlüssels maintenance-event. GKE startet die ordnungsgemäße Beendigung.

Der folgende Workflow zeigt, wie GKE die ordnungsgemäße Knotenbeendigung ausführt, wenn ein bevorstehender Knoten-Shutdown ansteht:

  1. Innerhalb von 60 Sekunden geschieht Folgendes:
    1. Die Systemkomponenten wenden das Knotenlabel cloud.google.com/active-node-maintenance auf ONGOING an, um anzuzeigen, dass Arbeitslasten beendet werden.
    2. GKE wendet die Knotenmarkierung an, um zu verhindern, dass neue Pods auf dem Knoten geplant werden. Der Taint hat den Schlüssel cloud.google.com/impending-node-termination:NoSchedule. Wir empfehlen, Ihre Arbeitslasten nicht so zu ändern, dass sie diese Markierung aufgrund der bekannten Beendigung tolerieren.
  2. Die Komponente „maintenance-handler“ beginnt mit dem Entfernen von Pods, indem zuerst Arbeitslast-Pods und dann System-Pods (z. B. kube-system) entfernt werden.
  3. GKE sendet ein SIGTERM-Shutdown-Signal an Arbeitslast-Pods, die auf dem Knoten ausgeführt werden, um sie über ein bevorstehendes Herunterfahren zu informieren. Pods können mit dieser Benachrichtigung alle laufenden Aufgaben durchführen. GKE unternimmt alles, um diese Pods ordnungsgemäß zu beenden.
  4. Nach Abschluss des Rauswurfs aktualisiert GKE den Wert des Labels cloud.google.com/active-node-maintenance auf terminating, um anzugeben, dass der Knoten bereit für die Beendigung ist.

Anschließend wird der Knoten beendet und ein Ersatzknoten zugewiesen. GKE löscht die Labels und Markierungen, wenn der Vorgang abgeschlossen ist. Führen Sie die Schritte im Abschnitt Host-Wartungsereignis manuell starten aus, um das Beendigungsfenster für Ihre Arbeitslasten mit GPUs oder TPUs zu verlängern.

Fortschritt einer aktiven ordnungsgemäßen Beendigung beobachten

Sie können die GKE-Logs nach den folgenden Ereignissen für die ordnungsgemäße Beendigung filtern:

  • Wenn die VM eine Störung aufgrund einer bevorstehenden Knotenbeendigung erkennt, z. B. ein Compute Engine-Hostwartungsereignis, setzt GKE cloud.google.com/active-node-maintenance auf ONGOING, wenn Arbeitslasten beendet werden, und auf terminating, wenn die Arbeitslasten abgeschlossen sind und der Knoten beendet werden kann.
  • Wenn die Planung neuer Arbeitslasten eingeschränkt wird, wendet GKE die Markierung cloud.google.com/impending-node-termination:NoSchedule an.

Unterbrechungen laufender Arbeitslasten durch opportunistische Wartung minimieren

Sie können Unterbrechungen laufender Arbeitslasten minimieren, indem Sie die Wartung automatisch auslösen, wenn GKE erkennt, dass Knoten mit GPUs oder TPUs inaktiv sind. Erstellen Sie einen neuen Knotenpool, um diese Funktion zu aktivieren. Sie können die opportunistische Wartung nicht für einen vorhandenen Knotenpool aktivieren.

Neuen Knotenpool mit opportunistischer Wartung erstellen

Der folgende Befehl zeigt, wie Sie einen Knotenpool mit aktivierter opportunistischer Wartung erstellen:

gcloud beta container node-pools create NODE_POOL_NAME \
    --cluster CLUSTER_NAME \
    --accelerator ACCELERATOR_ARG \
    --machine-type MACHINE_TYPE \
    --num-nodes NODE_COUNT \
    --zone ZONE \
    --project=PROJECT_ID \
    --opportunistic-maintenance=node-idle-time=NODE_IDLE_TIME,min-nodes=MIN_NODES,window=WINDOW

Ersetzen Sie die folgenden Werte:

  • NODE_POOL_NAME: der Name Ihres GKE-Knotenpools.
  • CLUSTER_NAME : der Name Ihres GKE-Clusters.
  • NODE_IDLE_TIME : Die Zeit, die ein Knoten inaktiv bleiben kann (d. h. es werden keine Arbeitslasten ausgeführt, die Beschleuniger verwenden), bevor die Wartung ausgelöst wird. Der Wert stellt die Dauer in Sekunden mit bis zu neun Nachkommastellen dar und endet mit dem Zeichen s, z. B. 80000s.
  • MIN_NODES : die Mindestanzahl von Knoten, die in einem Knotenpool verfügbar sein müssen. Mit dieser Option wird die Wartung blockiert, wenn dadurch die Anzahl der ausgeführten Knoten unter diesen Wert fällt, z. B. 10.
  • WINDOW : Das Zeitfenster in Sekunden, in dem die opportunistische Wartung ausgeführt werden kann. Der Wert endet mit dem Zeichen s. Ein Wert von 14 Tagen oder 1209600s bedeutet beispielsweise, dass die opportunistische Wartung nur in den zwei Wochen vor dem geplanten Wartungsdatum ausgeführt werden kann. Ein Wert von 28 Tagen oder 2419200s ermöglicht die Ausführung opportunistischer Wartungen zu einem beliebigen Zeitpunkt während des geplanten Wartungsfensters. Dieses Fenster für die Wartung von Compute Engine-Hosts unterscheidet sich von GKE-Wartungsfenstern, in denen festgelegt wird, wann GKE-Clusterwartungen durchgeführt werden können. Sie werden separat konfiguriert.

Beispielkonfiguration für die opportunistische Wartung

Dazu ein Beispiel: Sie haben einen Knotenpool mit vier Knoten und die Konfiguration für die opportunistische Wartung ist auf --opportunistic-maintenance=node-idle-time=600s,window=2419200s,min-nodes=3 festgelegt. In diesem Szenario passiert Folgendes:

  • Auf node1 wird eine GPU-Arbeitslast ausgeführt. Dieser Knoten ist nicht im Leerlauf, daher wird er übersprungen.
  • node2 ist seit 60 Sekunden inaktiv. Dieser Knoten war nicht lange genug im Leerlauf und wird daher übersprungen.
  • node3 ist seit 600 Sekunden inaktiv. Dieser Knoten erfüllt die Leerlaufanforderung.
  • node4 ist seit 600 Sekunden inaktiv. Dieser Knoten erfüllt die Leerlaufanforderung.

Sowohl node3 als auch node4 erfüllen die Anforderung für den Leerlauf. Allerdings wird nur bei einem dieser Knoten eine opportunistische Wartung ausgelöst, da der Wert der Option min-nodes auf 3 festgelegt ist.

Konfiguration und Status von Knoten mit opportunistischer Wartung prüfen

Prüfen Sie mit dem folgenden Befehl, ob die opportunistische Wartung für einen Knoten konfiguriert ist:

kubectl describe node NODE_NAME | grep node.gke.io/opportunistic-config

Ersetzen Sie NODE_NAME durch den Namen des Knotens, den Sie prüfen möchten.

So prüfen Sie, ob ein Knoten, der für die opportunistische Wartung konfiguriert ist, gerade gewartet wird:

kubectl describe node NODE_NAME | grep node.gke.io/maintenance-state

Wenn der Knoten durch eine opportunistische Wartung ausgelöst wird, wird die Annotation maintenance-state als opportunistic-triggered und true angezeigt.

Beschränkungen

Beachten Sie die folgenden Einschränkungen der opportunistischen Wartung:

  • Diese Funktion kann nur mit GPU- und TPU-Knotenpools verwendet werden.
  • Die opportunistische Wartung ist nicht mit Cluster Autoscaler kompatibel, da Cluster Autoscaler bereits inaktive Knoten herunterskaliert.
  • Für TPU-Knotenpools mit mehreren Hosts sollte der Wert der Einstellung min-nodes-per-pool 0 sein, da diese Knotenpools atomar sind.
  • Die unterstützte Mindestversion von GKE ist 1.33.3-gke.1118000.
  • Es wird nur geplante Wartung unterstützt, die die can_reschedule=TRUE-Benachrichtigung enthält.
  • Wenn Sie diese Funktion deaktivieren möchten, müssen Sie den Knotenpool ohne die entsprechenden Flags neu erstellen. Alternativ können Sie die Funktion mit cloud.google.com/opportunistic-disable=true manuell auf bestimmten Knoten deaktivieren.
  • In seltenen Fällen kann es länger dauern, bis die Wartung auf einem Knoten abgeschlossen ist. Kunden, die diese Funktion verwenden, haben möglicherweise für einen bestimmten Zeitraum weniger verfügbare Knoten, bis hin zum Wert der Einstellung min-nodes-per-pool.

Nächste Schritte