¿Para qué se usa realmente HEALTHCHECK cuando se ejecuta Docker en modo enjambre?

Estoy teniendo dificultades para averiguar qué HEALTHCHECK se usa para cuando se ejecuta Docker en modo enjambre.

Un lugar sugiere esa ventana acoplable lo hará reiniciar una tarea que se considera poco saludable. Otro lugar explica que Docker detener el envío de tráfico a tareas que no son saludables. La documentación de Docker en sí mismo solo explica lo que el HEALTHCHECK la directiva es, y cómo configurarla. No intenta explicar qué sucede cuando una tarea no es saludable.

En otras palabras, estoy luchando por encontrar una explicación clara y confiable de lo que HEALTCHECK realmente lo hace.

Además, mirando el API REST de Docker, este dato en particular (es una tarea en buen estado o no) ni siquiera está expuesto para tareas (aunque está expuesto para contenedores). Esto dificulta el uso de esta métrica para monitorear un enjambre de Docker, por lo que tampoco me parece que este sea el propósito principal de la métrica.

¿Qué sucede realmente cuando una tarea se vuelve insalubre cuando se ejecuta Docker en modo enjambre?

Configura healthchecks de la misma manera que sugiere su primer enlace. Todas esas formas le dirán a Docker qué comando ejecutar, con qué frecuencia ejecutarlo, etc.

Si utiliza docker run para iniciar un contenedor, la interfaz de usuario se mostrará en mal estado cuando fallen las comprobaciones de estado, pero docker no hará nada al contenedor. Depende de usted o de alguna solución de monitoreo de nivel superior actuar en consecuencia.

Si utiliza docker service create (o docker stack deploy) para crear un servicio de enjambre y que la comprobación de estado falle, detendrá / eliminará la tarea (contenedor) y reprogramará una nueva tarea para reemplazar esa réplica del servicio. Durante la detención/eliminación (intenta detenerlo con gracia, pero mata después de 10 segundos como todos los contenedores docker), Swarm detendrá el tráfico entrante superpuesto a esa tarea como lo hace para todas las tareas de detención.