A partir da versão 1.33, o Google Kubernetes Engine (GKE) migra clusters que executam cgroupv1 para cgroupv2. Esta página ensina como fazer o seguinte:
- Verificar qual modo cgroup os nós do cluster estão executando e se as cargas de trabalho podem ser afetadas pela transição entre os modos cgroup.
- Migrar nós de cluster do GKE Autopilot ou pools de nós de cluster Standard para
cgroupv2. - Desativar temporariamente a migração automática de nós do GKE usando
cgroupv1paracgroupv2. Siga estas instruções se o cluster executar cargas de trabalho que possam ser afetadas pela transição entre os modos cgroup.
Você pode pular a leitura desta página se souber que as cargas de trabalho são executadas conforme o esperado em cgroupv2 ou não são afetadas pela configuração do modo cgroup.
O GKE migra automaticamente clusters que executam cgroupv1 para cgroupv2 com a versão 1.33 e mais recentes.
Sobre grupos de controle do Linux
O kubelet e o ambiente de execução do contêiner usam grupos de controle do kernel do Linux
(cgroups) para gerenciar recursos, como
limitar a quantidade de CPU ou memória que cada contêiner em um pod pode acessar. Há dois modos do subsistema cgroup no kernel: cgroupv1 e cgroupv2.
O suporte do Kubernetes para cgroupv2 foi introduzido como Alfa na versão 1.18 do Kubernetes, Beta na versão 1.22 e disponível para todos os usuários na versão 1.25. Para saber mais, consulte a documentação do Kubernetes
cgroups v2.
Para saber como configurar um modo cgroup para clusters Standard, consulte Opções de configuração do modo cgroup do Linux.
Como o GKE está fazendo a transição para cgroupv2
Confira a linha do tempo a seguir para entender como o GKE está fazendo a transição dos clusters atuais para usar cgroupv2:
- Para versões anteriores à 1.26,
cgroupv1era o padrão para nós. Para versões 1.26 ou mais recentes,cgroupv2é o padrão para novos nós. Não há mudanças nos nós atuais. Para saber mais sobre qual modo cgroup os clusters do GKE executam por padrão, consulte Verificar o modo cgroup dos nós do cluster. - Com a versão secundária 1.31, o GKE descontinua
cgroupv1. - A partir da versão 1.33, o GKE migra clusters que executam
cgroupv1paracgroupv2. É possível impedir temporariamente essa migração automática especificando explicitamente que um pool de nós usecgroupv1. - Com a versão secundária 1.35, o GKE remove o suporte para
cgroupv1.
Para saber o tempo aproximado de upgrades automáticos para versões secundárias mais recentes, como 1.31 e 1.33, consulte a programação estimada para canais de lançamento.
Antes de começar
Antes de começar, verifique se você realizou as tarefas a seguir:
- Ativar a API Google Kubernetes Engine. Ativar a API Google Kubernetes Engine
- Se você quiser usar a Google Cloud CLI para essa tarefa,
instale e, em seguida,
inicialize a
CLI gcloud. Se você instalou a CLI gcloud anteriormente, instale a versão mais recente executando o comando
gcloud components update. Talvez as versões anteriores da CLI gcloud não sejam compatíveis com a execução dos comandos neste documento.
Verificar o modo cgroup dos nós do cluster
O modo cgroup padrão depende do tipo de cluster ou pool de nós e da versão. Com a versão 1.26 ou mais recente, o padrão é cgroupv2. Com a versão 1.25 ou anterior, o padrão é cgroupv1:
- Para clusters do Autopilot e novos pools de nós de cluster Standard criados com provisionamento automático de nós, o modo cgroup é baseado na versão inicial do cluster. Não é possível definir o modo cgroup durante a criação do cluster do Autopilot. Para novos nós com provisionamento automático, não é possível definir o modo de maneira diferente do modo cgroup padrão com base na versão secundária.
- Para pools de nós de cluster Standard criados manualmente sem provisionamento automático de nós, o modo cgroup é baseado na versão inicial do pool de nós ou na configuração personalizada do sistema de nós.
Para verificar o modo cgroup, siga as instruções com base no modo do cluster.
Autopilot
Execute este comando:
gcloud container clusters describe CLUSTER_NAME \
--format='value(nodePools[0].config.effectiveCgroupMode)'
Substitua CLUSTER_NAME pelo nome do cluster.
Se a saída for EFFECTIVE_CGROUP_MODE_V2, o cluster estará em execução em cgroupv2.
Se a saída for EFFECTIVE_CGROUP_MODE_V1, o cluster estará em execução em cgroupv1.
Os clusters do GKE Autopilot que foram criados originalmente com a versão 1.25 ou anterior do GKE executam cgroupv1 até que você os migre.
Padrão
Com clusters do GKE Standard, o modo cgroup é definido no nível do pool de nós. Para verificar o modo de pools de nós individuais, siga as
instruções para verificar a configuração do cgroup.
Se os nós do cluster já estiverem usando cgroupv2, nenhuma outra ação será necessária.
Migrar nós para cgroupv2
Recomendamos que você migre os nós atuais antes que o GKE os migre automaticamente na versão 1.33 ou mais recente.
Siga estas etapas para migrar nós que executam cgroupv1:
- Verifique o modo cgroup dos nós. Se os nós do cluster já estiverem usando
cgroupv2, nenhuma outra ação será necessária. - Analise as considerações sobre a migração, Migrar para o cgroup v2, para garantir que as cargas de trabalho estejam preparadas para usar a nova versão da API.
Migre os nós do cluster.
Autopilot
Defina explicitamente os nós do cluster para usar
cgroupv2:gcloud container clusters update CLUSTER_NAME \ --autoprovisioning-cgroup-mode=v2Substitua
CLUSTER_NAMEpelo nome do cluster.Padrão
Se você usar provisionamento automático de nós para o cluster, execute o comando a seguir para garantir que os pools de nós atuais e futuros criados com o provisionamento automático de nós usem
cgroupv2:gcloud container clusters update CLUSTER_NAME \ --autoprovisioning-cgroup-mode=v2Substitua
CLUSTER_NAMEpelo nome do cluster.Para pools de nós atuais criados sem provisionamento automático de nós, atualize o nó pool para adicionar o seguinte à configuração do sistema de nós:
linuxConfig: cgroupMode: 'CGROUP_MODE_V2'Para saber mais, consulte Como personalizar a configuração do sistema de nós.
Quando você cria manualmente novos pools de nós sem provisionamento automático de nós, o GKE usa
cgroupv2por padrão.
Desativar temporariamente a migração automática para cgroupv2
Para evitar temporariamente a migração automática de nós que executam cgroupv1 para cgroupv2 com versões secundárias 1.33 e mais recentes, você precisa definir explicitamente cgroupv1. Você também pode usar essas instruções para reverter temporariamente para cgroupv1 se a migração de nós para cgroupv2 causar um problema nas cargas de trabalho do cluster.
Autopilot
Execute o comando a seguir para clusters que você criou originalmente usando a versão 1.25 ou anterior. Se o cluster foi criado executando a versão 1.26 ou mais recente, não é possível definir o modo cgroup como cgroupv1.
Defina explicitamente os nós do cluster para usar cgroupv1:
gcloud container clusters update CLUSTER_NAME \
--autoprovisioning-cgroup-mode=v1
Substitua CLUSTER_NAME pelo nome do cluster.
Padrão
Para continuar executando cgroupv1 com um pool de nós de cluster Standard do GKE que executa a versão 1.33 ou mais recente, siga estas etapas:
Se você usar provisionamento automático de nós, e o cluster foi criado executando a versão 1.25 ou anterior, use o comando a seguir para garantir que os pools de nós atuais e futuros criados com provisionamento automático de nós usem
cgroupv1. Se o cluster foi criado executando a versão 1.26 ou mais recente, não é possível definir o modo cgroup comocgroupv1:gcloud container clusters update CLUSTER_NAME \ --autoprovisioning-cgroup-mode=v1Substitua
CLUSTER_NAMEpelo nome do cluster.Para pools de nós Standard atuais, atualize o pool de nós para adicionar o seguinte à configuração do sistema de nós:
linuxConfig: cgroupMode: 'CGROUP_MODE_V1'Você também precisa definir essa configuração de nó para novos pools de nós criados manualmente sem provisionamento automático de nós.
Para saber mais, consulte Como personalizar a configuração do sistema de nós.
A seguir
- Saiba como personalizar a configuração do sistema de nós.
- Saiba mais sobre a criação automática de pools de nós.
- Saiba como configurar o bursting de pods no GKE.
- Saiba como alternar as credenciais do cluster.
- Saiba mais sobre as estratégias de upgrade do pool de nós.