A partire dalla versione 1.33, Google Kubernetes Engine (GKE) esegue la migrazione dei cluster che eseguono 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 nodi del cluster GKE Autopilot o dei node pool del cluster standard a
cgroupv2
. - Disattiva temporaneamente la migrazione automatica dei nodi GKE
utilizzando
cgroupv1
percgroupv2
. Segui queste istruzioni se il tuo cluster esegue carichi di lavoro che potrebbero essere interessati dalla transizione tra le modalità cgroup.
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
a
cgroupv2
con la versione 1.33 e successive.
Informazioni sui gruppi di controllo Linux
Kubelet e il runtime del container utilizzano i gruppi di controllo (cgroup) del kernel Linux per la gestione delle risorse, ad esempio per limitare la quantità di CPU o memoria a cui può accedere ogni 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 la documentazione di Kubernetes su cgroup v2.
Per informazioni sulla configurazione di una modalità cgroup per i cluster standard, consulta Opzioni di configurazione della modalità cgroup di Linux.
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 l'impostazione predefinita per i nodi. Per le versioni 1.26 o successive,cgroupv2
è il valore predefinito per i nuovi nodi. Non viene apportata alcuna variazione ai nodi esistenti. Per scoprire di più sulla modalità cgroup in cui vengono eseguiti i tuoi cluster GKE per impostazione predefinita, consulta Verificare la modalità cgroup dei nodi del cluster. - Con la versione secondaria 1.31, GKE ritira
cgroupv1
. - A partire dalla versione 1.33, GKE esegue la migrazione dei cluster che eseguono
cgroupv1
acgroupv2
. Puoi impedire temporaneamente questa migrazione automatica specificando esplicitamente che un pool di nodi utilizzicgroupv1
. - Con la versione secondaria 1.35, GKE rimuove il supporto di
cgroupv1
.
Per le tempistiche approssimative degli upgrade automatici alle versioni secondarie successive, come 1.31 e 1.33, consulta la Pianificazione stimata per i canali di rilascio.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti operazioni:
- Attiva l'API Google Kubernetes Engine. Attiva l'API Google Kubernetes Engine
- Se vuoi utilizzare Google Cloud CLI per questa attività,
installa e poi
inizializza 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 la versione
1.25 o precedente, 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 node pool del 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:
gcloud container clusters describe CLUSTER_NAME \
--format='value(nodePools[0].config.effectiveCgroupMode)'
Sostituisci CLUSTER_NAME
con il nome del cluster.
Se l'output è EFFECTIVE_CGROUP_MODE_V2
, il cluster è in esecuzione su cgroupv2
.
Se l'output è EFFECTIVE_CGROUP_MODE_V1
, il cluster è in esecuzione su cgroupv1
.
I cluster GKE Autopilot creati inizialmente con la versione 1.25 o precedente di GKE eseguono cgroupv1
finché non esegui la migrazione.
Standard
Con i cluster GKE Standard, la modalità cgroup è impostata a livello di pool di nodi. Per controllare la modalità per i singoli pool di nodi, segui le istruzioni per verificare la configurazione del cgroup.
Se i nodi del tuo cluster utilizzano già cgroupv2
, non è necessaria alcuna ulteriore azione.
Esegui la migrazione dei nodi a cgroupv2
Ti consigliamo di eseguire la migrazione dei nodi esistenti prima che GKE lo faccia automaticamente nella versione 1.33 o successive.
Per eseguire la migrazione dei nodi che eseguono cgroupv1
:
- Controlla la modalità cgroup dei nodi. Se i nodi del tuo cluster utilizzano già
cgroupv2
, non è necessaria alcuna azione ulteriore. - Esamina le considerazioni sulla migrazione, Migrazione a cgroup v2, per assicurarti che i tuoi carichi di lavoro siano pronti per utilizzare la nuova versione dell'API.
Esegui la migrazione dei nodi del cluster.
Autopilot
Imposta in modo esplicito i nodi del cluster in modo che utilizzino
cgroupv2
:gcloud container clusters update CLUSTER_NAME \ --autoprovisioning-cgroup-mode=v2
Sostituisci
CLUSTER_NAME
con il nome del cluster.Standard
Se utilizzi il provisioning automatico dei nodi per il cluster, esegui il seguente comando per assicurarti che i pool di nodi esistenti e futuri creati con il provisioning automatico dei nodi utilizzino
cgroupv2
:gcloud container clusters update CLUSTER_NAME \ --autoprovisioning-cgroup-mode=v2
Sostituisci
CLUSTER_NAME
con il nome del cluster.Per i node pool esistenti creati senza il provisioning automatico dei nodi, aggiorna il node pool per aggiungere quanto segue alla configurazione di sistema del nodo:
linuxConfig: cgroupMode: 'CGROUP_MODE_V2'
Per scoprire di più, consulta la sezione Personalizzazione della configurazione del sistema di nodi.
Quando crei manualmente nuovi pool di nodi senza il provisioning automatico dei nodi, GKE utilizza
cgroupv2
per impostazione predefinita.
Disattivare temporaneamente la migrazione automatica a cgroupv2
Per evitare temporaneamente la migrazione automatica dei nodi che eseguono cgroupv1
a
cgroupv2
con le versioni secondarie 1.33 e successive, devi impostare esplicitamente
cgroupv1
. Puoi anche utilizzare queste istruzioni per ripristinare temporaneamente cgroupv1
se la migrazione dei nodi a cgroupv1
ha causato un problema per i carichi di lavoro del cluster.cgroupv2
Autopilot
Esegui il seguente comando per i cluster che hai creato inizialmente utilizzando la versione 1.25 o precedente. Se il cluster è stato creato con la versione 1.26 o successiva, non puoi impostare la modalità cgroup su cgroupv1
.
Imposta in modo esplicito i nodi del cluster in modo che utilizzino cgroupv1
:
gcloud container clusters update CLUSTER_NAME \
--autoprovisioning-cgroup-mode=v1
Sostituisci CLUSTER_NAME
con il nome del cluster.
Standard
Per continuare a eseguire cgroupv1
con un pool di nodi del cluster GKE standard che esegue la versione 1.33 o successive, svolgi i seguenti passaggi:
Se utilizzi il provisioning automatico dei nodi e il tuo cluster è stato creato con la versione 1.25 o precedente, utilizza il seguente comando per assicurarti che i pool di nodi esistenti e futuri creati con il provisioning automatico dei nodi utilizzino
cgroupv1
. Se il cluster è stato creato con la versione 1.26 o successive, non puoi impostare la modalità cgroup sucgroupv1
:gcloud container clusters update CLUSTER_NAME \ --autoprovisioning-cgroup-mode=v1
Sostituisci
CLUSTER_NAME
con il nome del cluster.Per i pool di nodi standard esistenti, aggiorna il pool di nodi per aggiungere quanto segue alla configurazione del sistema di nodi:
linuxConfig: cgroupMode: 'CGROUP_MODE_V1'
Devi anche impostare questa configurazione dei nodi per i nuovi node pool che crei manualmente senza il provisioning automatico dei nodi.
Per scoprire di più, consulta la sezione Personalizzazione della configurazione del sistema di nodi.