Red Hat Training

A Red Hat training course is available for RHEL 8

Capítulo 10. Control de los contenedores

Este capítulo se centra en los comandos útiles de Podman que le permiten gestionar un entorno Podman, incluyendo la determinación de la salud del contenedor, la visualización de la información del sistema y del pod, y la supervisión de los eventos de Podman.

10.1. Realizar una comprobación de la salud de un contenedor

El healthcheck permite determinar la salud o la preparación del proceso que se ejecuta dentro del contenedor. Un healthcheck consta de cinco componentes básicos:

  • Comando
  • Reintentos
  • Intervalo
  • Periodo de inicio
  • Tiempo de espera

A continuación se describen los componentes del chequeo.

Comando
Podman ejecuta el comando dentro del contenedor de destino y espera el código de salida.

Los otros cuatro componentes están relacionados con la programación del chequeo y son opcionales.

Reintentos
Define el número de comprobaciones de salud fallidas consecutivas que deben producirse antes de que el contenedor se marque como "sin salud". Un chequeo exitoso reinicia el contador de reintentos.
Intervalo
Describe el tiempo entre la ejecución del comando healthcheck. Tenga en cuenta que los intervalos pequeños hacen que el sistema pase mucho tiempo ejecutando healthchecks. Los intervalos grandes causan problemas con la captura de los tiempos de espera.
Periodo de inicio
Describe el tiempo que transcurre entre el inicio del contenedor y el momento en que se desea ignorar los fallos de healthcheck.
Tiempo de espera
Describe el periodo de tiempo que debe completar el chequeo antes de considerarse fallido.

Los Healthchecks se ejecutan dentro del contenedor. Las comprobaciones de salud sólo tienen sentido si se conoce el estado de salud del servicio y se puede diferenciar entre una comprobación de salud satisfactoria y una no satisfactoria.

Procedimiento

  1. Definir un chequeo de salud:

    $ sudo podman run -dt --name hc1 --health-cmd='curl http://localhost || exit 1' --health-interval=0 quay.io/libpod/alpine_nginx:latest
    D25ee6faaf6e5e12c09e734b1ac675385fe4d4e8b52504dd01a60e1b726e3edb
    • La opción --health-cmd establece un comando de healthcheck para el contenedor.
    • La opción -health-interval=0 con valor 0 indica que se quiere ejecutar el healthcheck manualmente.
  2. Ejecute el chequeo manualmente:

    $ sudo podman healthcheck run hc1
    Healthy
  3. Opcionalmente, puede comprobar el estado de salida del último comando:

    $ echo $?
    0

    El valor "0" significa éxito.

Recursos adicionales