Configurar comprobaciones del estado de los contenedores de grupos de trabajadores

Puedes configurar sondas de inicio HTTP, TCP y gRPC, así como sondas de actividad HTTP y gRPC para los grupos de trabajadores de Cloud Run nuevos y actuales. La configuración varía en función del tipo de sonda.

Casos prácticos

Puedes configurar dos tipos de sondas de comprobación del estado:

  • Las sondas de vivacidad determinan si se debe reiniciar un contenedor.

    • En este caso, reiniciar un contenedor puede aumentar la disponibilidad del grupo de trabajadores en caso de errores.
    • Las sondas de actividad están diseñadas para reiniciar instancias concretas que no se pueden recuperar de ninguna otra forma. Deben usarse principalmente en casos de fallos irrecuperables de instancias, por ejemplo, para detectar un interbloqueo en el que se esté ejecutando un grupo de trabajadores, pero no se pueda avanzar. Puedes requerir una prueba de actividad para cada contenedor mediante políticas de organización personalizadas.
  • Las pruebas de inicio determinan si el contenedor se ha iniciado.

    • Cuando configuras una sonda de inicio, las comprobaciones de actividad se inhabilitan hasta que la sonda de inicio determina que el contenedor se ha iniciado, para evitar interferencias con el inicio del grupo de trabajadores.
    • Las sondas de inicio son especialmente útiles si usas comprobaciones de actividad en contenedores que tardan en iniciarse, ya que evitan que se cierren prematuramente antes de que estén en funcionamiento.

Ten en cuenta que, cuando un grupo de trabajadores experimenta fallos repetidos en el inicio o en la comprobación de actividad, Cloud Run evita bucles de fallos incontrolados limitando los reinicios de instancias.

Asignación de CPU

  • La CPU siempre se asigna cuando se ejecutan las sondas.
  • Todas las sondas se facturan por el consumo de CPU y de memoria.

Requisitos y comportamiento de las sondas

Tipo de sonda Requisitos Comportamiento
Inicio de TCP Ninguno Si se especifica, Cloud Run establece una conexión TCP para abrir el socket TCP en el puerto especificado. Si Cloud Run no puede establecer una conexión, significa que se ha producido un error.

Si una sonda de inicio no se completa en el tiempo especificado, Cloud Run cierra el contenedor. El tiempo es de 240 segundos como máximo, calculado como failureThreshold * periodSeconds, que se define al configurar la sonda de inicio del grupo de trabajadores.
Inicio de HTTP Crea un endpoint de comprobación del estado HTTP
Usa HTTP/1
Después de configurar la sonda, Cloud Run envía una solicitud HTTP GET al endpoint de comprobación de estado del grupo de trabajadores (por ejemplo, /ready). Cualquier respuesta entre 200 y 400 se considera correcta. Cualquier otra respuesta indica un error.

Si una sonda de inicio no se completa correctamente en el tiempo especificado (failureThreshold * periodSeconds), que no puede superar los 240 segundos, Cloud Run cierra el contenedor.

Si la sonda de inicio HTTP se completa correctamente en el tiempo especificado y has configurado una sonda de vivacidad HTTP, Cloud Run inicia la sonda de vivacidad HTTP.
Actividad de HTTP Crea un endpoint de comprobación del estado HTTP
Usa HTTP/1
La prueba de actividad empieza solo después de que la prueba de inicio se haya completado correctamente. Después de configurar la sonda y de que se complete correctamente cualquier sonda de inicio, Cloud Run envía una solicitud HTTP GET al endpoint de comprobación de estado (por ejemplo, /health). Cualquier respuesta entre 200 y 400 se considera correcta. Cualquier otra respuesta indica un fallo.

Si una sonda de vivacidad no se completa correctamente en el plazo especificado (failureThreshold * periodSeconds), Cloud Run cierra el contenedor mediante una señal SIGKILL. Las solicitudes restantes que aún estuviera atendiendo el contenedor se terminarán con el código de estado HTTP 503. Después de que Cloud Run cierre el contenedor, el autoescalado de Cloud Run inicia una nueva instancia del contenedor.
Inicio de gRPC Implementa el protocolo de comprobación de estado de gRPC en tu grupo de trabajadores de Cloud Run Si una sonda de inicio no se completa correctamente en el tiempo especificado (failureThreshold * periodSeconds), que no puede superar los 240 segundos, Cloud Run cierra el contenedor.
Vivacidad de gRPC Implementa el protocolo de comprobación de estado de gRPC en tu grupo de trabajadores de Cloud Run Si configuras una sonda de inicio de gRPC, la sonda de vivacidad se inicia solo después de que la sonda de inicio se haya completado correctamente.

Una vez configurada la sonda de vivacidad y completada correctamente la sonda de inicio, Cloud Run envía una solicitud de comprobación de estado al grupo de trabajadores.

