Wartungsfenster und -Wartungsausschlüsse konfigurieren

Auf dieser Seite wird beschrieben, wie Sie mithilfe von Wartungsfenstern und Wartungsausschlüssen steuern, wann automatische Clusterwartungen wie z. B. automatische Upgrades in Ihren Google Kubernetes Engine-Clustern (GKE-Clustern) durchgeführt werden dürfen.

Hinweis

Führen Sie die folgenden Schritte durch, bevor Sie beginnen:

  • Achten Sie darauf, dass die Google Kubernetes Engine API aktiviert ist.
  • Google Kubernetes Engine API aktivieren
  • Prüfen Sie, ob die Google Cloud CLI installiert ist.
  • So können Sie die Standardeinstellungen der Google Cloud CLI für Ihr Projekt einrichten:
    • Verwenden Sie gcloud init, wenn Sie die Standardeinstellungen für Projekte ansehen möchten.
    • Verwenden Sie gcloud config, um Ihre Projekt-ID, Zone und Region individuell festzulegen.

    gcloud init

    1. Führen Sie gcloud init aus und folgen Sie der Anleitung:

      gcloud init

      Wenn Sie SSH auf einem Remote-Server verwenden, können Sie mit dem Flag --console-only verhindern, dass mit dem Befehl ein Browserfenster geöffnet wird:

      gcloud init --console-only
    2. Folgen Sie der Anleitung, um die gcloud CLI für die Nutzung Ihres Google Cloud-Kontos zu autorisieren.
    3. Erstellen Sie eine neue Konfiguration oder wählen Sie eine vorhandene aus.
    4. Wählen Sie ein Google Cloud-Projekt aus.
    5. Wählen Sie eine Compute Engine-Standardzone aus.
    6. Wählen Sie eine Compute Engine-Standardregion aus.

    gcloud config

    1. Legen Sie Ihre standardmäßige Projekt-ID fest:
      gcloud config set project PROJECT_ID
    2. Legen Sie Ihre standardmäßige Compute Engine-Region fest (z. B. us-central1):
      gcloud config set compute/region COMPUTE_REGION
    3. Legen Sie Ihre standardmäßige Compute Engine-Zone fest (z. B. us-central1-c):
      gcloud config set compute/zone COMPUTE_ZONE
    4. Aktualisieren Sie gcloud auf die neueste Version:
      gcloud components update

    Durch das Festlegen von Standardspeicherorten können Sie in der gcloud CLI Fehler wie One of [--zone, --region] must be supplied: Please specify location vermeiden.

Wartungsfenster konfigurieren

Mit der Konfiguration eines Wartungsfensters legen Sie fest, wann es beginnt, wie lang es dauert und wie oft es sich wiederholen soll. So können Sie beispielsweise ein Wartungsfenster konfigurieren, das sich wöchentlich von Montag bis Freitag wiederholt.

Sie können ein Wartungsfenster mit der Google Cloud Console oder dem Google Cloud CLI konfigurieren.

.

Cluster mit einem einfachen Wartungsfenster erstellen

Sie können in der gcloud CLI ein einfaches Wartungsfenster durch Angabe des Flags --maintenance-window erstellen. Mit diesem Flag können Sie ein tägliches Wartungsfenster von vier Stunden in einem vereinfachten Format festlegen.

Führen Sie den folgenden Befehl aus, um einen neuen Cluster mit einem einfachen Wartungsfenster zu erstellen:

gcloud container clusters create CLUSTER_NAME \
    --maintenance-window START_TIME

Dabei gilt:

  • CLUSTER_NAME: Der Name des neuen Clusters.
  • START_TIME: ein 24-Stunden-Zeitstempel in UTC, z. B. 16:00.

Das Wartungsfenster wird täglich zur angegebenen START_TIME ausgeführt und dauert vier Stunden.

Cluster mit Wartungsfenster erstellen

Mit der gcloud CLI oder der Google Cloud Console können Sie einen neuen Cluster mit einem Wartungsfenster erstellen.

gcloud

Führen Sie den folgenden Befehl aus, um einen neuen Cluster mit einem Wartungsfenster zu erstellen:

