Versionsverwaltung und Unterstützung für GKE

Auf dieser Seite werden die Versionsverwaltung in Google Kubernetes Engine (GKE) und die Richtlinien für die Versionsunterstützung erläutert. Den aktuellen Release- und Unterstützungszeitplan finden Sie im GKE-Releasezeitplan.

Versionsunterstützung

Die Kubernetes-Open-Source-Community-Community (OSS) veröffentlicht derzeit etwa alle 3 Monate eine Nebenversion mit neuen Funktionen und Verbesserungen. Ab Kubernetes 1.19 unterstützt OSS jede Nebenversion 12 Monate lang. Wichtige Fehler und Sicherheitslücken, die in einer unterstützten Nebenversion gefunden werden, werden mit dem Release einer Ad-hoc-Patchversion behoben. Die Kubernetes-Community kann den Versionsunterstützungskalender von Zeit zu Zeit überarbeiten.

Google bietet insgesamt 14 Monate Unterstützung für jede GKE-Nebenversion, sobald die Version im regulären Kanal zur Verfügung gestellt wurde. Knoten- und Knotenpoolversionen können bis zu zwei Nebenversionen älter als die Steuerungsebene sein, können aber aufgrund der Kubernetes OSS-Versionskompatibilitätsrichtlinie nicht älter als die Version der Steuerungsebene sein. Um die Unterstützbarkeit und Zuverlässigkeit sicherzustellen, sollten die Knoten eine unterstützte Version verwenden, unabhängig von einer gültigen Versionsabweichung.

Nach zwölf Monaten wird für eine unterstützte Version ein zweimonatiger Wartungszeitraum gestartet, bevor das End of Life erreicht wird.

Lebenszyklus der GKE-Nebenversion

Die erste Phase des Lebenszyklus einer Nebenversion beginnt mit der Veröffentlichung einer unterstützten GKE-Version. Cluster, auf denen eine unterstützte Nebenversion ausgeführt wird, erhalten regelmäßig Patches, um Fehler und Sicherheitsprobleme zu beheben. Gemäß den aktuellen Unterstützungsrichtlinien für die Kubernetes OSS-Community-Version plant GKE, Nebenversionen 14 Monate lang zu unterstützen, einschließlich der 12 Monate nach der Veröffentlichung im Regular Channel und eines Wartungszeitraums von 2 Monaten.

Etwa sechs Monate nach der Einführung der Nebenversion ist die Version für das Erstellen neuer Cluster und Steuerungsebenen nicht mehr verfügbar. Steuerungsebenen, auf denen die Nebenversion ausgeführt wird, werden nach und nach auf die nächste unterstützte Nebenversion aktualisiert. Bei Clustern, auf denen eine statische Version ausgeführt wird, können weiterhin neue Knotenpools für die Version erstellt werden. Cluster, auf denen eine Wartungsversion ausgeführt wird, bleiben weiterhin funktionsfähig. Cluster mit Release-Version erfordern, dass Steuerungsebenen und Knoten dieselbe Nebenversion verwenden.

Am Ende des 12-monatigen Release-Zeitraums bietet GKE einen zweimonatigen Wartungszeitraum. Während der zwei Monate des Wartungszeitraums können keine neuen Knotenpools mehr erstellt werden, bestehende Knotenpools mit Wartungsversion bleiben jedoch aktiv.

Am Ende des Wartungszeitraums erreicht eine Wartungsversion das End of Life und wird offiziell nicht mehr unterstützt. GKE-Nebenversionen die das End of Life erreicht haben, erhalten keine Sicherheitspatches und/oder Fehlerkorrekturen mehr.

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

Google kann sich nicht verpflichten, Patches oder Updates für End-of-Life-Versionen bereitzustellen.

In seltenen Fällen kann es erforderlich sein, den Wartungszeitraum oder das End of Life von GKE-Versionen zu überarbeiten. Dies ist auf Richtlinienänderungen in der Kubernetes OSS-Community oder auf das Auffinden von Sicherheitslücken oder auf technische Probleme, die nicht angemessen behoben werden können, zurückzuführen. Die neuesten verfügbaren Versionen finden Sie in den GKE-Versionshinweisen.

Versionsverwaltungsschema

GKE hängt eine GKE-Patchversion an den semantisch versionierten Kubernetes-Branchenstandard (x.y.z-gke.n) an:

