Watch at EaseHistorias. Respuestas. Perspectiva.

Tecnología · GUÍA PRÁCTICA

¿Kubernetes muestra CrashLoopBackOff? Conserva la terminación anterior antes de reiniciar el Pod

CrashLoopBackOff es un estado de espera, no la causa raíz. Antes de borrar o reiniciar, guarda el contenedor exacto, Last State, código de salida, eventos y previous logs.

Diagrama original de contenedor, terminación anterior, clasificación y cambio de un responsable.
Ilustración original: conserva la instancia anterior antes de modificar. Watch at Ease

CrashLoopBackOff solo indica que un contenedor termina repetidamente y Kubernetes retrasa otro reinicio. Aún no dice si el proceso terminó bien, agotó memoria, falló una probe o chocó dentro de la aplicación. Conserva la instancia anterior y deja que la evidencia de terminación elija al siguiente responsable.

Congela la ventana de evidencia

Identifica namespace, Pod, contenedor exacto y controller propietario. Guarda el número de reinicios y la hora. Captura con describe el estado, Last State, razón, código de salida, horas de inicio y fin y eventos recientes. Después guarda los previous logs del contenedor. Hazlo antes de borrar, reiniciar un rollout o cambiarlo manualmente.

Si previous logs está vacío

Confirma que apuntas al contenedor correcto; sidecars e init containers tienen registros separados. Lee razón, código y eventos aunque no haya logs de aplicación. Revisa la ruta de termination-message y, si se permite, crea una copia de debug sin modificar el único ejemplar fallido. La retención del proveedor ayuda, pero no sustituye el paquete local.

Divide por la señal de terminación

Exit 0 suele indicar que el proceso terminó correctamente pero está en un workload o comando que espera permanencia. OOMKilled asigna la primera revisión a memoria y limit. Eventos repetidos de liveness o startup probe apuntan a destino, tiempo y preparación de dependencias. Una salida no cero con traza apunta al código o dependencia.

No mezcles familias de causas

Image pulls, scheduling y errores de admission son estados distintos. Un log actual no borra la terminación anterior. Un síntoma de probe tampoco prueba que la probe esté mal: el proceso puede estar enfermo. Escribe qué demuestra cada artefacto y separa hipótesis de exit, event y log observados.

Cambia un dueño y observa toda la ventana

Aplica un cambio acotado al responsable demostrado: comando o controller, memoria o limit, configuración de probe, o fallo de aplicación/dependencia. Registra la revisión y observa restart count, Last State y eventos durante toda la ventana de arranque y probes para no confundir una pausa breve con recuperación.

Cierra con prueba reproducible

Solo termina cuando el controller previsto ejecuta el contenedor correcto, los reinicios dejan de aumentar, las probes siguen sanas y funciona el flujo original. Adjunta el paquete previo, el único cambio, la ventana posterior y rollback. Si la evidencia apunta a otro equipo, entrega el paquete exacto en vez de reiniciar a ciegas.

Tabla original que separa exit 0, OOMKilled, eventos de probe y salidas no cero.
Ilustración original: la señal de terminación asigna el siguiente responsable. Watch at Ease