gcloud container clusters create CLUSTER_NAME \
    --maintenance-window-start START_TIME \
    --maintenance-window-end END_TIME \
    --maintenance-window-recurrence RRULE

Dabei gilt:

  • CLUSTER_NAME ist der Name des neuen Clusters.
  • START_TIME: Zeitpunkt, an dem das Wartungsfenster gestartet wird, ausgedrückt als DTSTART-Wert RFC-5545.
  • END_TIME: Ende des Wartungsfensters, das im selben Format wie START_TIME angegeben ist, aber nur zur Berechnung der Dauer des Wartungsfensters verwendet wird. Der Wert für END_TIME muss relativ zu START_TIME in der Zukunft liegen.
  • RRULE: RFC-5545 RRULE. Dieses Format ist äußerst flexibel und besitzt mehrere Möglichkeiten zur Festlegung von Wiederholungsregeln.

Mit dem folgenden Befehl wird beispielsweise der Cluster my-cluster mit einem Wartungsfenster erstellt, das am 1. August 2021 um 2:00 Uhr (UTC) beginnt, vier Stunden später endet und täglich ausgeführt wird. Weitere Informationen zur Formatierung von Datumsangaben und Uhrzeiten finden Sie unter Datum/Uhrzeit mit gcloud festlegen.

gcloud container clusters create my-cluster \
    --maintenance-window-start 2021-08-01T02:00:00Z \
    --maintenance-window-end 2021-08-01T06:00:00Z \
    --maintenance-window-recurrence FREQ=DAILY

Console

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

    Zur Seite „Google Kubernetes Engine“

  2. Klicken Sie auf Erstellen.

  3. Konfigurieren Sie den Cluster wie gewünscht.

  4. Klicken Sie im Navigationsbereich unter Cluster auf Automatisierung.

  5. Klicken Sie auf das Kästchen Wartungsfenster aktivieren.

  6. Wählen Sie die Startzeit und die Dauer und dann die Wochentage für das Wartungsfenster aus. Um die Spezifikation der Wiederholungsregel (RRule) direkt zu bearbeiten, wählen Sie Benutzerdefinierter Editor aus.

  7. Klicken Sie auf Erstellen.

Wartungsfenster für einen vorhandenen Cluster konfigurieren

gcloud

Führen Sie den folgenden Befehl aus, um ein Wartungsfenster für einen vorhandenen Cluster zu erstellen oder zu aktualisieren:

gcloud container clusters update CLUSTER_NAME \
    --maintenance-window-start START_TIME \
    --maintenance-window-end END_TIME \
    --maintenance-window-recurrence RRULE

Dabei gilt:

  • CLUSTER_NAME ist der Name des vorhandenen Clusters.
  • START_TIME: Zeitpunkt, an dem das Wartungsfenster gestartet wird, ausgedrückt als DTSTART-Wert RFC-5545.
  • END_TIME: Ende des Wartungsfensters, das im selben Format wie START_TIME angegeben ist, aber nur zur Berechnung der Dauer des Wartungsfensters verwendet wird. Der Wert für END_TIME muss relativ zu START_TIME in der Zukunft liegen.
  • RRULE: RFC-5545 RRULE. Dieses Format ist äußerst flexibel und besitzt mehrere Möglichkeiten zur Festlegung von Wiederholungsregeln.

Console

So erstellen oder ändern Sie ein Wartungsfenster für einen vorhandenen Cluster:

  1. Rufen Sie in der Console die Seite Google Kubernetes Engine auf.

    Zur Seite „Google Kubernetes Engine“

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

  3. Klicken Sie unter Automatisierung neben dem Feld Wartungsfenster auf Wartungsrichtlinie bearbeiten.

  4. Klicken Sie auf das Kästchen Wartungsfenster aktivieren.

  5. Wählen Sie die Startzeit und die Dauer und dann die Wochentage für das Wartungsfenster aus. Um die Wiederholungsregel (RRule) direkt zu bearbeiten, wählen Sie Benutzerdefinierter Editor aus.

  6. Klicken Sie auf Änderungen speichern.

Unvollständige Wartung manuell fertigstellen