Si una sonda de vivacidad no se completa correctamente en el tiempo especificado (failureThreshold * periodSeconds), Cloud Run cierra el contenedor mediante una señal SIGKILL. Después de que Cloud Run cierre el contenedor, el autoescalado de Cloud Run inicia una nueva instancia del contenedor.

Configurar sondas

Cualquier cambio en la configuración conlleva la creación de una nueva revisión. Las revisiones posteriores también recibirán automáticamente este ajuste de configuración, a menos que hagas cambios explícitos para modificarlo.

Puedes configurar sondeos HTTP, TCP y gRPC mediante la Google Cloud consola o la API REST de Cloud Run:

Consola

  1. En la Google Cloud consola, ve a Cloud Run:

    Ir a Cloud Run

  2. Selecciona Grupos de trabajadores en el menú.

    • Si vas a configurar un nuevo grupo de trabajadores, haz clic en Implementar contenedor.
    • Si vas a configurar un grupo de trabajadores ya creado, selecciónalo y haz clic en Editar y desplegar nueva revisión.
  3. Si vas a configurar un grupo de trabajadores, rellena la página inicial del grupo de trabajadores y, a continuación, haz clic en Contenedores, volúmenes, redes y seguridad para desplegar la página de configuración del grupo de trabajadores.

  4. En la sección Contenedores, vaya a Comprobaciones del estado y haga clic en Añadir comprobación del estado para abrir el panel de configuración Añadir comprobación del estado.

  5. En el menú Seleccionar tipo de comprobación del estado, elige el tipo de comprobación del estado que quieras añadir.

  6. En el menú Seleccionar tipo de prueba, elija el tipo de prueba que quiera usar (por ejemplo, HTTP o gRPC). Se muestra el formulario de configuración de la sonda.

  7. Configura los ajustes de la sonda, que varían según el tipo de sonda:

    • Si usas comprobaciones HTTP:

      • Usa el campo Ruta para especificar la ruta relativa al endpoint. Por ejemplo, /.

      • Seleccione la casilla Encabezados HTTP para especificar encabezados personalizados opcionales. Especifica el nombre del encabezado en el campo Nombre y el valor del encabezado en el campo Valor. Haz clic en Añadir encabezado HTTP para especificar más encabezados.

    • Si usas sondas gRPC, asegúrate de que tu imagen de contenedor implemente el protocolo de comprobación de estado de gRPC. Para obtener más información, consulta el protocolo de comprobación del estado de gRPC.

    • En el caso de los tipos de comprobación HTTP y gRPC, especifica lo siguiente:

      • Retraso inicial: especifica el número de segundos que deben transcurrir después de que se haya iniciado el contenedor antes de realizar la primera comprobación. Especifica un valor entre 0 y 240 segundos. El valor predeterminado es 0 segundos.

      • Periodo: especifica el periodo (en segundos) en el que se realizará la comprobación. Por ejemplo, especifica 2 para realizar la comprobación cada 2 segundos. Especifica un valor de entre 1 y 240 segundos. El valor predeterminado es 10 segundos.

      • Umbral de errores: especifica el número de veces que se debe reintentar la comprobación antes de cerrar el contenedor. El valor predeterminado es 3.

      • En Tiempo de espera, especifica el número de segundos que se debe esperar hasta que se agote el tiempo de espera de la comprobación. Especifica un valor entre 1 y el menor de los dos valores siguientes: 240 y periodSeconds. El valor predeterminado es 1.

  8. Haga clic en Añadir para añadir el nuevo umbral.

  9. Haz clic en Crear o en Implementar.

API REST

Importante: Si configuras tu grupo de trabajadores de Cloud Run para que use comprobaciones HTTP, también debes añadir un endpoint de comprobación de estado HTTP en el código del grupo de trabajadores para que responda a la comprobación. Si vas a configurar una sonda gRPC, también debes implementar el protocolo de comprobación del estado de gRPC en tu grupo de trabajadores de Cloud Run.

Inicio de HTTP

Para configurar esta opción, usa la API REST.

Actividad de HTTP

Para configurar esta opción, usa la API REST.

Inicio de gRPC

Para configurar esta opción, usa la API REST.

Vivacidad de gRPC

Para configurar esta opción, usa la API REST.

Crear endpoints de comprobación del estado HTTP

Si configura su grupo de trabajadores de Cloud Run para una sonda de inicio HTTP o una sonda de actividad, debe añadir un endpoint en el código del grupo de trabajadores para responder a la sonda. El endpoint puede tener el nombre que quieras, por ejemplo, /startup o /ready, pero debe coincidir con el valor que especifiques en path en la configuración de la sonda. Por ejemplo, si especificas /ready para una sonda de inicio HTTP, especifica path en la configuración de la sonda, como se muestra a continuación:

startupProbe:
  httpGet:
    path: /ready

Los endpoints de comprobación del estado HTTP son accesibles externamente y siguen los mismos principios que cualquier otro endpoint HTTP expuesto externamente.