Herramientas de usuario

Herramientas del sitio


informatica:sistemas_operativos:cursos:healthcheck

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
informatica:sistemas_operativos:cursos:healthcheck [2023/10/18 20:14] tempwininformatica:sistemas_operativos:cursos:healthcheck [2023/11/16 13:27] (actual) – [Healthcheck en imágenes] tempwin
Línea 12: Línea 12:
   * Al lanzar un contenedor (docker run)   * Al lanzar un contenedor (docker run)
   * En Compose   * En Compose
 +  * Usando otros contenedores
  
 ===== Healthcheck en imágenes ===== ===== Healthcheck en imágenes =====
Línea 26: Línea 27:
 FROM nginx FROM nginx
  
-HEALTHCHECK --interval=30s --tiemout=30s --start-period=5s --retries=3 CMD ["/opt/healthcheck.sh"]+HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 CMD ["/opt/healthcheck.sh"]
 # HEALTHCHECK --interval=10s --timeout=10s --start-period=5s --retries=3 CMD curl -f http://localhost:80 || exit 1 # HEALTHCHECK --interval=10s --timeout=10s --start-period=5s --retries=3 CMD curl -f http://localhost:80 || exit 1
 </code> </code>
Línea 35: Línea 36:
   * ''retries'': número de veces consecutivas que puede fallar la comprobación antes de considerar que el contenedor está en estado //unhealthy//   * ''retries'': número de veces consecutivas que puede fallar la comprobación antes de considerar que el contenedor está en estado //unhealthy//
   * ''CMD'' es lo que ejecutaremos como test / comprobación del estado de salud  del contenedor.   * ''CMD'' es lo que ejecutaremos como test / comprobación del estado de salud  del contenedor.
 +
 +Otra opción:
 +
 +<code>
 +HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
 +    CMD [ $(curl -I -s http://127.0.0.1:8000 | head -n 1 | cut -d' ' -f2 | head -n 1) -eq 200 ] || exit 1
 +</code>
  
 Al ver el estado del contenedor: Al ver el estado del contenedor:
Línea 56: Línea 64:
       start_period: 10s       start_period: 10s
       retries: 3       retries: 3
-      test: ["CMD", "curl -f http://localhost:80 || exit 1"]+      test: curl -f http://localhost || exit 1 
 +</code> 
 + 
 +===== A través de otro contenedor específico ===== 
 + 
 +Hay contenedores que permiten monitorizar el estado de contenedores y reiniciar aquellos //unhealthy//. Por ejemplo: [[https://hub.docker.com/r/willfarrell/autoheal|Docker Autoheal]
 + 
 +<code> 
 +docker run -d \ 
 +    --name autoheal \ 
 +    --restart=always \ 
 +    -e AUTOHEAL_CONTAINER_LABEL=all \ 
 +    -v /var/run/docker.sock:/var/run/docker.sock \ 
 +    willfarrell/autoheal 
 +</code> 
 + 
 +Podemos incluirlo en un Compose: 
 + 
 +<code yaml> 
 +services: 
 +  web: 
 +    image: nginx 
 + 
 +    # marcamos que queremos que actúe el Auto heal 
 +    labels: 
 +      - autoheal=true 
 +    healthcheck: 
 +      interval: 5s 
 +      timeout: 5s 
 +      start_period: 10s 
 +      retries: 3 
 +      test: curl -f http://localhost || exit 1 
 + 
 +  autoheal: 
 +    image: willfarrell/autoheal 
 +    restart: always 
 +    environment: 
 +      - AUTOHEAL_CONTAINER_LABEL=all 
 +    volumes: 
 +      - /var/run/docker.sock:/var/run/docker.sock
 </code> </code>
informatica/sistemas_operativos/cursos/healthcheck.1697652868.txt.gz · Última modificación: por tempwin