Wenn ein Upgrade oder eine andere automatische Wartung mehr Zeit als mit dem Wartungsfenster vorgesehen benötigt, versucht GKE, die laufenden Wartungsaufgaben zu beenden und im nächsten Wartungsfenster fortzusetzen. Wenn ein automatisches Upgrade abgebrochen wird und automatische Upgrades für Knoten aktiviert sind, können für die Knoten unterschiedliche Versionen aktiv sein. Der Cluster sollte jedoch wie gewohnt funktionieren.

Wenn Sie Ihren Cluster manuell aktualisieren oder ein teilweises Upgrade abbrechen bzw. rückgängig machen möchten, rufen Sie Manuelles Upgrade eines Clusters auf.

Wartungsfenster entfernen

gcloud

Führen Sie zum Entfernen eines Wartungsfensters aus einem Cluster diesen Befehl aus:

gcloud container clusters update CLUSTER_NAME --clear-maintenance-window

Ersetzen Sie CLUSTER_NAME durch den Namen des vorhandenen Clusters.

Console

So entfernen Sie ein Wartungsfenster:

  1. Rufen Sie in der Console die Seite Google Kubernetes Engine auf.

    Zur Seite „Google Kubernetes Engine“

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

  3. Klicken Sie unter Automatisierung neben dem Feld Wartungsfenster auf Wartungsrichtlinie bearbeiten.

  4. Entfernen Sie das Häkchen von Wartungsfenster aktivieren.

  5. Klicken Sie auf Änderungen speichern.

Beispiele für Wartungsfenster

In den folgenden Beispielen werden verschiedene Möglichkeiten zur Konfiguration eines Wartungsfensters dargestellt. Es werden nur die relevanten Flags angezeigt. Die dafür verwendete Syntax gilt auch für das Erstellen eines neuen oder für das Aktualisieren eines vorhandenen Clusters.

Wöchentlich dienstags und mittwochs ab dem 27. August 2019 den ganzen Tag

In diesem Beispiel ist der Abstand zwischen den Zeitstempeln für Start und Ende ein ganzer Tag. Das Wartungsfenster ist also dienstags und mittwochs jeweils 24 Stunden lang aktiv.

--maintenance-window-start 2019-08-27T00:00:00Z \
--maintenance-window-end 2019-08-28T00:00:00Z \
--maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=TU,WE'
Täglich werktags von 9:00 bis 17:00 Uhr (UTC-4)

In diesem Beispiel wird gezeigt, wie Sie ein tägliches Wartungsfenster einrichten, aber Wochenenden überspringen. Dieses Beispiel verwendet eine andere Zeitzone als UTC.

--maintenance-window-start 2019-09-02T09:00:00-04:00 \
--maintenance-window-end 2019-09-02T17:00:00-04:00 \
--maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR'
Wöchentlich um 16 Uhr für 8 Stunden (UTC-7)

Wenn Sie keine Zeitzone für --maintenance-window-start angeben, wird die in Ihrem Google Cloud-Konto konfigurierte Ortszeit verwendet. Die Google Cloud Console verwendet immer die Ortszeit.

--maintenance-window-start 2019-08-13T16:00:00-7:00 \
--maintenance-window-end 2019-08-14T00:00:00-7:00 \
--maintenance-window-recurrence FREQ=WEEKLY

Wartungsausschluss konfigurieren

Wenn Sie einen Wartungsausschluss für Ihren Cluster einrichten möchten, müssen Sie Folgendes angeben:

  • Name: Der Name des Ausschlusses (optional).
  • Startzeit: Das Datum und die Uhrzeit für den Beginn des Ausschlusszeitraums.
  • Ende: Datum und Uhrzeit für das Ende des Ausschlusszeitraums. In der folgenden Tabelle finden Sie Einschränkungen für die Länge eines Ausschlusszeitraums für jeden der verfügbaren Bereiche.
  • Umfang: Der einzuschränkende Umfang automatischer Upgrades. In der folgenden Tabelle sind die verfügbaren Optionen für den Ausschlussumfang aufgeführt.
