Configura las verificaciones de estado de los contenedores (trabajos)

En esta página, se describe cómo configurar sondeos de inicio de HTTP, TCP y gRPC para trabajos nuevos y existentes de Cloud Run. La configuración varía según el tipo de sondeo.

Casos de uso

Puedes configurar sondeos de verificación de estado de inicio. Los sondeos de inicio determinan si el contenedor se inició y está listo para ejecutar la tarea.

Cuando un trabajo no se inicia de forma reiterada, Cloud Run limita los reinicios de tareas para evitar bucles de fallas no controlados.

Requisitos y comportamiento del sondeo

Tipo de sondeo Requisitos Comportamiento
Inicio de TCP Ninguno Si Cloud Run no puede establecer una conexión, indica un error.

Si un sondeo de inicio no se realiza de forma correcta dentro del intervalo de tiempo especificado, Cloud Run cierra el contenedor. Este intervalo de tiempo se calcula como failureThreshold × periodSeconds y no puede superar los 240 segundos.
Inicio de HTTP Crea un extremo de verificación de estado HTTP
Usa HTTP/1
Después de configurar el sondeo, Cloud Run realiza una solicitud HTTP GET al extremo de verificación de estado de la tarea (por ejemplo, /ready). Cualquier respuesta entre 200 y 400 es correcta, y todo lo demás indica un error.

Si un sondeo de inicio no se realiza de forma correcta dentro del tiempo especificado (failureThreshold * periodSeconds), que no puede superar los 240 segundos, el contenedor se cierra.
Inicio de gRPC Implementa el protocolo de verificación de estado de gRPC en tu trabajo de Cloud Run. Si un sondeo de inicio no se completa de forma correcta dentro del tiempo especificado (failureThreshold * periodSeconds), que no puede superar los 240 segundos, el contenedor se cierra.

Configura sondeos

Configura sondeos de HTTP, TCP y gRPC con la consola de Google Cloud o YAML:

Console

Importante: Si configuras tu trabajo de Cloud Run para sondeos HTTP, también debes agregar un extremo de verificación de estado HTTP en el código de trabajo para responder al sondeo. Si configuras un sondeo de gRPC, también debes implementar el protocolo de verificación de estado de gRPC en tu trabajo de Cloud Run.

  1. En la consola de Google Cloud , ve a la página Cloud Run.

    Ir a Cloud Run

  2. Para un trabajo nuevo, haz clic en IMPLEMENTAR CONTENEDOR y, luego, en Trabajo. En el caso de un trabajo existente, haz clic en la pestaña Trabajos, en el trabajo que quieras y, luego, en VER Y EDITAR LA CONFIGURACIÓN DEL TRABAJO.

  3. Expande Contenedores, volúmenes, herramientas de redes y seguridad.

  4. En la sección Contenedores, dirígete a Verificaciones de estado y haz clic en Agregar verificación de estado para abrir el panel de configuración Agregar verificación de estado.

  5. En el menú Seleccionar el tipo de verificación de estado, selecciona el tipo de inicio de la verificación de estado.

  6. En el menú Seleccionar tipo de sondeo, selecciona el tipo de sondeo, como HTTP o gRPC. Se mostrará el formulario de configuración del sondeo.

  7. Ten en cuenta que la configuración del sondeo varía según el tipo de sondeo. Establece la configuración del sondeo:

    • Si usas sondeos de HTTP, realiza lo siguiente:
      • Usa el campo Ruta de acceso para especificar la ruta de acceso relativa al extremo, por ejemplo, /.
      • Selecciona la casilla de verificación Encabezados HTTP para especificar encabezados personalizados opcionales. Luego, especifica el nombre del encabezado en el campo Nombre y el valor del encabezado en el campo Valor. Haz clic en Agregar encabezado HTTP para especificar más encabezados.
    • En Puerto, especifica el puerto en el que el contenedor de trabajo escucha la prueba.
    • En Retraso inicial, especifica cuántos segundos se deben esperar después de que se inicia el contenedor antes de realizar el primer sondeo. Especifica un valor de 0 a 240 segundos. El valor predeterminado es 0 segundos.
    • En Período, especifica el intervalo de tiempo (en segundos) en el que se realizará el sondeo. Por ejemplo, 2 para realizar el sondeo cada 2 segundos. Especifica un valor de 1 segundo a 240 segundos. El valor predeterminado es 10 segundos.
    • En Umbral de falla, especifica cuántas veces se debe reintentar el sondeo antes de apagar el contenedor. El valor predeterminado es 3.
    • En Tiempo de espera, especifica cuántos segundos esperar hasta que se agote el tiempo de espera del sondeo. Este valor no puede exceder el valor especificado para periodSeconds. Especifica un valor de 1 a 240. El valor predeterminado es 1.
  8. Haz clic en Agregar para agregar el umbral nuevo.

