Ab Version 1.33 migriert Google Kubernetes Engine (GKE) Cluster, auf denen cgroupv1 ausgeführt wird, zu cgroupv2. Auf dieser Seite erfahren Sie, wie Sie Folgendes tun:
- Prüfen, welcher cgroup-Modus auf den Knoten Ihres Clusters ausgeführt wird und ob Ihre Arbeitslasten von der Umstellung zwischen cgroup-Modi betroffen sein könnten.
- Knoten von GKE Autopilot-Clustern oder Knotenpools von Standard-Clustern zu
cgroupv2migrieren. - Vorübergehend verhindern, dass GKE Knoten, auf denen
cgroupv1ausgeführt wird, automatisch zucgroupv2migriert. Folgen Sie dieser Anleitung, wenn auf Ihrem Cluster Arbeitslasten ausgeführt werden, die von der Umstellung zwischen cgroup-Modi betroffen sein könnten.
Sie können diese Seite überspringen, wenn Sie wissen, dass Ihre Arbeitslasten wie erwartet auf cgroupv2 ausgeführt werden oder nicht von der cgroup-Moduskonfiguration betroffen sind.
GKE migriert Cluster, auf denen cgroupv1 ausgeführt wird, ab Version 1.33 automatisch zu cgroupv2.
Linux-Kontrollgruppen
Das Kubelet und die Containerlaufzeit verwenden Linux-Kernel-Kontrollgruppen (cgroups) für die Ressourcenverwaltung, z. B. wie viel CPU oder Arbeitsspeicher auf jeden Container in einem Pod zugreifen kann. Es gibt zwei Modi des cgroup-Subsystems im Kernel: cgroupv1 und cgroupv2.
Die Kubernetes-Unterstützung für cgroupv2 wurde in Kubernetes-Version 1.18 als Alphaversion, in Version 1.22 als Betaversion und in Version 1.25 als allgemein verfügbar eingeführt. Weitere Informationen finden Sie in der Dokumentation zu Kubernetes
cgroups v2.
Informationen zum Konfigurieren eines cgroup-Modus für Standard-Cluster finden Sie unter Konfigurationsoptionen für den Linux-cgroup-Modus.
Umstellung von GKE auf cgroupv2
In der folgenden Zeitachse erfahren Sie, wie GKE vorhandene Cluster auf cgroupv2 umstellt:
- Bei Versionen vor 1.26 war
cgroupv1der Standard für Knoten. Bei Versionen ab 1.26 istcgroupv2der Standard für neue Knoten. Für vorhandene Knoten ändert sich nichts. Weitere Informationen dazu, welcher cgroup-Modus standardmäßig auf Ihren GKE-Clustern ausgeführt wird, finden Sie unter cgroup-Modus von Clusterknoten prüfen. - Mit der Nebenversion 1.31 wird
cgroupv1in GKE eingestellt. - Ab Version 1.33 migriert GKE Cluster, auf denen
cgroupv1ausgeführt wird, zucgroupv2. Sie können diese automatische Migration vorübergehend verhindern, indem Sie für einen Knotenpool explizit angeben, dasscgroupv1verwendet werden soll. - Mit der Nebenversion 1.35 wird die Unterstützung von
cgroupv1in GKE eingestellt.
Einen ungefähren Zeitplan für automatische Upgrades auf spätere Nebenversionen wie 1.31 und 1.33 finden Sie im geschätzten Zeitplan für Release Kanäle.
Hinweis
Führen Sie die folgenden Aufgaben aus, bevor Sie beginnen:
- Aktivieren Sie die Google Kubernetes Engine API. Google Kubernetes Engine API aktivieren
- Wenn Sie die Google Cloud CLI für diesen Task verwenden möchten,
installieren und dann
initialisieren Sie die
gcloud CLI. Wenn Sie die gcloud CLI bereits installiert haben, rufen Sie die neueste
Version mit dem
gcloud components updateBefehl ab. Ältere gcloud CLI-Versionen unterstützen möglicherweise nicht die Ausführung der Befehle in diesem Dokument.
cgroup-Modus von Clusterknoten prüfen
Der Standard-cgroup-Modus hängt vom Clustertyp oder Knotenpool und der Version ab. Bei Version 1.26 oder höher ist cgroupv2 der Standard. Bei Version 1.25 oder niedriger ist cgroupv1 der Standard:
- Bei Autopilot-Clustern und neuen Knotenpools von Standard-Clustern, die mit der automatischen Knotenbereitstellung erstellt wurden, basiert der cgroup-Modus auf der ursprünglichen Clusterversion. Sie können den cgroup-Modus nicht während der Erstellung von Autopilot-Clustern festlegen. Bei neuen automatisch bereitgestellten Knoten können Sie den Modus nicht anders als den Standard-cgroup-Modus festlegen, der auf der Nebenversion basiert.
- Bei Knotenpools von Standard-Clustern, die manuell ohne automatische Knotenbereitstellung erstellt wurden, basiert der cgroup-Modus auf der ursprünglichen Knotenpoolversion oder der angepassten Knotensystemkonfiguration.
Folgen Sie der Anleitung für Ihren Clustermodus, um den cgroup-Modus zu prüfen.
Autopilot
Führen Sie dazu diesen Befehl aus:
gcloud container clusters describe CLUSTER_NAME \
--format='value(nodePools[0].config.effectiveCgroupMode)'
Ersetzen Sie CLUSTER_NAME durch den Namen Ihres Clusters.
Wenn die Ausgabe EFFECTIVE_CGROUP_MODE_V2 ist, wird der Cluster auf cgroupv2 ausgeführt.
Wenn die Ausgabe EFFECTIVE_CGROUP_MODE_V1 ist, wird der Cluster auf cgroupv1 ausgeführt.
Auf GKE Autopilot-Clustern, die ursprünglich mit GKE-Version 1.25 oder niedriger erstellt wurden, wird cgroupv1 ausgeführt, bis Sie sie migrieren.
Standard
Bei GKE Standard-Clustern wird der cgroup-Modus auf Knotenpoolebene festgelegt. Folgen Sie der
Anleitung unter cgroup
Konfiguration prüfen, um den Modus für einzelne Knotenpools zu prüfen.
Wenn die Knoten Ihres Clusters bereits cgroupv2 verwenden, sind keine weiteren Maßnahmen erforderlich.
Knoten zu cgroupv2 migrieren
Wir empfehlen, vorhandene Knoten zu migrieren, bevor GKE sie in Version 1.33 oder höher automatisch migriert.
Führen Sie die folgenden Schritte aus, um Knoten zu migrieren, auf denen cgroupv1 ausgeführt wird:
- Prüfen Sie den cgroup-Modus der Knoten. Wenn die Knoten Ihres Clusters bereits
cgroupv2verwenden, sind keine weiteren Maßnahmen erforderlich. - Lesen Sie die Überlegungen zur Migration unter Zu cgroup v2 migrieren, um sicherzustellen, dass Ihre Arbeitslasten für die Verwendung der neuen Version der API vorbereitet sind.
Migrieren Sie die Knoten für Ihren Cluster.
Autopilot
Legen Sie explizit fest, dass die Knoten Ihres Clusters
cgroupv2verwenden:gcloud container clusters update CLUSTER_NAME \ --autoprovisioning-cgroup-mode=v2Ersetzen Sie
CLUSTER_NAMEdurch den Namen Ihres Clusters.Standard
Wenn Sie die automatische Knotenbereitstellung für den Cluster verwenden, führen Sie den folgenden Befehl aus, um sicherzustellen, dass vorhandene und zukünftige Knotenpools, die mit der automatischen Knotenbereitstellung erstellt wurden,
cgroupv2verwenden:gcloud container clusters update CLUSTER_NAME \ --autoprovisioning-cgroup-mode=v2Ersetzen Sie
CLUSTER_NAMEdurch den Namen Ihres Clusters.Aktualisieren Sie für vorhandene Knotenpools, die ohne automatische Knotenbereitstellung erstellt wurden, den Knotenpool , um der Knotensystemkonfiguration Folgendes hinzuzufügen:
linuxConfig: cgroupMode: 'CGROUP_MODE_V2'Weitere Informationen finden Sie unter Knotensystem konfiguration anpassen.
Wenn Sie manuell neue Knotenpools ohne automatische Knotenbereitstellung erstellen, verwendet GKE standardmäßig
cgroupv2.
Automatische Migration zu cgroupv2 vorübergehend verhindern
Wenn Sie die automatische Migration von Knoten, auf denen cgroupv1 ausgeführt wird, zu cgroupv2 mit den Nebenversionen 1.33 und höher vorübergehend verhindern möchten, müssen Sie explizit cgroupv1 festlegen. Sie können diese Anleitung auch verwenden, um vorübergehend zu cgroupv1 zurückzukehren, wenn die Migration von Knoten zu cgroupv2 ein Problem für die Arbeitslasten Ihres Clusters verursacht hat.
Autopilot
Führen Sie den folgenden Befehl für Cluster aus, die Sie ursprünglich mit Version 1.25 oder niedriger erstellt haben. Wenn Ihr Cluster mit Version 1.26 oder höher erstellt wurde, können Sie den cgroup-Modus nicht auf cgroupv1 festlegen.
Legen Sie explizit fest, dass die Knoten Ihres Clusters cgroupv1 verwenden:
gcloud container clusters update CLUSTER_NAME \
--autoprovisioning-cgroup-mode=v1
Ersetzen Sie CLUSTER_NAME durch den Namen Ihres Clusters.
Standard
Wenn Sie cgroupv1 weiterhin mit einem Knotenpool eines GKE Standard-Clusters verwenden möchten, auf dem Version 1.33 oder höher ausgeführt wird, führen Sie die folgenden Schritte aus:
Wenn Sie die automatische Knotenbereitstellung verwenden und Ihr Cluster mit Version 1.25 oder niedriger erstellt wurde, verwenden Sie den folgenden Befehl, um sicherzustellen, dass vorhandene und zukünftige Knotenpools, die mit der automatischen Knotenbereitstellung erstellt wurden,
cgroupv1verwenden. Wenn Ihr Cluster mit Version 1.26 oder höher erstellt wurde, können Sie den cgroup-Modus nicht aufcgroupv1festlegen:gcloud container clusters update CLUSTER_NAME \ --autoprovisioning-cgroup-mode=v1Ersetzen Sie
CLUSTER_NAMEdurch den Namen Ihres Clusters.-
linuxConfig: cgroupMode: 'CGROUP_MODE_V1'Sie müssen diese Knotenkonfiguration auch für neue Knoten pools festlegen, die Sie manuell ohne automatische Knotenbereitstellung erstellen.
Weitere Informationen finden Sie unter Knotensystem konfiguration anpassen.
Nächste Schritte
- Informationen zum Anpassen der Knotensystemkonfiguration.
- Weitere Informationen zur automatischen Erstellung von Knotenpools.
- Informationen zum Konfigurieren von Pod-Bursting in GKE.
- Informationen zum Rotieren Ihrer Clusteranmeldedaten.
- Informationen zu Upgrade-Strategien für Knotenpools.