O que é CNI?

A CNI (Container Network Interface) é uma especificação criada pelo projeto Cloud Native Computing Foundation (CNCF) que padroniza como redes são configuradas para containers e, principalmente, para Pods no Kubernetes.


Ela estabelece como um pod recebe um IP, como esse IP se conecta ao restante da rede e como o tráfego é roteado dentro e fora do cluster. A CNI não é um software único, mas sim um padrão, seguido por diversos implementadores.


Para que serve uma CNI?

Ela define:

  • Como cada Pod obtém um endereço IP.

  • Como Pods se comunicam entre si, mesmo em nós diferentes.

  • Como o tráfego ingressa e sai do cluster.

  • Como aplicar regras de segurança e roteamento.

  • Como implementar políticas de rede (Network Policies).

Sem uma CNI, Kubernetes não teria comunicação entre Pods.



Exemplos populares de CNI

  • Calico – foco em segurança e políticas avançadas; usa roteamento real.

  • Flannel – simples; usa rede overlay.

  • Cilium – baseado em eBPF, muito usado em clusters modernos.

  • Weave Net – rede overlay com descoberta automática.

  • Amazon VPC CNI – integra pods diretamente à VPC da AWS.



Como a CNI funciona em Kubernetes

Quando um Pod é criado:

  1. O kubelet chama o plugin CNI.

  2. A CNI cria uma interface de rede virtual (veth) para o Pod.

  3. A CNI atribui um IP ao Pod, seguindo o range configurado.

  4. Configura rotas e regras de conexão.

  5. Aplica políticas de segurança de rede, se houver.



Por que isso é importante para DevOps?

  • Impacta diretamente troubleshooting de comunicação entre Pods.

  • Determina como Network Policies funcionam.

  • Define o uso de IPAM (gerenciamento de IPs) no cluster.

  • Pode afetar latência, segurança e escalabilidade.

  • É essencial para arquitetar microserviços em produção.



Considerações

Uma CNI é o mecanismo que permite que containers e Pods em Kubernetes tenham rede funcional. Ela atribui IPs, configura rotas, controla tráfego e aplica regras de segurança, sendo uma das partes mais críticas de qualquer cluster Kubernetes.







Apenas usuários conectados podem enviar perguntas...