Kubernetes-Hauptversion (x)
Hauptversionen werden in der Regel erhöht, wenn nicht abwärtskompatible Änderungen an der öffentlichen API vorgenommen werden. Eine Hauptversion erhöht die Kubernetes-Version von x.y auf x+1.y.
Kubernetes-Nebenversion (y)
Kubernetes veröffentlicht etwa alle drei Monate eine neue Nebenversion. Eine Nebenversion erhöht die Kubernetes-Version von 1.y auf 1.y+1. Kubernetes 1.19 ist z. B. die Nebenversion, die auf Kubernetes 1.18 folgt.
Kubernetes Patchrelease (z)
Neue Kubernetes-Patchreleases (z. B. 1.18.6) für GKE werden in der Regel wöchentlich veröffentlicht. Der Rollout der Patchreleases in jeder Zone erfolgt schrittweise.
GKE-Patchrelease (-gke.a)
Ein Patchrelease mit dem Suffix "-gke.a" (z. B. 1.18.6-gke.a) enthält Sicherheitsupdates und/oder Fehlerkorrekturen für GKE sowie die Open-Source-Upstream-Kubernetes-Software. Diese Updates oder Fehlerkorrekturen sind für die Kompatibilität und Interoperabilität mit Google Cloud erforderlich.

Verfügbare und als Standard festgelegte Versionen auflisten

Informationen zu verfügbaren Versionen finden Sie in den GKE-Versionshinweisen.

Sie können in der Google Cloud Console oder mithilfe des gcloud-Befehlszeilentools auch prüfen, welche Kubernetes-Versionen verfügbar und in einer bestimmten Zone als Standard festgelegt sind.

Versionen mit dem gcloud-Tool prüfen

Führen Sie einen der folgenden gcloud-Befehle für Ihren Clustertyp aus, um zu sehen, welche Versionen verfügbar sind und welche standardmäßig verwendet werden. Jeder Tab enthält Befehle zum Prüfen der Versionen für einen bestimmten Release-Kanal oder für keinen Kanal (statisch).

Rapid

Führen Sie die folgenden Befehle aus, um die Standardversion und die verfügbaren Versionen im Releasekanal Rapid anzusehen:

Standardversion

gcloud container get-server-config --flatten="channels" --filter="channels.channel=RAPID" \
    --format="yaml(channels.channel,channels.defaultVersion)"

Verfügbare Versionen

gcloud container get-server-config --flatten="channels" --filter="channels.channel=RAPID" \
    --format="yaml(channels.channel,channels.validVersions)"

Regulär

Führen Sie die folgenden Befehle aus, um die Standardversion und die verfügbaren Versionen im Releasekanal Regular anzusehen:

Standardversion

gcloud container get-server-config --flatten="channels" --filter="channels.channel=REGULAR" \
    --format="yaml(channels.channel,channels.defaultVersion)"

Verfügbare Versionen

gcloud container get-server-config --flatten="channels" --filter="channels.channel=REGULAR" \
    --format="yaml(channels.channel,channels.validVersions)"

Stabile Version

Führen Sie die folgenden Befehle aus, um die Standardversion und die verfügbaren Versionen im Releasekanal Stable anzusehen:

Standardversion

gcloud container get-server-config --flatten="channels" --filter="channels.channel=STABLE" \
    --format="yaml(channels.channel,channels.defaultVersion)"

Verfügbare Versionen

gcloud container get-server-config --flatten="channels" --filter="channels.channel=STABLE" \
    --format="yaml(channels.channel,channels.validVersions)"

Kein Kanal

Führen Sie die folgenden Befehle aus, um die Standardversion und die verfügbaren Versionen für einen Channel (statisch) aufzurufen:

Standardversion

gcloud container get-server-config --format="yaml(defaultClusterVersion)"

Verfügbare Versionen der Steuerungsebene

gcloud container get-server-config --format="yaml(validMasterVersions)"

Verfügbare Knotenversionen

gcloud container get-server-config --format="yaml(validNodeVersions)"

Versionen mit der Google Cloud Console prüfen

Ermitteln Sie mit den folgenden Schritten, welche Versionen verfügbar und als Standard festgelegt sind:

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

    Zur Seite "Google Kubernetes Engine"

  2. Klicken Sie auf Erstellen.

  3. Wählen Sie den Clustermodus Standard aus und klicken Sie dann auf Konfigurieren.

  4. Wählen Sie im Abschnitt Standorttyp einen Standorttyp und den gewünschten Standort für den Cluster aus.

  5. Wählen Sie im Abschnitt Version der Steuerungsebene eine Release-Version aus. Alle derzeit verfügbaren Versionen werden für diesen Kanal aufgelistet. Die Standardversion ist automatisch ausgewählt.

