Kubernetes v1.35 exigirá cgroup v2: prepare sua infraestrutura
Aprofundamento CEVIU
Aprofundamento
O Kubernetes v1.35 marca uma virada importante na gestão de recursos em clusters. A partir desta versão, o kubelet, agente principal do Kubernetes em cada nó, vai recusar o início em máquinas que ainda operam com o cgroup v1. Para equipes de DevOps e engenheiros de plataforma, isso significa uma migração mandatória para o cgroup v2 para garantir a funcionalidade e a estabilidade das cargas de trabalho.
Os cgroups (control groups) do Linux são essenciais para o Kubernetes gerenciar e alocar recursos como CPU e memória entre contêineres, prevenindo interferências. A arquitetura do cgroup v2 oferece uma hierarquia unificada, interface mais consistente e base sólida para isolamento de recursos, além de ser um pilar para funcionalidades avançadas como o Memory QoS, o Pressure Stall Information (PSI) e o escalonamento vertical in-place de Pods. Para uma transição suave, é crucial verificar a compatibilidade do kernel (versão 5.8 ou superior), o suporte dos runtimes de contêineres (containerd v1.4+ ou CRI-O v1.20+) e garantir que o driver de cgroup do kubelet corresponda ao do runtime, preferencialmente utilizando o driver systemd.
O que mudou
Desde o Kubernetes v1.25, o suporte a cgroup v2 já estava estável, e a partir do Kubernetes v1.31, o cgroup v1 entrou em modo de manutenção. Agora, com o Kubernetes v1.35, o que era uma recomendação se torna uma exigência por padrão. Anteriormente, era possível manter nós com cgroup v1, ainda que com avisos. A partir desta versão, a falha ao iniciar o kubelet em um nó cgroup v1 é a configuração padrão. Essa mudança eleva a prioridade da migração, que antes era uma boa prática e agora é um requisito fundamental.
O projeto Kubernetes planeja remover completamente o suporte a cgroup v1 na versão v1.38, reforçando a urgência da migração. Além disso, ferramentas como o kubeadm, usadas para gerenciar clusters, agora incluem uma verificação mais rigorosa que impede a inicialização, junção ou atualização de clusters com kubelet v1.35 ou posterior em nós cgroup v1, algo que antes era apenas um alerta.
Por que isso importa
A adoção do cgroup v2 não é apenas uma questão de compatibilidade, mas de performance e eficiência. Ele desbloqueia recursos avançados de gestão de recursos, como o Memory QoS, que no Kubernetes v1.36 traz proteção de memória em camadas, e o Pressure Stall Information (PSI), que fornece métricas detalhadas sobre contenção de CPU, memória e I/O. Essas melhorias permitem que as equipes de engenharia de plataforma otimizem a utilização de recursos, melhorem a estabilidade do sistema e ganhem visibilidade profunda sobre gargalos.
A nova versão também facilita a implementação de contêineres sem privilégios (rootless containers) e suporta o escalonamento vertical in-place de Pods com maior precisão, uma funcionalidade estabilizada no Kubernetes v1.35. Para o ecossistema DevOps, isso significa clusters mais resilientes, seguros e eficientes, com melhor controle sobre o consumo de recursos e capacidade de resposta a variações de carga. É um passo crucial para infraestruturas nativas da nuvem que buscam extrair o máximo de seus nós.
Linha do tempo
Kubernetes v1.36 habilita escalonamento vertical in-place de Pods como Beta por padrão.
Kubernetes v1.35 exige cgroup v2 por padrão, recusando nós cgroup v1.
Perguntas frequentes
O que são cgroups e qual sua importância para o Kubernetes?
Cgroups (control groups) são um recurso do kernel Linux que permite gerenciar e isolar recursos do sistema, como CPU, memória e I/O. Para o Kubernetes, eles são cruciais para alocar esses recursos aos contêineres, garantindo que as aplicações funcionem de forma isolada e previsível, sem impactar umas às outras.
Por que a migração para cgroup v2 é necessária agora?
Com o lançamento do Kubernetes v1.35, o kubelet, por padrão, não será mais iniciado em nós que usam cgroup v1. Isso torna a migração para cgroup v2 obrigatória para manter a compatibilidade e a operacionalidade dos clusters. Além disso, o suporte a cgroup v1 será completamente removido na versão v1.38.
Quais são os principais benefícios do cgroup v2 em relação ao v1?
O cgroup v2 oferece uma hierarquia unificada e uma interface mais consistente, melhorando o isolamento de recursos. Ele também habilita funcionalidades avançadas no Kubernetes, como o Memory QoS (qualidade de serviço de memória), Pressure Stall Information (PSI) para monitoramento de contenção e escalonamento vertical in-place de Pods mais preciso.
Quais são os pré-requisitos técnicos para migrar para cgroup v2 no Kubernetes?
É preciso ter um kernel Linux 5.8 ou superior (5.9+ recomendado para Memory QoS), um runtime de contêiner compatível (como containerd v1.4+ ou CRI-O v1.20+), e garantir que o driver de cgroup do kubelet corresponda ao do runtime. A recomendação do Kubernetes é usar o driver systemd.
Fontes
- kubernetes.iofonte original
- Categoria
- CEVIU DevOps
- Publicado
- 07 de outubro de 2026
- Editoria
- CEVIU DevOps
