A partir da versão 1.33, o Google Kubernetes Engine (GKE) migra os clusters que executam o
cgroupv1
para o cgroupv2
. Esta página explica como fazer o seguinte:
- Verifique em que modo de cgroup os nós do cluster estão a ser executados e se as suas cargas de trabalho podem ser afetadas pela transição entre modos de cgroup.
- Migre os nós do cluster do GKE Autopilot ou os conjuntos de nós do cluster padrão para o
cgroupv2
. - Recuse temporariamente a migração automática de nós do GKE
de
cgroupv1
paracgroupv2
. Siga estas instruções se o seu cluster executar cargas de trabalho que possam ser afetadas pela transição entre modos de cgroup.
Pode ignorar a leitura desta página se souber que as suas cargas de trabalho são executadas conforme esperado no cgroupv2
ou não são afetadas pela configuração do modo cgroup.
O GKE migra automaticamente os clusters que executam o cgroupv1
para o cgroupv2
com a versão 1.33 e posterior.
Acerca dos grupos de controlo do Linux
O kubelet e o tempo de execução do contentor usam grupos de controlo (cgroups) do kernel do Linux para a gestão de recursos, como limitar a quantidade de CPU ou memória a que cada contentor num pod pode aceder. Existem 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 1.22 e DG na 1.25. Para mais detalhes, consulte a documentação
cgroups v2
do Kubernetes.
Para saber como configurar um modo de cgroup para clusters padrão, consulte as opções de configuração do modo de cgroup do Linux.
Como o GKE está a fazer a transição para o cgroupv2
Reveja a seguinte cronologia para compreender como o GKE está a fazer a transição dos clusters existentes para usar o cgroupv2
:
- Para versões anteriores à 1.26,
cgroupv1
era a predefinição para os nós. Para as versões 1.26 ou posteriores,cgroupv2
é a predefinição para novos nós. Não há alterações aos nós existentes. Para saber mais sobre o modo de cgroup que os seus clusters do GKE executam por predefinição, consulte o artigo Verifique o modo de cgroup dos nós do cluster. - Com a versão secundária 1.31, o GKE descontinua o
cgroupv1
. - A partir da versão 1.33, o GKE migra os clusters que executam o sistema operativo
cgroupv1
para ocgroupv2
. Pode impedir temporariamente esta migração automática especificando explicitamente que um conjunto de nós usacgroupv1
. - Com a versão secundária 1.35, o GKE remove o suporte para
cgroupv1
.
Para ver o momento aproximado das atualizações automáticas para versões secundárias posteriores, como 1.31 e 1.33, consulte o cronograma estimado para os canais de lançamento.
Antes de começar
Antes de começar, certifique-se de que realizou as seguintes tarefas:
- Ative a API Google Kubernetes Engine. Ative a API Google Kubernetes Engine
- Se quiser usar a CLI gcloud para esta tarefa,
instale-a e, em seguida,
inicialize-a. Se instalou anteriormente a CLI gcloud, execute o comando
gcloud components update
para obter a versão mais recente. As versões anteriores da CLI gcloud podem não suportar a execução dos comandos neste documento.
Verifique o modo cgroup dos nós do cluster
O modo cgroup predefinido depende do tipo de cluster ou node pool e da versão. Com a versão 1.26 ou posterior, a predefinição é cgroupv2
. Com a versão 1.25 ou anterior, o valor predefinido é cgroupv1
:
- Para clusters do Autopilot e novos pools de nós de clusters Standard criados com o aprovisionamento automático de nós, o modo cgroup baseia-se na versão inicial do cluster. Não pode definir o modo cgroup durante a criação do cluster do Autopilot. Para novos nós aprovisionados automaticamente, não pode definir o modo de forma diferente do modo cgroup predefinido com base na versão secundária.
- Para node pools de clusters padrão criados manualmente sem o aprovisionamento automático de nós, o modo cgroup baseia-se na versão inicial do node pool ou na configuração do sistema de nós personalizada.
Para verificar o modo cgroup, siga as instruções com base no modo do cluster.
Piloto automático
Execute o seguinte comando:
gcloud container clusters describe CLUSTER_NAME \
--format='value(nodePools[0].config.effectiveCgroupMode)'
Substitua CLUSTER_NAME
pelo nome do seu cluster.
Se o resultado for EFFECTIVE_CGROUP_MODE_V2
, o cluster está a ser executado no cgroupv2
.
Se o resultado for EFFECTIVE_CGROUP_MODE_V1
, o cluster está a ser executado no cgroupv1
.
Os clusters do GKE Autopilot criados inicialmente com a versão 1.25 ou anterior do GKE executam o cgroupv1
até os migrar.
Standard
Com os clusters padrão do GKE, o modo cgroup é definido ao nível do conjunto de nós. Para verificar o modo de pools de nós individuais, siga as
instruções para validar a configuração
do cgroup.
Se os nós do cluster já estiverem a usar o cgroupv2
, não é necessária nenhuma ação adicional.
Migre nós para cgroupv2
Recomendamos que migre os nós existentes antes de o GKE os migrar automaticamente na versão 1.33 ou posterior.
Siga estes passos para migrar nós que executam o cgroupv1
:
- Verifique o modo cgroup dos nós. Se os nós do cluster já estiverem a usar o
cgroupv2
, não é necessária nenhuma ação adicional. - Reveja as considerações sobre a migração, Migrar para cgroup v2, para garantir que as suas cargas de trabalho estão preparadas para usar a nova versão da API.
Migre os nós do cluster.
Piloto automático
Defina explicitamente os nós do cluster para usar
cgroupv2
:gcloud container clusters update CLUSTER_NAME \ --autoprovisioning-cgroup-mode=v2
Substitua
CLUSTER_NAME
pelo nome do seu cluster.Standard
Se usar o aprovisionamento automático de nós para o cluster, execute o seguinte comando para garantir que os conjuntos de nós existentes e futuros criados com o aprovisionamento automático de nós usam o
cgroupv2
:gcloud container clusters update CLUSTER_NAME \ --autoprovisioning-cgroup-mode=v2
Substitua
CLUSTER_NAME
pelo nome do seu cluster.Para os node pools existentes criados sem a administração de contas automática de nós, atualize o node pool para adicionar o seguinte à configuração do sistema de nós:
linuxConfig: cgroupMode: 'CGROUP_MODE_V2'
Para saber mais, consulte o artigo Personalizar a configuração do sistema de nós.
Quando cria manualmente novos pools de nós sem o aprovisionamento automático de nós, o GKE usa o
cgroupv2
por predefinição.
Desative temporariamente a migração automática para o cgroupv2
Para evitar temporariamente a migração automática de nós que executam o cgroupv1
para o cgroupv2
com as versões secundárias 1.33 e posteriores, tem de definir explicitamente o cgroupv1
. Também pode usar estas instruções para reverter temporariamente para
cgroupv1
se a migração de nós para cgroupv2
tiver causado um problema para as cargas de trabalho do seu cluster.
Piloto automático
Execute o seguinte comando para clusters que criou originalmente com a versão 1.25 ou anterior. Se o cluster tiver sido criado com a versão 1.26 ou posterior, não pode 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 seu cluster.
Standard
Para continuar a executar o cgroupv1
com um conjunto de nós do cluster padrão do GKE com a versão 1.33 ou posterior, siga os passos abaixo:
Se usar o aprovisionamento automático de nós, e o cluster tiver sido criado com a versão 1.25 ou anterior, use o seguinte comando para garantir que os conjuntos de nós existentes e futuros criados com o aprovisionamento automático de nós usam o
cgroupv1
. Se o cluster tiver sido criado com a versão 1.26 ou posterior, não pode definir o modo cgroup comocgroupv1
:gcloud container clusters update CLUSTER_NAME \ --autoprovisioning-cgroup-mode=v1
Substitua
CLUSTER_NAME
pelo nome do seu cluster.Para os node pools padrão existentes, atualize o node pool para adicionar o seguinte à configuração do sistema de nós:
linuxConfig: cgroupMode: 'CGROUP_MODE_V1'
Também tem de definir esta configuração do nó para novos conjuntos de nós que criar manualmente sem o aprovisionamento automático de nós.
Para saber mais, consulte o artigo Personalizar a configuração do sistema de nós.