Clusterversion angeben

Dieser Abschnitt gilt nur für Cluster, die im Standardmodus erstellt werden.

Wenn Sie einen Cluster mit dem gcloud-Tool erstellen oder aktualisieren, können Sie mit dem Flag --cluster-version eine Clusterversion angeben. Sie können wahlweise eine bestimmte Version wie 1.9.7-gke.N oder einen Versionsalias verwenden:

  • latest: Gibt die höchste unterstützte Kubernetes-Version an, die derzeit in GKE in der Zone oder Region des Clusters verfügbar ist.
  • 1.X: Gibt den höchsten gültigen Patchrelease Patch+gke.N in der Nebenversion 1.x an.
  • 1.X.Y: Gibt den höchsten gültigen Patch gke.N im Patchrelease 1.xY an.
  • -: Gibt für Cluster-Steuerungsebenen die Kubernetes-Standardversion für Steuerungsebenen an. Bei Knotenupgrades wird die Version angegeben, die derzeit von der Cluster-Steuerungsebene ausgeführt wird.

Wenn Sie bei der Erstellung oder Aktualisierung eines Clusters für die Version latest angeben, werden keine automatischen Upgrades bereitgestellt. Aktivieren Sie automatische Knotenupgrades, wenn Sie gewährleisten möchten, dass auf den Knoten in Ihrem Cluster immer die neueste stabile Version ausgeführt wird.

Knotenversion angeben

Dieser Abschnitt gilt nur für Cluster, die im Standardmodus erstellt werden. In Autopilot-Clustern werden Knoten automatisch aktualisiert.

Wenn Sie einen Knotenpool erstellen oder upgraden, können Sie dessen Version angeben. Standardmäßig führen Knoten dieselbe Version von GKE wie die Steuerungsebene aus. Knoten können maximal zwei Nebenversionen älter als Steuerungsebenen sein.

Mit wenigen Ausnahmen bleiben Knotenversionen auch dann verfügbar, wenn die Clusterversion nicht mehr verfügbar ist.

FAQ zur Versionsunterstützung

Wann beginnt das Unterstützungsfenster für jede Nebenversion?

Unterstützung für eine Nebenversion von Kubernetes beginnt, wenn sie erstmals für die Erstellung eines neuen Clusters in der regulären Releaseversion bereitgestellt wird.

Wie lange wird eine Kubernetes-Nebenversion von GKE unterstützt?

GKE bietet 14 Monate Unterstützung für jede bereitgestellte Kubernetes-Nebenversion.

Neue Cluster können ca. sechs Monate nach Beginn des Unterstützungsfensters für eine Nebenversion erstellt werden. Sobald die Version unterstützt wird, können für eine Nebenversion neue Knotenpools für etwa 12 Monate erstellt werden. Versionen erhalten während des 14-monatigen Unterstützungszeitraums kritische Patches für Programmfehler und Sicherheitsprobleme.

Worin unterscheiden sich die Wartungs- und End-of-Life-Zeiträume einer GKE-Nebenversion?

Der Wartungszeitraum bedeutet, dass eine Version voraussichtlich bald den End-of-Life-Zeitraum erreicht. Während des End-of-Life-Zeitraums erhält die GKE-Nebenversion keine Sicherheitspatches, Fehlerkorrekturen oder neuen Features.

Wann wird eine Kubernetes-Version in GKE nicht mehr unterstützt?

Eine Nebenversion von Kubernetes wird in GKE nicht mehr unterstützt, wenn das End of Life erreicht wird (nach 14 Monaten Unterstützung).

Was passiert am Startdatum der Wartung?

Kunden werden von GKE ggf. mithilfe bestehender Touchpoints wie Versionshinweisen, E-Mails an Projektkontakte und GKE-Benachrichtigungen über anstehende Wartungs- und End-of-Life-Versionen informiert. Vorhandene Knotenpools, die eine Wartungsversion ausführen, funktionieren weiterhin und das Erstellen neuer Knotenpools für die Wartungsversion wird deaktiviert.

Was passiert am End-of-Life-Datum?

