Saltar al contenido
Underc0de /foro

Un pod en Kubernetes queda en CrashLoopBackOff justo después de un deploy. ¿Cómo lo diagnosticás paso a paso?

$ interview --rol devops

Mide la capacidad de troubleshooting en Kubernetes: leer eventos, logs del contenedor anterior, códigos de salida, probes y dependencias de configuración.

DevOps / Cloudnivel semi#devops-cloud#linux

Respuesta

CrashLoopBackOff no es la causa, es un síntoma. El contenedor arranca, termina, y kubelet lo reinicia con un backoff exponencial de hasta 5 minutos. Lo que hay que encontrar es por qué termina.

Pasos:
  • Código: bash
    kubectl describe pod <pod>
    : revisar Last State, Reason, Exit Code y los eventos al final.
  • Código: bash
    kubectl logs <pod> --previous
    : muestra los logs del contenedor que murió, no del que está arrancando.
  • Interpretar el exit code:
    • 137 / OOMKilled: supera el límite de memoria. Hay que ajustar los limits o revisar una fuga.
    • 1 u otro código de la app: error de la aplicación, como una variable faltante, una conexión a la base rechazada o una migración fallida.
    • 126 / 127: comando no ejecutable o no encontrado, por ejemplo un ENTRYPOINT mal escrito o una imagen de otra arquitectura.
    • 0: el proceso termina "bien" pero no queda en primer plano.
  • Revisar las probes: una liveness con path, puerto o initialDelay incorrectos mata un contenedor sano. En los eventos aparece como "Liveness probe failed".
  • Revisar las dependencias: ConfigMaps y Secrets referenciados, volúmenes, permisos (runAsNonRoot, filesystem de solo lectura).
  • Código: bash
    kubectl get events --sort-by=.lastTimestamp
    para tener contexto del namespace.

Si el contenedor muere demasiado rápido para inspeccionarlo, se puede usar
Código: bash
kubectl debug
con una copia del pod y otro comando. Como fue tras un deploy, comparo con la versión anterior (
Código: bash
kubectl rollout history
). Si hay impacto, hago
Código: bash
kubectl rollout undo
y después investigo con calma.

Errores comunes

Mirar solo kubectl logs sin --previous y no ver nada útil. Ignorar el exit code y las probes, o borrar el pod esperando que se arregle solo.

Redactado con el asistente Underc0de IA. Actualizado el 10/11/2026. ¿Ves un error? Contanos en el foro.

Grupo de WhatsApp