Umfang Beschreibung Maximaler Ausschlusszeitraum
Keine Upgrades (Standard) Alle Patch- und Nebenversionsupgrades werden ausgeschlossen. Verhindert VM-Unterbrechungen durch Upgrades auf der Steuerungsebene und in den Knotenpools des Clusters. Darf nicht mehr als 30 Tage betragen.
Keine Nebenversionsupgrades Alle Nebenversionsupgrades werden ausgeschlossen. Bei Patch-Upgrades können VM-Unterbrechungen auf der Steuerungsebene und in den Knotenpools des Clusters auftreten. Darf nicht länger als 180 Tage betragen oder das Ende des Lebenszyklus der Nebenversion überschreiten.
Keine Nebenversions- oder Knotenupgrades Alle Nebenversions- und Knotenupgrades werden ausgeschlossen. Verhindert VM-Unterbrechungen durch Upgrades in den Knotenpools des Clusters. Auf der Steuerungsebene können jedoch Unterbrechungen auftreten. Darf nicht länger als 180 Tage betragen oder das Ende des Lebenszyklus der Nebenversion überschreiten.

Definitionen zu Nebenversion und Patchversion finden Sie unter Versionsverwaltungsschema.

Für Wartungsausschlüsse gelten die folgenden Einschränkungen:

  • Sie können den Umfang automatischer Upgrades in einem Wartungsausschluss nur für Cluster einschränken, die für eine Release-Version registriert sind.
  • Sie können maximal drei Wartungsausschlüsse hinzufügen, die alle Upgrades ausschließen, also einen Bereich „Keine Upgrades”.
  • Es sind insgesamt maximal 20 Wartungsausschlüsse möglich.
  • Wenn Sie in Ihrem Ausschluss keinen Bereich angeben, wird der Bereich standardmäßig auf „Keine Upgrades” eingestellt.

Cluster mit Wartungsausschluss erstellen

Wartungsausschlüsse lassen sich beim Erstellen neuer Cluster mit der Google Cloud Console konfigurieren. Diese Aufgabe kann nicht in der gcloud CLI ausgeführt werden.

So erstellen Sie einen Cluster mit einem Wartungsausschluss:

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

    Zur Seite „Google Kubernetes Engine“

  2. Klicken Sie auf Erstellen.

  3. Konfigurieren Sie den Cluster wie gewünscht.

  4. Klicken Sie im Navigationsbereich unter Cluster auf Automatisierung.

  5. Klicken Sie unter Wartungsausschlüsse auf Wartungsausschluss hinzufügen.

  6. Wählen Sie den Umfang, eine Startzeit und eine Endzeit aus.

  7. Klicken Sie auf Erstellen.

Als Beispiel wird ein Wartungsausschluss für Black Friday dargestellt.

Wartungsausschluss für einen vorhandenen Cluster konfigurieren

Wartungsausschlüsse für einen vorhandenen Cluster können Sie mit der Google Cloud Console oder der gcloud CLI konfigurieren.

gcloud

Um einen Wartungsausschluss für einen vorhandenen Cluster zu konfigurieren, führen Sie folgenden Befehl aus:

gcloud container clusters update CLUSTER_NAME \
    --add-maintenance-exclusion-name EXCLUSION_NAME
    --add-maintenance-exclusion-start START_DATE_TIME \
    --add-maintenance-exclusion-end END_DATE_TIME \
    --add-maintenance-exclusion-scope SCOPE

Dabei gilt:

  • CLUSTER_NAME: Der Name Ihres Clusters.
  • EXCLUSION_NAME: Der Name des Wartungsausschlusses.
  • START_DATE_TIME: Das Datum und die Uhrzeit für den Start des Ausschlusses.
  • END_DATE_TIME: Das Datum und die Uhrzeit für das Ende des Ausschlusses.
  • SCOPE: Der Bereich des Upgrades, der ausgeschlossen werden soll. Dies kann einer der folgenden Werte sein: no_upgrades, no_minor_upgrades oder no_minor_or_node_upgrades.

Zum Aufruf der unterstützten Datums- und Uhrzeitformate führen Sie gcloud topic datetimes aus.

Console

So konfigurieren Sie einen Wartungsausschluss für einen vorhandenen Cluster:

  1. Rufen Sie in der Console die Seite Google Kubernetes Engine auf.

    Zur Seite „Google Kubernetes Engine“

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

  3. Klicken Sie unter Automatisierung neben dem Feld Wartungsausschlüsse auf Wartungsausschlüsse bearbeiten.

  4. Klicken Sie unter Wartungsausschlüsse auf Wartungsausschluss hinzufügen.

  5. Wählen Sie den Umfang, eine Startzeit und eine Endzeit aus.

  6. Klicken Sie auf Änderungen speichern.

