Marcio Cunha

Container sem rede? Como debugar o CNI no Kubernetes

Seus pods não se comunicam? Entenda como isolar falhas de rede no Kubernetes usando ferramentas nativas e diagnósticos do CNI para restaurar a conectividade.

Marcio Cunha•2 min
Também disponível em:EnglishEspañol
Resumo
  • Falhas de rede no Kubernetes geralmente derivam de problemas de roteamento no CNI ou políticas de rede restritivas.
  • A inspeção de interfaces veth permite validar se o tráfego está saindo corretamente do container.
  • Ferramentas como tcpdump são essenciais para capturar pacotes e identificar perdas silenciosas entre nós.
  • Configurações incorretas de IPAM frequentemente causam conflitos que impedem pods de subir ou se conectar.
  • A análise de logs dos plugins do CNI revela erros críticos de configuração que não aparecem no kubectl get pods.

O que é o CNI e por que ele falha?

O Container Network Interface (CNI) é o cérebro que gerencia a conectividade entre seus containers. No Kubernetes, ele define como cada pod recebe um endereço IP e como esses pacotes viajam pela rede. Quando um pod não alcança outro, o problema raramente está no código da sua aplicação; está na forma como o CNI traduz essas intenções para a realidade do hardware. Se você já passou pela frustração de ter pods travados, sabe que o diagnóstico precisa ser cirúrgico.

Validando o endereçamento IP

Antes de culpar a rede, verifique o básico: os pods estão recebendo o IP correto? O Kubernetes utiliza um componente chamado IPAM (IP Address Management) para atribuir endereços dentro da faixa definida no seu cluster. Se a faixa de IPs estiver esgotada, o pod ficará em um loop de inicialização. Use o comando kubectl get pod -o wide para verificar o IP atribuído e se ele pertence à sub-rede esperada. Se não houver IP, o erro está na comunicação do Kubelet com o plugin de rede.

Inspecionando as interfaces veth

Cada container possui uma interface de rede virtual (veth) que conecta seu namespace isolado à bridge do nó. Para investigar o caminho do pacote, você precisa entrar no nó do cluster e listar as interfaces. Ao identificar a interface do seu pod, você pode usar ferramentas de diagnóstico para ver o tráfego real. Para aprender a coletar esses dados, é fundamental saber como usar o tcpdump para inspecionar tráfego de rede, permitindo visualizar se os pacotes chegam à interface do nó de origem.

Captura de pacotes e diagnóstico profundo

Se a interface está up mas a comunicação falha, o problema pode estar nos níveis de roteamento ou firewalls (iptables/nftables). Muitas vezes, as regras de rede injetadas pelo CNI entram em conflito. A melhor forma de validar é realizar um ping ou um curl entre pods enquanto captura o tráfego no nó. Dominar como usar o tcpdump para capturar pacotes de rede no Linux é uma habilidade obrigatória para qualquer engenheiro que lida com infraestrutura em produção.

Considerações finais

Debugar o CNI exige paciência e uma visão clara de como os pacotes transitam pelo kernel. Na maioria das vezes, o problema é uma rota mal configurada ou uma regra de firewall que bloqueia o tráfego cross-node. Ao dominar a inspeção de interfaces e a análise de pacotes, você reduz drasticamente o tempo de indisponibilidade.

Lembre-se sempre de conferir a documentação específica do seu plugin CNI, como Calico, Flannel ou Cilium. A forma como eles manipulam o tráfego varia, mas as ferramentas de diagnóstico no sistema operacional do nó permanecem as mesmas.