¿Por qué necesito 3 tipos diferentes de sondas en kubernetes?
Hay algunas preguntas ( k8s - livenessProbe vs readinessProbe , Configuración de una prueba de preparación, actividad o inicio ) y artículos sobre este tema. Pero esto no está tan claro:
Estos 3 tipos de sondas tienen 3 casos de uso diferentes. Es por eso que necesitamos 3 tipos de sondas.
Sonda de vida
Si la sonda Liveness Probe falla, el pod se reiniciará (lea más sobre el umbral de falla).
Caso de uso: reinicie el pod, si el pod está inactivo.
Prácticas recomendadas: incluya solo comprobaciones básicas en la sonda de actividad. Nunca incluya controles en las conexiones a otros servicios (p. ej., base de datos). La comprobación no debería tardar demasiado en completarse. Siempre especifique una sonda de actividad ligera para asegurarse de que el pod se reiniciará, si el pod está realmente inactivo.
Sonda de inicio
Verificación de sondas de inicio , cuando el pod está disponible después del inicio.
Caso de uso: envíe tráfico al pod, tan pronto como el pod esté disponible después del inicio. Los sondeos de inicio pueden tardar más en completarse, ya que solo se invocan durante la inicialización. Podrían llamar a una tarea de calentamiento (pero también considerar los contenedores init para la inicialización).
Prácticas recomendadas: especifique una sonda de inicio si el pod tarda mucho en iniciarse. Startup y Liveness Probe pueden usar el mismo punto final, pero Startup Probe tendrá un umbral de falla menos estricto que evita una falla en el inicio ( por ejemplo, Kubernetes en acción ).
Sonda de preparación
A diferencia de las sondas de inicio, las sondas de preparación verifican si el pod está disponible durante el ciclo de vida completo. A diferencia de las sondas Liveness, solo se detiene el tráfico al pod si falla la sonda de preparación , pero no se reiniciará.
Caso de uso: deje de enviar tráfico al pod, si el pod no puede servir temporalmente porque falla una conexión a otro servicio (por ejemplo, la base de datos) y el pod se recuperará más tarde.
Mejores prácticas: incluya todas las comprobaciones necesarias, incluidas las conexiones a otros servicios. Sin embargo, la comprobación no debería tardar demasiado en completarse. Especifique siempre una sonda de preparación para asegurarse de que el pod solo reciba tráfico, si el pod puede manejar correctamente las solicitudes entrantes.
Documentación
Sonda de vida :
livenessProbe: httpGet: path: /healthz port: 8080 initialDelaySeconds: 3 periodSeconds: 3sonda de preparación :
readinessProbe: httpGet: path: /healthz port: 8080 initialDelaySeconds: 3 periodSeconds: 3sonda de inicio :
startupProbe: httpGet: path: /healthz port: 8080 initialDelaySeconds: 3 periodSeconds: 3Consulte la documentación de K8S para obtener más información.