Wartungsausschluss entfernen

Wartungsausschlüsse können mit der Google Cloud Console oder der gcloud CLI entfernt werden.

gcloud

Führen Sie den folgenden Befehl aus, um einen vorhandenen Wartungsausschluss zu entfernen:

gcloud container clusters update CLUSTER_NAME \
    --remove-maintenance-exclusion EXCLUSION_NAME

Dabei gilt:

  • CLUSTER_NAME ist der Name des vorhandenen Clusters.
  • EXCLUSION_NAME: ist der Name des Wartungsausschlusses, der entfernt werden soll.

Console

So entfernen Sie einen Wartungsausschluss aus einem vorhandenen Cluster:

  1. Rufen Sie in der Console die Seite Google Kubernetes Engine auf.

    Zur Seite „Google Kubernetes Engine“

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

  3. Klicken Sie unter Automatisierung neben dem Feld Wartungsausschlüsse auf Wartungsausschlüsse bearbeiten.

  4. Klicken Sie unter Wartungsausschlüsse neben dem Feld Endzeit für den Ausschluss, der entfernt werden soll, auf Element löschen.

  5. Klicken Sie auf Änderungen speichern.

Wenn Sie alle Wartungsausschlüsse für einen Cluster sehen möchten, können Sie die Wartungsrichtlinien des Clusters aufrufen.

Beispiel für einen Wartungsausschluss

Im folgenden Beispiel wird die Wartung über vier Tage vom Black Friday bis zum Cyber Monday verhindert. Das ist für viele Einzelhändler der umsatzstärkste Zeitraum des Jahres. In diesem Beispiel wird gezeigt, wie Sie ein Wartungsfenster vom Black Friday 2021 (26. November 2021) bis zum Cyber Monday 2021 (29. November 2021) von Mitternacht an der Ostküste (UTC-5) bis 23:59:59 Uhr an der Westküste (UTC-8).

gcloud container clusters update sample-cluster \
    --add-maintenance-exclusion-name black-friday \
    --add-maintenance-exclusion-start 2021-11-26T00:00:00-05:00 \
    --add-maintenance-exclusion-end 2021-11-29T23:59:59-08:00 \
    --add-maintenance-exclusion-scope no_upgrades

Wartungsrichtlinien eines Clusters aufrufen

Verwenden Sie den folgenden Befehl, um die Wartungsrichtlinie eines Clusters anzusehen, einschließlich der Angabe, ob ein Wartungsfenster und alle Wartungsausschlüsse vorhanden sind:

gcloud container clusters describe CLUSTER_NAME

Fehlerbehebung

Wartungsausschlüsse gelten nur für Release-Versionen

Wenn Sie den Umfang automatischer Upgrades in einem Wartungsausschluss einschränken, muss der Cluster in einer Release-Version registriert sein. Andernfalls können die folgenden Fehler auftreten:

ERROR: (gcloud.container.clusters.update) INVALID_ARGUMENT: Cannot update to
STATIC channel since following maintenancePolicy.maintenanceExclusions can only
apply to release channels. Please remove those maintenance exclusions.
ERROR: (gcloud.container.clusters.update) ResponseError: code=400,
message=MaintenancePolicy.maintenanceExclusions["no"] could not apply to cluster
in STATIC channel, only no_upgrades exclusions are allowed in STATIC channel.

Wartungsausschlüsse überschreiten das Limit

Sie können maximal drei Wartungsausschlüsse angeben, die alle Upgrades ausschließen, also den Bereich „Keine Upgrades” erhalten. Andernfalls erhalten Sie den folgenden Fehler:

ERROR: (gcloud.container.clusters.update) ResponseError: code=400,
message=Number of active maintenance exclusions exceeds limit (3).

Sie können insgesamt maximal 20 Wartungsausschlüsse angeben. Andernfalls erhalten Sie den folgenden Fehler:

ERROR: (gcloud.container.clusters.update) ResponseError: code=400,
message=Number of total maintenance exclusions exceeds limit (20).

Nächste Schritte