El comando kubectl debug sirve para crear un contenedor de depuración unido a un pod que ya está en ejecución sin interrumpirlo. Un Contenedor de Depuración es un contenedor temporal que incluye herramientas de diagnóstico como curl, wget, netstat o ping y se adjunta al mismo espacio de red del pod afectado para investigar y resolver problemas.

Imagina un pod nginx corriendo en el namespace default con un contenedor nginx-container que, por seguridad y ligereza, no tiene utilidades instaladas. Si la web de nginx no responde en el puerto esperado podemos optar por detener y redeplegar el pod con herramientas instaladas o bien ejecutar un contenedor paralelo de depuración que comparta el espacio de red y nos permita probar desde dentro del mismo pod. La segunda opción evita downtime y es la que demuestra kubectl debug.

Ejemplo práctico: ejecutando kubectl debug -it nginx-pod --image=busybox se crea un contenedor debug-container usando la imagen busybox dentro del mismo pod nginx-pod. Al compartir el mismo network namespace, cualquier petición a localhost o a la IP del pod desde el contenedor de depuración se dirige al nginx que corre en otro contenedor del mismo pod. Por ejemplo wget -qO- http://127.0.0.1:80 desde el debug-container devolverá la página de nginx siempre que el servicio esté escuchando en ese puerto.

Comandos útiles: kubectl run nginx-pod --image=nginx para crear el pod de ejemplo, kubectl get pods para listar pods y kubectl debug -it nginx-pod --image=busybox para lanzar el contenedor de depuración. Una vez dentro del shell del contenedor de depuración se pueden ejecutar herramientas de red y diagnóstico sin modificar el contenedor de producción.

Conceptos clave: Network namespace - Todos los contenedores de un pod comparten el mismo namespace de red, por eso comparten IP y localhost apunta a los puertos expuestos por otros contenedores del mismo pod. PID namespace - Por defecto cada contenedor tiene su propio namespace de procesos, por lo que los procesos de nginx no son visibles desde busybox y viceversa. Si se necesita ver procesos entre contenedores se puede activar shareProcessNamespace: true en la spec del pod.

En Q2BSTUDIO ayudamos a diseñar infraestructuras y soluciones que incorporan buenas prácticas de operación, monitorización y depuración en entornos Kubernetes. Si necesitas migrar o desplegar aplicaciones cloud, contamos con experiencia en servicios cloud AWS y Azure y en la creación de soluciones a medida. También desarrollamos aplicaciones a medida y software a medida optimizadas para observabilidad, seguridad y escalabilidad.

Ofrecemos además servicios de inteligencia artificial, ciberseguridad y business intelligence para complementar tus soluciones cloud. Palabras clave que dominamos: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi. Si necesitas automatizar diagnósticos, integrar agentes IA o asegurar tus despliegues en Kubernetes, en Q2BSTUDIO podemos ayudarte a diseñar e implementar la solución adecuada.