Kunden, die eine End-of-Life-Version ausführen, werden vor dem End of Life einer Version mit einer E-Mail an den Projektkontakt benachrichtigt. GKE wird aus Sicherheits- und Kompatibilitätsgründen nach und nach auch automatische Upgrades von Knoten (unabhängig von der Aktivierung von automatischen Upgrades) ausführen, die eine End-of-Life-Version ausführen, da keine neuen Sicherheitspatches oder Fehlerkorrekturen für End-of-Life-Versionen durchgeführt werden. Bevor Sie sich an Cloud Customer Care bei Problemen mit einem Cluster oder Knoten mit einer End-of-Life-Version wenden, müssen Sie zuerst Ihren Cluster und Ihre Knoten auf eine unterstützte Version aktualisieren.

Wann wird mein Cluster automatisch aktualisiert?

Clustersteuerungsebenen werden automatisch auf unterstützte Versionen aktualisiert, wenn die Version der Steuerungsebene nicht mehr für die Erstellung neuer Cluster verfügbar ist.

Für Knoten, auf denen nicht unterstützte Versionen ausgeführt werden, wird innerhalb eines Monats nach dem Ende ihrer Lebensdauer ein automatisches Upgrade auf eine unterstützte Version geplant.

Kann ich während eines Clusterupgrades mehrere GKE-Versionen überspringen?

Kubernetes OSS ermöglicht das Überspringen von Versionen auf Worker-Knoten. Ein Knotenpool kann beispielsweise von Version 1.19.x auf 1.21.x aktualisiert werden und die Version 1.20.x überspringen. Sie können die Versionen der Steuerungsebene auch überspringen, wenn Sie die Steuerungsebene mit dem gcloud-Befehlszeilentool oder der GKE API aktualisieren.

Der empfohlene Ansatz besteht darin, die Steuerungsebene einzeln für eine Nebenversion zu aktualisieren und die Worker-Knoten jedes Mal auf dieselbe Version zu aktualisieren. Wenn Sie beispielsweise die Steuerungsebene von Version 1.19.x auf 1.21.x aktualisieren möchten, führen Sie zuerst ein Upgrade von Version 1.19.x auf 1.20.x und dann ein Upgrade Ihrer Worker-Knoten so aus, dass sie der Version der Steuerungsebene entsprechen. Wiederholen Sie dann den Vorgang für das Upgrade von Version 1.20.x auf 1.21.x.

Mit einem schrittweisen Upgrade der Steuerungsebene und einem entsprechenden Upgrade der Worker-Knoten können Sie Versionsinkompatibilitäten vermeiden. Sie sollten das Überspringen von Versionen nach Möglichkeit vermeiden. Das Überspringen von Versionen impliziert in der Regel einen größeren Testbereich, der zwar machbar ist, aber weitere Überlegungen erfordert.

Alternativ können Sie einen neuen Cluster mit der gewünschten Version erstellen und Ihre Arbeitslasten noch einmal bereitstellen.

Kann ich meinen Cluster unbegrenzt mit einer bestimmten Kubernetes-Version verwenden?

Nein, jede GKE-Version wird 14 Monate lang unterstützt. Wenn Sie einen Cluster mit einer End-of-Life-GKE-Version ausführen, erhöht sich das erhebliche Sicherheits-, Zuverlässigkeits- und Kompatibilitätsrisiko erheblich, da keine Sicherheitspatches oder Fehlerkorrekturen für End-of-Life-Versionen bereitgestellt werden.

Wie oft sollte ich eine Kubernetes-Version aktualisieren, um weiterhin Unterstützung zu erhalten?

Es wird empfohlen, eine Release-Version zu wählen und automatische Knotenupgrades zu aktivieren, um den operativen Aufwand für ein Upgrade von GKE-Versionen zu reduzieren. Wenn Sie das Upgrade manuell durchführen, sollten Sie jedoch spätestens alle sechs Monate ein Upgrade durchführen, um neue Funktionen nutzen zu können und in einer unterstützten Version zu bleiben.

Welche Rollout-Richtlinie gilt für GKE-Steuerungsebenen?

Cluster-Steuerungsebenen werden regelmäßig aktualisiert, unabhängig davon, ob Ihr Cluster in einer Release-Version registriert ist oder ob automatische Knoten-Upgrades deaktiviert sind. Weitere Informationen zu automatischen Upgrades