Marcio Cunha

¿Container sin red? Cómo debuguear CNI en Kubernetes

¿Tus pods no se comunican? Entiende cómo aislar fallas de red en Kubernetes usando herramientas nativas y diagnósticos del CNI para restaurar la conectividad.

Marcio Cunha•2 min
También disponible en:PortuguêsEnglish
Resumen
  • Las fallas de red en Kubernetes suelen derivar de problemas de enrutamiento en el CNI o políticas de red restrictivas.
  • La inspección de interfaces veth permite validar si el tráfico está saliendo correctamente del container.
  • Herramientas como tcpdump son esenciales para capturar paquetes e identificar pérdidas silenciosas entre nodos.
  • Configuraciones incorrectas de IPAM causan frecuentemente conflictos que impiden que los pods suban o se conecten.
  • El análisis de logs de los plugins de CNI revela errores críticos de configuración que no aparecen en kubectl get pods.

¿Qué es el CNI y por qué falla?

El Container Network Interface (CNI) es el cerebro que gestiona la conectividad entre tus containers. En Kubernetes, define cómo cada pod recibe una dirección IP y cómo viajan esos paquetes por la red. Cuando un pod no alcanza a otro, el problema rara vez está en el código de tu aplicación; está en cómo el CNI traduce esas intenciones a la realidad del hardware. Si alguna vez has lidiado con pods bloqueados en Terminating, sabes que el diagnóstico debe ser quirúrgico.

Validando el direccionamiento IP

Antes de culpar a la red, verifica lo básico: ¿están los pods recibiendo la IP correcta? Kubernetes utiliza un componente llamado IPAM (IP Address Management) para asignar direcciones dentro del rango definido en tu cluster. Si el rango de IPs se agotó, el pod se quedará en un bucle de inicialización. Usa el comando kubectl get pod -o wide para verificar la IP asignada y si pertenece a la subred esperada. Si no hay IP, el error está en la comunicación del Kubelet con el plugin de red.

Inspeccionando las interfaces veth

Cada container posee una interfaz de red virtual (veth) que conecta su namespace aislado al bridge del nodo. Para investigar el camino del paquete, debes entrar al nodo del cluster y listar las interfaces. Al identificar la interfaz de tu pod, puedes usar herramientas de diagnóstico para ver el tráfico real. Para aprender a recolectar estos datos, es fundamental saber cómo usar tcpdump para inspeccionar tráfico de red, permitiendo visualizar si los paquetes llegan a la interfaz del nodo de origen.

Captura de paquetes y diagnóstico profundo

Si la interfaz está activa pero la comunicación falla, el problema puede estar en los niveles de enrutamiento o firewalls (iptables/nftables). Muchas veces, las reglas de red inyectadas por el CNI entran en conflicto. La mejor forma de validar es realizar un ping o un curl entre pods mientras capturas el tráfico en el nodo. Dominar cómo usar tcpdump para capturar paquetes de red en Linux es una habilidad obligatoria para cualquier ingeniero que lidia con infraestructura en producción.

Consideraciones finales

Debuguear el CNI exige paciencia y una visión clara de cómo los paquetes transitan por el kernel. La mayoría de las veces, el problema es una ruta mal configurada o una regla de firewall que bloquea el tráfico entre nodos. Al dominar la inspección de interfaces y el análisis de paquetes, reducirás drásticamente el tiempo de inactividad.

Recuerda siempre consultar la documentación específica de tu plugin CNI, como Calico, Flannel o Cilium. La forma en que manejan el tráfico varía, pero las herramientas de diagnóstico en el sistema operativo del nodo siguen siendo las mismas.