Esegui la migrazione dei nodi a cgroupv2 Linux


A partire dalla versione 1.32, Google Kubernetes Engine (GKE) esegue la migrazione dei cluster in esecuzione Da cgroupv1 a cgroupv2. Questa pagina spiega come:

  • Controlla la modalità cgroup in cui sono in esecuzione i nodi del cluster e se i carichi di lavoro potrebbero essere interessati dalla transizione tra le modalità cgroup.
  • Esegui la migrazione dei pool di nodi del cluster GKE Standard a cgroupv2.
  • Disattiva temporaneamente la migrazione automatica dei pool di nodi di GKE utilizzando cgroupv1 per cgroupv2. Segui queste istruzioni se il tuo cluster esegue carichi di lavoro che potrebbero essere interessati dalla transizione tra le modalità cgroup.

Puoi eseguire la migrazione manuale o disattivare temporaneamente i pool di nodi standard. Non puoi eseguire la migrazione o disattivare temporaneamente i cluster Autopilot.

Puoi saltare la lettura di questa pagina se sai che i tuoi carichi di lavoro vengono eseguiti come previsto su cgroupv2 o non sono interessati dalla configurazione della modalità cgroup. GKE esegue automaticamente la migrazione dei cluster che eseguono cgroupv1 cgroupv2 con versione 1.32 e successive.

Informazioni sui gruppi di controllo Linux

kubelet e runtime del container usano il kernel Linux gruppi di controllo (cgroups) per la gestione delle risorse, ad esempio come limitare la quantità di CPU o memoria a cui può accedere ciascun container in un pod. Esistono due modalità del sottosistema cgroup nel kernel: cgroupv1 e cgroupv2. Il supporto di Kubernetes per cgroupv2 è stato introdotto come alpha nella versione 1.18 di Kubernetes, come beta nella versione 1.22 e come versione GA nella versione 1.25. Per ulteriori dettagli, consulta Kubernetes cgroups v2 documentazione.

Per scoprire come configurare una modalità cgroup per i cluster Standard, consulta Configurazione della modalità cgroup Linux opzioni.

Come GKE sta effettuando la transizione a cgroupv2

Esamina la seguente sequenza temporale per capire in che modo GKE sta effettuando la transizione dei cluster esistenti all'utilizzo di cgroupv2:

  • Per le versioni precedenti alla 1.26, cgroupv1 era il valore predefinito per i nodi. Per versione 1.26 o successive, cgroupv2 è il valore predefinito per i nuovi nodi. Non viene apportata alcuna variazione ai nodi esistenti. Per saperne di più su quale modalità cgroup il tuo I cluster GKE vengono eseguiti per impostazione predefinita. Vedi Controllare la modalità cgroup di nodi cluster.
  • Con la versione secondaria 1.31, GKE ritira cgroupv1.
  • A partire dalla versione 1.32, GKE esegue la migrazione dei cluster che eseguono cgroupv1 a cgroupv2. Puoi evitare temporaneamente che l'aggiornamento migrazione specificando esplicitamente che un pool di nodi utilizza cgroupv1.
  • Con la versione secondaria 1.34, GKE rimuove il supporto di cgroupv1.

Per la tempistica approssimativa degli upgrade automatici a versioni secondarie successive, ad esempio 1.31 e 1.32, fai riferimento alla pianificazione della release prevista canali di YouTube.

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti attività:

  • Attiva l'API Google Kubernetes Engine.
  • Abilita l'API Google Kubernetes Engine
  • Se vuoi utilizzare Google Cloud CLI per questa attività, install e poi inizializzare con gcloud CLI. Se hai già installato gcloud CLI, ottieni la versione più recente eseguendo gcloud components update.

Controlla la modalità cgroup dei nodi del cluster

La modalità cgroup predefinita dipende dal tipo di cluster o pool di nodi e dalla versione. Con la versione 1.26 o successive, il valore predefinito è cgroupv2. Con versione 1.25 o versioni precedenti, il valore predefinito è cgroupv1:

  • Per i cluster Autopilot e i nuovi pool di nodi dei cluster standard creati con il provisioning automatico dei nodi, la modalità cgroup si basa sulla versione iniziale del cluster.
  • Per i pool di nodi dei cluster standard creati manualmente senza il provisioning automatico dei nodi, la modalità cgroup si basa sulla versione iniziale del pool di nodi.

Per controllare la modalità cgroup, segui le istruzioni in base alla modalità del cluster.

Autopilot

Esegui questo comando, sostituendo CLUSTER_NAME con il nome del tuo cluster:

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

GKE Autopilot creati inizialmente La versione GKE 1.25 o precedente esegue cgroupv1. Cluster inizialmente creato con la versione 1.26 o successive esegui cgroupv2.

Standard

Con i cluster GKE Standard, la modalità cgroup è impostata su a livello del pool di nodi. Per controllare la modalità dei singoli pool di nodi, segui le istruzioni per verificare la configurazione del cgroup. Se i nodi del tuo cluster utilizzano già cgroupv2, non saranno necessarie ulteriori azioni necessaria.

Esegui la migrazione dei nodi in cgroupv2

Ti consigliamo di eseguire la migrazione dei nodi esistenti prima che GKE lo faccia automaticamente nella versione 1.32 o successive. Puoi eseguire manualmente la migrazione dei pool di nodi standard. Non puoi eseguire la migrazione dei cluster Autopilot.

Completa questi passaggi per eseguire la migrazione dei nodi che eseguono cgroupv1:

  1. Controlla la modalità cgroup dei nodi. Se i nodi del tuo cluster utilizzano già cgroupv2, non è necessaria alcuna azione ulteriore.
  2. Esamina le considerazioni sulla migrazione, Migrazione a cgroup versione 2, per assicurarti che i carichi di lavoro siano pronti per utilizzare la nuova versione tramite Google Cloud CLI o tramite l'API Compute Engine.
  3. Esegui la migrazione dei nodi per il cluster Standard aggiungendo quanto segue alla configurazione del sistema di nodi per ogni pool di nodi:

      linuxConfig:
      cgroupMode: 'CGROUP_MODE_V2'
    

Disattiva temporaneamente la migrazione automatica a cgroupv2

Puoi disattivare temporaneamente i pool di nodi standard. Non puoi temporaneamente e disattivare i cluster Autopilot.

Per evitare temporaneamente la migrazione automatica dei pool di nodi dei cluster standard da cgroupv1 a cgroupv2 con le versioni minori 1.32 e successive, devi impostare esplicitamente cgroupv1.

Per i pool di nodi standard esistenti, aggiungi quanto segue al sistema di nodi configurazione per ogni pool di nodi:

linuxConfig:
  cgroupMode: 'CGROUP_MODE_V1'

Per saperne di più, consulta Personalizzazione del sistema di nodi configurazione.