CEVIU Logo
Voltar

Reinícios de Pods no Kubernetes: Quando Ocorrem e Quando Não

Aprofundamento CEVIU

Aprofundamento

O Kubernetes 1.35 não só esclarece a distinção entre reinício e recriação de pods, com o UID como único indicador confiável, como entrega três novos mecanismos que transformam como operadores gerenciam ciclos de vida de contêineres: atualização de recursos no local (GA), reinício completo de todos os contêineres dentro do mesmo pod (Alpha) e políticas granulares de reinício por contêiner (Beta). Essas funcionalidades reduzem drasticamente a necessidade de recriações, que antes eram o único caminho para ajustar memória, corrigir falhas em múltiplos contêineres ou aplicar políticas de recuperação mais finas. O novo campo .metadata.generation também traz rastreabilidade real para operações de atualização, algo crítico em pipelines de CI/CD com verificação pós-deploy.

Antes da 1.35, qualquer alteração em requests/limits exigia recriação do pod, com perda de IP, rede e volumes efêmeros. Hoje, é possível escalar verticalmente sem interrupção. Já o recurso 'Restart All Containers' resolve um ponto cego antigo: reiniciar apenas um contêiner em um pod multi-contêiner pode deixar outros em estado inconsistente, mas recriar tudo era caro. Agora há uma terceira via, reinício atômico, com UID preservado e sem rescheduling.

Por que isso importa

Para equipes de plataforma, essa mudança reduz falsos positivos em alertas de 'pod reiniciando': agora é possível distinguir entre um contêiner em CrashLoopBackOff (UID constante, contagem incrementada) e um deployment sendo reconfigurado (UID novo, contagem zerada). Isso impacta diretamente dashboards de SLO, métricas de disponibilidade e diagnósticos de observabilidade. Para DevOps, significa menos dependência de workarounds como init containers para recuperação ou scripts externos para reinício coordenado, tudo agora está nativo na API do Pod v1.35.

Linha do tempo

  1. Lançamento do Kubernetes 1.35 ('Timbernetes'), com guia de produção sobre reinícios vs recriações de pods e novos recursos GA/Beta/Alpha relacionados

  2. Publicação do guia prático CEVIU explicando a diferença crítica entre reinício e recriação com base no UID do pod

Perguntas frequentes

Como saber se um pod foi reiniciado ou recriado?

Compare o valor de .metadata.uid entre duas instâncias do mesmo nome de pod. Se for idêntico, houve reinício de contêiner dentro do mesmo pod. Se diferente, foi uma recriação completa, o pod original foi encerrado e outro agendado no lugar.

O que muda na prática com as novas políticas de reinício granulares (restartPolicyRules)?

Agora é possível configurar, por exemplo, que um init container falhe e não reinicie, enquanto o contêiner principal reinicia até 3 vezes com backoff. Antes, a política do pod se aplicava a todos os contêineres de forma rígida, forçando recriações desnecessárias para falhas transitórias em componentes secundários.

Atualizar CPU/memória de um pod em produção ainda exige downtime?

Não mais. A atualização de resources no local (GA desde a 1.35) permite modificar requests e limits de um pod em execução sem reiniciar contêineres, mantendo IP, rede e volumes anexados. Funciona para Deployments, StatefulSets e DaemonSets, desde que o CRI suporte a operação (containerd 1.7+ ou CRI-O 1.29+).

Por que o UID do pod é tão importante para segurança e observabilidade?

O UID é usado internamente pelo kubelet para associar métricas, logs e eventos ao ciclo de vida exato do pod. Em ambientes com namespaces de usuário ativados (padrão desde 1.33), ele também alimenta o remapeamento de UIDs/GIDs no host, garantindo que um contêiner comprometido não tenha acesso ao UID do processo anterior ou a arquivos do sistema fora de seu namespace isolado.

Fontes

Avalie este artigo:
Compartilhar:
Categoria
CEVIU DevOps
Publicado
18 de março de 2026
Editoria
CEVIU DevOps

Quer receber mais sobre CEVIU DevOps?

Conteúdo curado diariamente, direto no seu e-mail.

Conteúdo curado diariamenteDiversas categoriasCancele quando quiser