A partire dalla versione 1.33, Google Kubernetes Engine (GKE) esegue la migrazione dei cluster che eseguono cgroupv1 a cgroupv2. Questa pagina spiega come:
- Controllare la modalità cgroup in cui vengono eseguiti i nodi del cluster e se i carichi di lavoro potrebbero essere interessati dalla transizione tra le modalità cgroup.
- Eseguire la migrazione dei nodi dei cluster GKE Autopilot o dei node pool dei cluster Standard a
cgroupv2. - Disattivare temporaneamente la migrazione automatica dei nodi di GKE da
cgroupv1acgroupv2. Segui queste istruzioni se il 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 se 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 ogni container in un pod può accedere. Nel kernel sono disponibili due modalità del sottosistema cgroup: cgroupv1 e cgroupv2.
Il supporto di Kubernetes per cgroupv2 è stato introdotto come versione alfa in Kubernetes 1.18, come versione beta in 1.22 e come versione GA in 1.25. Per ulteriori dettagli, consulta la documentazione di Kubernetes cgroups v2.
Per scoprire come configurare una modalità cgroup per i cluster Standard, consulta Opzioni di configurazione della modalità cgroup Linux.
Come GKE sta eseguendo la transizione a cgroupv2
Esamina la seguente sequenza temporale per capire come GKE sta eseguendo la transizione dei cluster esistenti all'utilizzo di cgroupv2:
- Per le versioni precedenti alla 1.26,
cgroupv1era l'impostazione predefinita per i nodi. Per le versioni 1.26 o successive,cgroupv2è l'impostazione predefinita per i nuovi nodi. Non sono state apportate modifiche ai nodi esistenti. Per scoprire di più sulla modalità cgroup in cui vengono eseguiti per impostazione predefinita i cluster GKE, consulta Controlla 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
cgroupv1acgroupv2. Puoi impedire temporaneamente questa migrazione automatica specificando esplicitamente che un pool di nodi utilizzicgroupv1. - Con la versione secondaria 1.35, GKE rimuove il supporto per
cgroupv1.
Per i tempi approssimativi degli upgrade automatici alle versioni secondarie successive, come 1.31 e 1.33, consulta la sezione Programmazione stimata per i canali di rilascio channels.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti attività:
- Abilita l'API Google Kubernetes Engine. Abilita l'API Google Kubernetes Engine
- Se vuoi utilizzare Google Cloud CLI per questa attività,
installala e poi
inizializza gcloud CLI. Se hai già installato gcloud CLI, scarica l'ultima
versione eseguendo il
gcloud components updatecomando. Le versioni precedenti di gcloud CLI potrebbero non supportare l'esecuzione dei comandi in questo documento.
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, l'impostazione predefinita è cgroupv2. Con la versione 1.25 o precedenti, l'impostazione predefinita è cgroupv1:
- Per i cluster Autopilot e i nuovi node pool dei cluster Standard creati con il provisioning automatico dei nodi, la modalità cgroup si basa sulla versione iniziale del cluster. Non puoi impostare la modalità cgroup durante la creazione del cluster Autopilot. Per i nuovi nodi con provisioning automatico dei nodi, non puoi impostare la modalità in modo diverso dalla modalità cgroup predefinita in base alla versione secondaria.
- Per i node pool dei cluster Standard creati manualmente senza il provisioning automatico dei nodi, la modalità cgroup si basa sulla versione iniziale pool di nodi o sulla configurazione del sistema dei nodi personalizzata.
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 GKE versione 1.25 o precedenti eseguono cgroupv1 finché non esegui la migrazione.
Standard
Con i cluster GKE Standard, la modalità cgroup viene impostata a livello di pool di nodi. Per controllare la modalità per i singoli node pool, segui le
istruzioni per verificare la configurazione
cgroup.
Se i nodi del cluster utilizzano già cgroupv2, non è necessario intraprendere ulteriori azioni.
Esegui la migrazione dei nodi a cgroupv2
Ti consigliamo di eseguire la migrazione dei nodi esistenti prima che GKE esegua automaticamente la migrazione nella versione 1.33 o successive.
Segui questi passaggi per eseguire la migrazione dei nodi che eseguono cgroupv1:
- Controlla la modalità cgroup dei nodi. Se i nodi del cluster utilizzano già
cgroupv2, non è necessario intraprendere ulteriori azioni. - Esamina le considerazioni relative alla migrazione, Migrazione a cgroup v2, per assicurarti che i carichi di lavoro siano pronti per utilizzare la nuova versione dell' API.
Esegui la migrazione dei nodi per il cluster.
Autopilot
Imposta esplicitamente i nodi del cluster in modo che utilizzino
cgroupv2:gcloud container clusters update CLUSTER_NAME \ --autoprovisioning-cgroup-mode=v2Sostituisci
CLUSTER_NAMEcon il nome del cluster.Standard
Se utilizzi il provisioning automatico dei nodi per il cluster, esegui il seguente comando per assicurarti che i node pool esistenti e futuri creati con il provisioning automatico dei nodi utilizzino
cgroupv2:gcloud container clusters update CLUSTER_NAME \ --autoprovisioning-cgroup-mode=v2Sostituisci
CLUSTER_NAMEcon 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 del sistema dei nodi:
linuxConfig: cgroupMode: 'CGROUP_MODE_V2'Per saperne di più, consulta Personalizzare la configurazione del sistema dei nodi.
Quando crei manualmente nuovi node pool senza il provisioning automatico dei nodi, GKE utilizza
cgroupv2per impostazione predefinita.
Disattiva 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 cgroupv2 ha causato un problema per i carichi di lavoro del cluster.
Autopilot
Esegui il seguente comando per i cluster che hai creato originariamente utilizzando la versione 1.25 o precedenti. Se il cluster è stato creato con la versione 1.26 o successive, non puoi impostare la modalità cgroup su cgroupv1.
Imposta esplicitamente 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, segui questi passaggi:
Se utilizzi il provisioning automatico dei nodi, e il cluster è stato creato con la versione 1.25 o precedenti, utilizza il seguente comando per assicurarti che i node pool 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=v1Sostituisci
CLUSTER_NAMEcon il nome del cluster.Per i node pool Standard esistenti, aggiorna il node pool per aggiungere quanto segue alla configurazione del sistema dei 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 saperne di più, consulta Personalizzare la configurazione del sistema dei nodi.
Passaggi successivi
- Scopri come personalizzare la configurazione del sistema dei nodi.
- Scopri di più sulla creazione automatica dei node pool.
- Scopri come configurare l'espansione dei pod in GKE.
- Scopri come ruotare le credenziali del cluster.
- Scopri di più sulle strategie di upgrade dei node pool.