Ab Version 1.33 migriert Google Kubernetes Engine (GKE) Cluster, auf denen cgroupv1
ausgeführt wird, zu cgroupv2
. Auf dieser Seite wird Folgendes beschrieben:
- Prüfen Sie, in welchem cgroup-Modus die Knoten Ihres Clusters ausgeführt werden und ob sich die Umstellung zwischen cgroup-Modi auf Ihre Arbeitslasten auswirken könnte.
- GKE Autopilot-Clusternodes oder Standard-Clusternode-Pools zu
cgroupv2
migrieren. - Sie können die automatische Migration von Knoten von
cgroupv1
zucgroupv2
durch GKE vorübergehend deaktivieren. Folgen Sie dieser Anleitung, wenn in Ihrem Cluster Arbeitslasten ausgeführt werden, die durch den Übergang zwischen cgroup-Modi beeinträchtigt werden könnten.
Sie können diese Seite überspringen, wenn Sie wissen, dass Ihre Arbeitslasten auf cgroupv2
wie erwartet ausgeführt werden oder nicht von der Konfiguration des Cgroup-Modus betroffen sind.
GKE migriert Cluster, auf denen cgroupv1
ausgeführt wird, mit Version 1.33 und höher 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 Standardcluster finden Sie unter Konfigurationsoptionen für den Linux-cgroup-Modus.
Umstellung von GKE auf cgroupv2
In der folgenden Zeitachse sehen Sie, wie vorhandene Cluster in GKE auf cgroupv2
umgestellt werden:
- Bei Versionen vor 1.26 war
cgroupv1
die Standardeinstellung für Knoten. Bei Versionen 1.26 oder höher istcgroupv2
die Standardeinstellung für neue Knoten. Bei vorhandenen Knoten ändert sich nichts. Weitere Informationen dazu, in welchem cgroup-Modus Ihre GKE-Cluster standardmäßig ausgeführt werden, finden Sie unter cgroup-Modus von Clusternknoten prüfen. - Mit der Nebenversion 1.31 wird
cgroupv1
in GKE eingestellt. - Ab Version 1.33 migriert GKE Cluster, auf denen
cgroupv1
ausgeführt wird, zucgroupv2
. Sie können diese automatische Migration vorübergehend verhindern, indem Sie für einen Knotenpool explizit angeben, dasscgroupv1
verwendet werden soll. - Mit der Nebenversion 1.35 wird die Unterstützung von
cgroupv1
in 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.
Hinweise
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 diese Aufgabe verwenden möchten, müssen Sie die gcloud CLI installieren und dann initialisieren. Wenn Sie die gcloud CLI bereits installiert haben, rufen Sie die neueste Version mit
gcloud components update
ab.
cgroup-Modus von Clusterknoten prüfen
Der Standard-cgroup-Modus hängt vom Typ des Clusters oder Knotenpools und von der Version ab. In Version 1.26 oder höher ist die Standardeinstellung cgroupv2
. In Version 1.25 oder früher ist die Standardeinstellung cgroupv1
:
- Bei Autopilot-Clustern und neuen Standardcluster-Knotenpools, die mit automatischer 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 standardmäßigen cgroup-Modus basierend auf der Nebenversion festlegen.
- Bei Knotenpools für Standardcluster, die manuell ohne automatische Knotenbereitstellung erstellt wurden, basiert der cgroup-Modus auf der ursprünglichen Knotenpoolversion oder der benutzerdefinierten 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
lautet, wird der Cluster auf cgroupv2
ausgeführt.
Wenn die Ausgabe EFFECTIVE_CGROUP_MODE_V1
lautet, wird der Cluster auf cgroupv1
ausgeführt.
GKE Autopilot-Cluster, die ursprünglich mit GKE-Version 1.25 oder früher erstellt wurden, führen cgroupv1
aus, bis Sie sie migrieren.
Standard
In GKE-Standardclustern wird der Cgroup-Modus auf Knotenpoolebene festgelegt. Wenn Sie den Modus für einzelne Knotenpools prüfen möchten, folgen Sie der Anleitung unter cgroup-Konfiguration 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:
- cgroup-Modus der Knoten prüfen Wenn die Knoten Ihres Clusters bereits
cgroupv2
verwenden, 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
cgroupv2
verwenden sollen:gcloud container clusters update CLUSTER_NAME \ --autoprovisioning-cgroup-mode=v2
Ersetzen Sie
CLUSTER_NAME
durch 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 für vorhandene und zukünftige Knotenpools, die mit der automatischen Knotenbereitstellung erstellt wurden,
cgroupv2
verwendet wird:gcloud container clusters update CLUSTER_NAME \ --autoprovisioning-cgroup-mode=v2
Ersetzen Sie
CLUSTER_NAME
durch den Namen Ihres Clusters.Bei vorhandenen Knotenpools, die ohne automatische Knotenbereitstellung erstellt wurden, müssen Sie den Knotenpool aktualisieren, um der Knotensystemkonfiguration Folgendes hinzuzufügen:
linuxConfig: cgroupMode: 'CGROUP_MODE_V2'
Weitere Informationen finden Sie unter Knotensystemkonfiguration anpassen.
Wenn Sie manuell neue Knotenpools ohne automatische Knotenbereitstellung erstellen, verwendet GKE standardmäßig
cgroupv2
.
Automatische Migration zu cgroupv2
vorübergehend deaktivieren
Wenn Sie die automatische Migration von Knoten, auf denen cgroupv1
ausgeführt wird, zu cgroupv2
mit Nebenversionen 1.33 und höher vorübergehend vermeiden möchten, müssen Sie cgroupv1
explizit 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 früher 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 sollen:
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 GKE Standard-Cluster-Knotenpool mit Version 1.33 oder höher ausführen möchten, gehen Sie so vor:
Wenn Sie die automatische Knotenbereitstellung verwenden und Ihr Cluster mit Version 1.25 oder früher erstellt wurde, verwenden Sie den folgenden Befehl, um sicherzustellen, dass für vorhandene und zukünftige Knotenpools, die mit der automatischen Knotenbereitstellung erstellt wurden,
cgroupv1
verwendet wird. Wenn Ihr Cluster mit Version 1.26 oder höher erstellt wurde, können Sie den cgroup-Modus nicht aufcgroupv1
festlegen:gcloud container clusters update CLUSTER_NAME \ --autoprovisioning-cgroup-mode=v1
Ersetzen Sie
CLUSTER_NAME
durch den Namen Ihres Clusters.Bei vorhandenen Standard-Knotenpools aktualisieren Sie den Knotenpool, um der Knotensystemkonfiguration Folgendes hinzuzufügen:
linuxConfig: cgroupMode: 'CGROUP_MODE_V1'
Sie müssen diese Knotenkonfiguration auch für neue Knotenpools festlegen, die Sie manuell ohne automatische Knotenbereitstellung erstellen.
Weitere Informationen finden Sie unter Knotensystemkonfiguration anpassen.