Knoten zu Linux cgroupv2 migrieren


Ab Version 1.32 migriert Google Kubernetes Engine (GKE) Cluster, auf denen cgroupv1 ausgeführt wird, zu cgroupv2. Diese Seite enthält Anleitungen für Folgendes:

  • Prüfen Sie, welcher cgroup-Modus die Knoten Ihres Clusters ausführen und ob Ihre Arbeitslasten von der Umstellung zwischen cgroup-Modi betroffen sein könnten.
  • Migrieren Sie GKE-Standard-Cluster-Knotenpools zu cgroupv2.
  • Sie können die automatische Migration von Knotenpools durch GKE vorübergehend deaktivieren, indem Sie cgroupv1 in cgroupv2 ändern. Folgen Sie dieser Anleitung, wenn Ihr Cluster Arbeitslasten ausführt, die möglicherweise von der Umstellung zwischen cgroup-Modi betroffen sind.

Sie können Standardknotenpools manuell migrieren oder vorübergehend deaktivieren. Sie können Autopilot-Cluster nicht migrieren oder vorübergehend deaktivieren.

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, ab Version 1.32 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 1.22 als Betaversion und in 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 Linux-Cgroup-Modus-Konfigurationsoptionen.

Umstellung von GKE auf cgroupv2

In der folgenden Zeitachse sehen Sie, wie GKE vorhandene Cluster auf die Verwendung von cgroupv2 umstellt:

  • In Versionen vor 1.26 war cgroupv1 der Standard für Knoten. Bei Version 1.26 oder höher ist cgroupv2 die Standardeinstellung für neue Knoten. Vorhandene Knoten sind davon nicht betroffen. Weitere Informationen dazu, welcher Cgroup-Modus in Ihren GKE-Clustern standardmäßig verwendet wird, finden Sie unter Cgroup-Modus von Clusterknoten prüfen.
  • Mit Nebenversion 1.31 stellt GKE cgroupv1 ein.
  • Ab Version 1.32 migriert GKE Cluster, in denen cgroupv1 ausgeführt wird, zu cgroupv2. Sie können diese automatische Migration vorübergehend verhindern, indem Sie für einen Knotenpool explizit angeben, dass cgroupv1 verwendet werden soll.
  • Mit der Nebenversion 1.34 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.32 finden Sie im geschätzten Zeitplan für Release-Kanäle.

Hinweise

Führen Sie die folgenden Schritte durch, 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 Cluster- oder Knotenpooltyp und der Version ab. Ab Version 1.26 ist die Standardeinstellung cgroupv2. In Version 1.25 oder niedriger ist cgroupv1 die Standardeinstellung:

  • Bei Autopilot-Clustern und neuen Standard-Cluster-Knotenpools, die mit automatischer Knotenbereitstellung erstellt wurden, basiert der cgroup-Modus auf der ursprünglichen Clusterversion.
  • Bei Knotenpools in Standardclustern, die manuell ohne automatische Knotenbereitstellung erstellt wurden, basiert der Cgroup-Modus auf der ursprünglichen Knotenpoolversion.

Folgen Sie der Anleitung für Ihren Clustermodus, um den cgroup-Modus zu prüfen.

Autopilot

Führen Sie den folgenden Befehl aus und ersetzen Sie dabei CLUSTER_NAME durch den Namen Ihres Clusters:

gcloud container clusters describe CLUSTER_NAME \
    --format='value(initialClusterVersion)'

GKE Autopilot-Cluster, die ursprünglich mit GKE-Version 1.25 oder früher erstellt wurden, führen cgroupv1 aus. In Version 1.26 oder höher erstellte Cluster verwenden cgroupv2.

Standard

Bei GKE-Standardclustern 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.32 oder höher automatisch migriert. Sie können Standardknotenpools manuell migrieren. Sie können keine Autopilot-Cluster migrieren.

Führen Sie die folgenden Schritte aus, um Knoten mit cgroupv1 zu migrieren:

  1. Prüfen Sie den cgroup-Modus der Knoten. Wenn die Knoten Ihres Clusters bereits cgroupv2 verwenden, sind keine weiteren Maßnahmen erforderlich.
  2. Lesen Sie den Artikel Zur cgroupv2 API migrieren, um sicherzustellen, dass Ihre Arbeitslasten für die Verwendung der neuen API-Version vorbereitet sind.
  3. Migrieren Sie die Knoten für Ihren Standardcluster, indem Sie der Knotensystemkonfiguration für jeden Knotenpool Folgendes hinzufügen:

      linuxConfig:
      cgroupMode: 'CGROUP_MODE_V2'
    

Automatische Migration zu cgroupv2 vorübergehend deaktivieren

Sie können Standardknotenpools vorübergehend deaktivieren. Sie können Autopilot-Cluster nicht vorübergehend deaktivieren.

Um vorübergehend die automatische Migration von Standard-Cluster-Knotenpools mit cgroupv1 zu cgroupv2 mit Nebenversionen 1.32 und höher zu vermeiden, müssen Sie cgroupv1 explizit festlegen.

Fügen Sie für vorhandene Standardknotenpools der Knotensystemkonfiguration für jeden Knotenpool Folgendes hinzu:

linuxConfig:
  cgroupMode: 'CGROUP_MODE_V1'

Weitere Informationen finden Sie unter Knotensystemkonfiguration anpassen.