YAML

Importante: Si configuras tu trabajo de Cloud Run para sondeos HTTP, también debes agregar un extremo en el código de trabajo para responder al sondeo. Si configuras un sondeo de gRPC, también debes implementar el protocolo de verificación de estado de gRPC en tu trabajo de Cloud Run.

Inicio de TCP

  1. Si creas un trabajo nuevo, omite este paso. Si actualizas un trabajo existente, descarga su configuración de YAML:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Configura el atributo startupProbe como se muestra a continuación:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
     name: JOB
    spec:
     template:
       metadata:
       spec:
         containers:
         - image: IMAGE_URL
           startupProbe:
             tcpSocket:
               port: CONTAINER_PORT
             initialDelaySeconds: DELAY
             timeoutSeconds: TIMEOUT
             failureThreshold: THRESHOLD
             periodSeconds: PERIOD

    Reemplaza las siguientes variables:

    • JOB por el nombre del trabajo de Cloud Run.
    • IMAGE_URL por la URL de la imagen del contenedor del trabajo, por ejemplo, us-docker.pkg.dev/cloudrun/container/job:latest.
    • Opcional: CONTAINER_PORT con el puerto en el que el contenedor de trabajo escucha la sonda.
    • DELAY con la cantidad de segundos que se espera después de que el contenedor se inició antes de realizar el primer sondeo. Especifica un valor de 0 segundos a 240 segundos. El valor predeterminado es 0 segundos.
    • Opcional: TIMEOUT con la cantidad de segundos que se espera hasta que se agote el tiempo de espera del sondeo. Este valor no puede exceder el valor especificado para periodSeconds. Especifica un valor de 1 a 240. El valor predeterminado es 1.
    • THRESHOLD por la cantidad de veces que se debe reintentar el sondeo antes de cerrar el contenedor. El valor predeterminado es 3.
    • PERIOD por el período (en segundos) en el que se realizará el sondeo. Por ejemplo, 2 para realizar el sondeo cada 2 segundos. Especifica un valor de 1 segundo a 240 segundos. El valor predeterminado es 10 segundos.
  3. Crea o actualiza el servicio con el siguiente comando:

    gcloud run jobs replace job.yaml

