El Liveness Probe en Kubernetes es una verificación utilizada para determinar si un contenedor dentro de un Pod está funcionando correctamente. Si el Liveness Probe detecta que el contenedor ha fallado o está en un estado no saludable, Kubernetes tomará medidas para reiniciarlo. Este probe es útil para situaciones en las que las aplicaciones pueden fallar o quedarse bloqueadas, pero el contenedor sigue ejecutándose. El reinicio del contenedor puede ayudar a restaurar la aplicación sin necesidad de intervención manual.
Al igual que el Readiness Probe, el Liveness Probe puede utilizar diferentes métodos para verificar la salud del contenedor:
HTTP GET Probe: Se realiza una solicitud HTTP a un endpoint especificado del contenedor. Si el endpoint devuelve un código de estado entre 200 y 399, el contenedor se considera saludable.
TCP Socket Probe: Intenta conectarse a un puerto TCP en el contenedor. Si la conexión es exitosa, el contenedor está en buen estado.
Exec Command Probe: Ejecuta un comando dentro del contenedor. Si el comando devuelve un código de salida 0, el contenedor se considera saludable.
initialDelaySeconds
: Tiempo que Kubernetes espera después de iniciar el contenedor antes de realizar la primera verificación.periodSeconds
: Frecuencia con la que Kubernetes ejecuta la verificación de liveness.timeoutSeconds
: Tiempo que Kubernetes espera la respuesta del probe antes de considerarlo fallido.successThreshold
: Número de veces consecutivas que la verificación debe pasar antes de que el contenedor se considere saludable.failureThreshold
: Número de veces consecutivas que la verificación debe fallar antes de que el contenedor se reinicie.initialDelaySeconds
y periodSeconds
adecuadamente para evitar chequeos prematuros antes de que la aplicación esté completamente lista./healthz
), úsalo para asegurar una respuesta precisa en las pruebas de liveness.En resumen, el Liveness Probe es una herramienta esencial para garantizar que los contenedores de Kubernetes no se queden en estados no funcionales, ayudando a mejorar la resiliencia de las aplicaciones al permitir reinicios automáticos en caso de fallas.