Configurar comprobaciones del estado de los contenedores de los trabajos

En esta página se describe cómo configurar sondas de inicio HTTP, TCP y gRPC para trabajos de Cloud Run nuevos y actuales. La configuración varía en función del tipo de sonda.

Casos prácticos

Puedes configurar las sondas de comprobación del estado de inicio. Las pruebas de inicio determinan si el contenedor se ha iniciado y está listo para ejecutar el trabajo.

Cuando una tarea no se inicia repetidamente, Cloud Run limita los reinicios de tareas para evitar bucles de fallos incontrolados.

Requisitos y comportamiento de las sondas

Tipo de sonda Requisitos Comportamiento
Inicio de TCP Ninguno Si Cloud Run no puede establecer una conexión, significa que se ha producido un error.

Si una sonda de inicio no se completa correctamente en el 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 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 del estado del trabajo (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, el contenedor se cierra.
Inicio de gRPC Implementa el protocolo de comprobación de estado de gRPC en tu trabajo 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, el contenedor se cierra.

Configurar sondas

Configura las sondas HTTP, TCP y gRPC mediante la Google Cloud consola o YAML:

Consola

Importante: Si configuras tu trabajo 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 trabajo para responder 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 trabajo de Cloud Run.

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

    Ir a Cloud Run

  2. Para crear un trabajo, selecciona Trabajos en el menú y haz clic en Desplegar contenedor. En el caso de un trabajo que ya tengas, haz clic en la pestaña Trabajos, selecciona el trabajo que quieras y, a continuación, haz clic en Ver y editar configuración del trabajo.

  3. Despliega Contenedores, volúmenes, redes y seguridad.

  4. En la sección Contenedores, ve a Comprobaciones del estado y haz 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 inicio de la comprobación del estado.

  6. En el menú Seleccionar tipo de prueba, elija el tipo de prueba, como HTTP o gRPC. Se muestra el formulario de configuración de la sonda.

  7. Ten en cuenta que la configuración de la sonda varía según el tipo de sonda. Configura los ajustes de la 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. A continuación, especifique 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.
    • En Puerto, especifica el puerto en el que el contenedor de trabajo escucha la sonda.
    • En Retraso inicial, especifica cuántos segundos deben transcurrir después de que se inicie el contenedor antes de realizar la primera comprobación. Especifica un valor entre 0 y 240 segundos. El valor predeterminado es 0 segundos.
    • En Period (Periodo), especifica el intervalo de tiempo (en segundos) en el que se realizará la comprobación. Por ejemplo, 2 para realizar la comprobación cada 2 segundos. Especifica un valor entre 1 y 240 segundos. El valor predeterminado es 10 segundos.
    • En Umbral de fallos, especifica cuántas veces se debe reintentar la comprobación antes de cerrar el contenedor. El valor predeterminado es 3.
    • En Tiempo de espera, especifica cuántos segundos deben transcurrir hasta que se agote el tiempo de espera de la comprobación. Este valor no puede superar el valor especificado en periodSeconds. Especifica un valor entre 1 y 240. El valor predeterminado es 1.
  8. Haga clic en Añadir para añadir el nuevo umbral.

YAML

Importante: Si configuras tu trabajo de Cloud Run para que use comprobaciones HTTP, también debes añadir un endpoint en el código del trabajo 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 trabajo de Cloud Run.

Inicio de TCP

  1. Si vas a crear un trabajo, sáltate este paso. Si vas a actualizar una tarea, descarga su configuración YAML:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Configure el atributo startupProbe como se indica 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

    Sustituye las siguientes variables:

    • JOB con el nombre de tu tarea de Cloud Run.
    • IMAGE_URL con la URL de la imagen del contenedor de 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 comprobación.
    • DELAY con el número de segundos que se deben esperar 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.
    • Opcional: TIMEOUT con el número de segundos que deben transcurrir hasta que se agote el tiempo de espera de la comprobación. Este valor no puede superar el valor especificado para periodSeconds. Especifica un valor entre 1 y 240. El valor predeterminado es 1.
    • THRESHOLD con el número de veces que se debe reintentar la comprobación antes de cerrar el contenedor. El valor predeterminado es 3.
    • PERIOD con el periodo (en segundos) en el que se debe realizar la comprobación. Por ejemplo, 2 para realizar la comprobación cada 2 segundos. Especifica un valor entre 1 y 240 segundos. El valor predeterminado es 10 segundos.
  3. Crea o actualiza el trabajo con el siguiente comando:

    gcloud run jobs replace job.yaml

Inicio de HTTP

  1. Si vas a crear un trabajo, sáltate este paso. Si vas a actualizar una tarea, descarga su configuración YAML:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Configure el atributo startupProbe como se indica 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

    Sustituye las siguientes variables:

    • JOB con el nombre de tu tarea de Cloud Run.
    • IMAGE_URL con la URL de la imagen del contenedor de trabajo. Por ejemplo: us-docker.pkg.dev/cloudrun/container/job:latest.
    • PATH con la ruta relativa al endpoint HTTP. Por ejemplo, /ready.
    • Opcional: CONTAINER_PORT con el puerto en el que el contenedor de trabajo escucha la comprobación.
    • Opcional: httpHeaders se puede usar para proporcionar varios encabezados personalizados o repetidos mediante los campos HEADER_NAME y HEADER_VALUE, tal como se muestra.
    • Opcional: DELAY con el número de segundos que se deben esperar 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.
    • Opcional: TIMEOUT con el número de segundos que deben transcurrir hasta que se agote el tiempo de espera de la comprobación. Este valor no puede superar el valor especificado en periodSeconds. Especifica un valor entre 1 y 240. El valor predeterminado es 1.
    • Opcional: THRESHOLD con el número de veces que se debe reintentar la comprobación antes de cerrar el contenedor. El valor predeterminado es 3.
    • Opcional: PERIOD con el periodo (en segundos) en el que se realizará la comprobación. Por ejemplo, 2 para realizar la comprobación cada 2 segundos. Especifica un valor de entre 1 y 240 segundos. El valor predeterminado es 10 segundos.
  3. Crea o actualiza el trabajo con el siguiente comando:

    gcloud run jobs replace job.yaml

Inicio de gRPC

  1. Si vas a crear un trabajo, sáltate este paso. Si vas a actualizar una tarea, descarga su configuración YAML:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Configure el atributo startupProbe como se indica 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

    Sustituye las siguientes variables:

    • JOB con el nombre de tu tarea de Cloud Run.
    • IMAGE_URL con la URL de la imagen del contenedor de trabajo. Por ejemplo: us-docker.pkg.dev/cloudrun/container/job:latest.
    • Opcional: GRPC_SERVICE. Si se define, se usa en el campo service de grpc.health.v1.HealthCheckRequest cuando se llama a la RPC grpc.health.v1.Health.Check.
    • Opcional: CONTAINER_PORT con el puerto en el que el contenedor de trabajo escucha la comprobación.
    • Opcional: DELAY con 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.
    • Opcional: TIMEOUT con el número de segundos que se debe esperar hasta que se agote el tiempo de espera de la comprobación. Este valor no puede superar el valor especificado en periodSeconds. Especifica un valor entre 1 y 240. El valor predeterminado es 1.
    • Opcional: THRESHOLD con el número de veces que se debe reintentar la comprobación antes de cerrar el contenedor. El valor predeterminado es 3.
    • Opcional: PERIOD con el periodo (en segundos) en el que se realizará la comprobación. Por ejemplo, 2 para realizar la comprobación cada 2 segundos. Especifica un valor de entre 1 y 240 segundos. El valor predeterminado es 10 segundos.
  3. Crea o actualiza el trabajo con el siguiente comando:

    gcloud run jobs replace job.yaml

Crear endpoints de comprobación del estado HTTP

Si configuras tu trabajo de Cloud Run para que use una sonda de inicio HTTP, debes añadir un endpoint en el código del trabajo para que responda a la sonda. Puedes usar cualquier nombre para el endpoint, como /startup o /ready. El nombre debe coincidir con los valores que especifiques para 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