Inicio de HTTP

  1. Si creas un trabajo nuevo, omite este paso. Si actualizas un trabajo existente, descarga su configuración de YAML:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Configura el atributo startupProbe como se muestra a continuación:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        metadata:
        spec:
          containers:
          - image: IMAGE_URL
            startupProbe:
              httpGet:
                path: PATH
                port: CONTAINER_PORT
                httpHeaders:
                  - name: HEADER_NAME
                    value: HEADER_VALUE
              initialDelaySeconds: DELAY
              timeoutSeconds: TIMEOUT
              failureThreshold: THRESHOLD
              periodSeconds: PERIOD

    Reemplaza las siguientes variables:

    • JOB por el nombre del trabajo de Cloud Run.
    • IMAGE_URL por la URL de la imagen del contenedor del trabajo, por ejemplo, us-docker.pkg.dev/cloudrun/container/job:latest.
    • PATH por la ruta relativa al extremo HTTP, por ejemplo, /ready.
    • Opcional: CONTAINER_PORT con el puerto en el que el contenedor de trabajo escucha la sonda.
    • Opcional: Se puede usar httpHeaders para proporcionar varios encabezados personalizados o repetidos mediante los campos HEADER_NAME y HEADER_VALUE, como se muestra.
    • Opcional: DELAY con la cantidad de segundos que se espera después de que el contenedor se inició antes de realizar el primer sondeo. Especifica un valor de 0 segundos a 240 segundos. El valor predeterminado es 0 segundos.
    • Opcional: TIMEOUT con la cantidad de segundos que se espera hasta que se agote el tiempo de espera del sondeo. Este valor no puede exceder el valor especificado para periodSeconds. Especifica un valor de 1 a 240. El valor predeterminado es 1.
    • Opcional: THRESHOLD por la cantidad de veces que se debe reintentar el sondeo antes de apagar el contenedor. El valor predeterminado es 3.
    • Opcional: PERIOD con el período (en segundos) en el que se realizará el sondeo. Por ejemplo, 2 para realizar el sondeo cada 2 segundos. Especifica un valor de 1 a 240 segundos. El valor predeterminado es 10 segundos.
  3. Crea o actualiza el servicio con el siguiente comando:

    gcloud run jobs replace job.yaml

Inicio de gRPC

  1. Si creas un trabajo nuevo, omite este paso. Si actualizas un trabajo existente, descarga su configuración de YAML:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Configura el atributo startupProbe como se muestra a continuación:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        metadata:
        spec:
          containers:
          - image: IMAGE_URL
            startupProbe:
              grpc:
                service: GRPC_SERVICE
                port: CONTAINER_PORT
              initialDelaySeconds: DELAY
              timeoutSeconds: TIMEOUT
              failureThreshold: THRESHOLD
              periodSeconds: PERIOD

    Reemplaza las siguientes variables:

    • JOB por el nombre del trabajo de Cloud Run.
    • IMAGE_URL por la URL de la imagen del contenedor del trabajo, por ejemplo, us-docker.pkg.dev/cloudrun/container/job:latest.
    • Opcional: GRPC_SERVICE. Si se establece, se usa en el campo de servicio de grpc.health.v1.HealthCheckRequest cuando se llama a la RPC de grpc.health.v1.Health.Check.
    • Opcional: CONTAINER_PORT con el puerto en el que el contenedor de trabajo escucha la sonda.
    • Opcional: DELAY con la cantidad de segundos que se espera después de que el contenedor se inició antes de realizar el primer sondeo. Especifica un valor de 0 a 240 segundos. El valor predeterminado es 0 segundos.
    • Opcional: TIMEOUT con la cantidad de segundos que se espera hasta que se agote el tiempo de espera del sondeo. Este valor no puede exceder el valor especificado para periodSeconds. Especifica un valor de 1 a 240. El valor predeterminado es 1.
    • Opcional: THRESHOLD por la cantidad de veces que se debe reintentar el sondeo antes de apagar el contenedor. El valor predeterminado es 3.
    • Opcional: PERIOD con el período (en segundos) en el que se realizará el sondeo. Por ejemplo, 2 para realizar el sondeo cada 2 segundos. Especifica un valor de 1 a 240 segundos. El valor predeterminado es 10 segundos.
  3. Crea o actualiza el servicio con el siguiente comando:

    gcloud run jobs replace job.yaml

Crea extremos de verificación de estado de HTTP

Si configuras tu trabajo de Cloud Run para un sondeo de inicio HTTP, debes agregar un extremo en el código de trabajo para responder al sondeo. Puedes usar cualquier nombre para el extremo, como /startup o /ready. El nombre debe coincidir con los valores que especifiques para path en la configuración del sondeo. Por ejemplo, si especificas /ready para un sondeo de inicio HTTP, debes especificar path en la configuración de sondeo, como se muestra a continuación:

startupProbe:
  httpGet:
    path: /ready