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.
En la Google Cloud consola, ve a la página Cloud Run.
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.
Despliega Contenedores, volúmenes, redes y seguridad.
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.
En el menú Seleccionar tipo de comprobación del estado, elige el tipo de inicio de la comprobación del estado.
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.
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.
- Usa el campo Ruta para especificar la ruta relativa al endpoint. Por ejemplo,
- 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.
- Si usas comprobaciones HTTP:
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
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
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.
Crea o actualiza el trabajo con el siguiente comando:
gcloud run jobs replace job.yaml
Inicio de HTTP
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
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.
Crea o actualiza el trabajo con el siguiente comando:
gcloud run jobs replace job.yaml
Inicio de gRPC
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
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 RPCgrpc.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.
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