Las comprobaciones de estado de Cloud Run se aseguran de que tus instancias de contenedor se ejecuten correctamente y puedan atender el tráfico. Con las comprobaciones de estado de Cloud Run, puedes personalizar cuándo está listo tu contenedor para recibir solicitudes y cuándo se debe considerar que no está en buen estado para que sea necesario reiniciarlo.
Casos prácticos
Puedes configurar dos tipos de sondas de comprobación del estado:
Las sondas de inicio determinan si el contenedor se ha iniciado y está listo para aceptar tráfico.
- 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 servicio.
- Las sondas de inicio son especialmente útiles si usas comprobaciones de actividad en contenedores que tardan en iniciarse, ya que impiden que los contenedores se cierren prematuramente antes de que estén en funcionamiento.
Las sondas de vivacidad determinan si se debe reiniciar un contenedor.
- En este caso, reiniciar un contenedor puede aumentar la disponibilidad del servicio en caso de que haya 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 para errores irrecuperables de instancias, como detectar un interbloqueo en el que se está ejecutando un servicio, pero no puede avanzar. Puedes requerir una prueba de actividad para cada contenedor mediante políticas de organización personalizadas.
Cuando un servicio experimenta fallos repetidos en el inicio o en la comprobación de actividad, Cloud Run limita los reinicios de instancias para evitar bucles de fallos incontrolados.
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.
Configurar sondas de inicio
Puedes configurar sondeos HTTP, TCP y gRPC mediante la Google Cloud consola, YAML o Terraform:
Consola
En la Google Cloud consola, ve a la página Cloud Run:
En el caso de un servicio nuevo, despliega Contenedores, volúmenes, redes y seguridad para ver las opciones de comprobación de estado. En el caso de un servicio que ya tengas, haz clic en el que quieras configurar y, a continuación, en Editar y desplegar para ver las opciones de comprobación de estado.
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.
En el menú Seleccionar tipo de comprobación del estado, elige el tipo de comprobación del estado que quieras añadir.
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.
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:
Asegúrate de que tu servicio usa HTTP/1 (el valor predeterminado de Cloud Run) y no HTTP/2.
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 Puerto, especifica el puerto del contenedor que se usa en tu servicio.
En 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.
En Period (Periodo), especifique el periodo (en segundos) en el que se realizará la prueba. 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.En Umbral de fallos, 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. Este valor no puede superar el valor especificado para
periodSeconds
. Especifica un valor entre 1 y 240. El valor predeterminado es 1.
Haga clic en Añadir para añadir el nuevo umbral.
gcloud
Inicio de TCP
Ejecuta el siguiente comando:
gcloud run deploy SERVICE \
--image=IMAGE_URL \
--startup-probe tcpSocket.port=CONTAINER_PORT,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Sustituye:
- SERVICE con el nombre de tu servicio de Cloud Run.
- IMAGE_URL con una referencia a la imagen del contenedor, por ejemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si usas Artifact Registry, el repositorio REPO_NAME ya debe estar creado. La URL tiene el formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- (OPCIONAL) CONTAINER_PORT debe configurarse en el puerto del contenedor que se utilice en tu servicio.
- DELAY con el número de segundos que se debe 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 se debe esperar 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.
Inicio de HTTP
Ejecuta el siguiente comando:
gcloud run deploy SERVICE \
--image=IMAGE_URL \
--startup-probe httpGet.path=PATH,httpGet.port=CONTAINER_PORT,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Sustituye:
- SERVICE con el nombre de tu servicio de Cloud Run.
- IMAGE_URL con una referencia a la imagen del contenedor, por ejemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si usas Artifact Registry, el repositorio REPO_NAME ya debe estar creado. La URL tiene el formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- PATH con la ruta relativa al endpoint HTTP. Por ejemplo,
/ready
. - OPCIONAL: CONTAINER_PORT debe configurarse en el puerto del contenedor que se utilice en tu servicio.
- (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) 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)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) 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.
Inicio de gRPC
Antes de usar las 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.
Ejecuta el siguiente comando:
gcloud run deploy SERVICE \
--image=IMAGE_URL \
--startup-probe grpc.port=CONTAINER_PORT,grpc.service=GRPC_SERVICE,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Sustituye:
- SERVICE con el nombre de tu servicio de Cloud Run.
- IMAGE_URL con una referencia a la imagen del contenedor, por ejemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si usas Artifact Registry, el repositorio REPO_NAME ya debe estar creado. La URL tiene el formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- (OPCIONAL) GRPC_SERVICE. Si se define, se usa en el campo de servicio de
grpc.health.v1.HealthCheckRequest
cuando se llama al RPCgrpc.health.v1.Health.Check
. - OPCIONAL: CONTAINER_PORT debe configurarse en el puerto del contenedor que se utilice en tu servicio.
- (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) 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)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) 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.
YAML
Inicio de TCP
-
Si va a crear un servicio, puede saltarse este paso. Si vas a actualizar un servicio, descarga su configuración YAML:
gcloud run services describe SERVICE --format export > service.yaml
Configure el atributo
startupProbe
como se indica a continuación:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: spec: containers: - image: IMAGE_URL startupProbe: tcpSocket: port: CONTAINER_PORT initialDelaySeconds: DELAY timeoutSeconds: TIMEOUT failureThreshold: THRESHOLD periodSeconds: PERIOD
Sustituye:
- SERVICE con el nombre de tu servicio de Cloud Run.
- IMAGE_URL con una referencia a la imagen del contenedor, por ejemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si usas Artifact Registry, el repositorio REPO_NAME ya debe estar creado. La URL tiene el formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- (OPCIONAL) CONTAINER_PORT debe configurarse en el puerto del contenedor que se utilice en tu servicio.
- DELAY con el número de segundos que se debe 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 se debe esperar 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 servicio con el siguiente comando:
gcloud run services replace service.yaml
Inicio de HTTP
-
Si va a crear un servicio, puede saltarse este paso. Si vas a actualizar un servicio, descarga su configuración YAML:
gcloud run services describe SERVICE --format export > service.yaml
Asegúrate de que tu servicio usa HTTP/1 (el valor predeterminado de Cloud Run) y no HTTP/2.
Configure el atributo
startupProbe
como se indica a continuación:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE 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:
- SERVICE con el nombre de tu servicio de Cloud Run.
- IMAGE_URL con una referencia a la imagen del contenedor, por ejemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si usas Artifact Registry, el repositorio REPO_NAME ya debe estar creado. La URL tiene el formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- PATH con la ruta relativa al endpoint HTTP. Por ejemplo,
/ready
. - OPCIONAL: CONTAINER_PORT debe configurarse en el puerto del contenedor que se utilice en tu servicio.
- (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) 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) Se puede usar
httpHeaders
para proporcionar varios encabezados personalizados o repetidos mediante los campos HEADER_NAME y HEADER_VALUE, tal como se muestra. - (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) 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 servicio con el siguiente comando:
gcloud run services replace service.yaml
Inicio de gRPC
Antes de usar las 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.
-
Si va a crear un servicio, puede saltarse este paso. Si vas a actualizar un servicio, descarga su configuración YAML:
gcloud run services describe SERVICE --format export > service.yaml
Configure el atributo
startupProbe
como se indica a continuación:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE 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:
- SERVICE con el nombre de tu servicio de Cloud Run.
- IMAGE_URL con una referencia a la imagen del contenedor, por ejemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si usas Artifact Registry, el repositorio REPO_NAME ya debe estar creado. La URL tiene el formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- (OPCIONAL) GRPC_SERVICE. Si se define, se usa en el campo de servicio de
grpc.health.v1.HealthCheckRequest
cuando se llama al RPCgrpc.health.v1.Health.Check
. - OPCIONAL: CONTAINER_PORT debe configurarse en el puerto del contenedor que se utilice en tu servicio.
- (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) 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)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) 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 servicio con el siguiente comando:
gcloud run services replace service.yaml
Terraform
Para saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.
Inicio de TCP
Configura tu servicio de Cloud Run con el atributo startup_probe
como se muestra a continuación:
Inicio de HTTP
Asegúrate de que tu servicio usa HTTP/1 (el valor predeterminado de Cloud Run) y no HTTP/2.
Configura tu servicio de Cloud Run con el atributo startup_probe
como se muestra a continuación:
Inicio de gRPC
Antes de usar las 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.
Configura tu servicio de Cloud Run con el atributo startup_probe
como se muestra a continuación:
La comprobación de inicio de TCP predeterminada
Si no configuras explícitamente una sonda de inicio de TCP para un nuevo servicio de Cloud Run, Cloud Run configurará automáticamente una sonda de inicio de TCP con los siguientes valores predeterminados:
startupProbe:
timeoutSeconds: 240
periodSeconds: 240
failureThreshold: 1
Puedes cambiar estos valores predeterminados siguiendo las instrucciones de la sección Configuración de la sonda de esta página.
Requisitos y comportamiento de la sonda de inicio
Tipo de sonda | Requisitos | Comportamiento |
---|---|---|
Inicio de TCP | Ninguno | De forma predeterminada, 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 correctamente en el tiempo especificado ( failureThreshold * periodSeconds ), que no puede superar los 240 segundos, el contenedor se cierra. Consulta también los valores predeterminados de TCP. |
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 servicio (por ejemplo, /ready ). Cualquier respuesta 2XX o 3XX indica que la solicitud se ha realizado correctamente. Cualquier otra respuesta indica que ha fallado.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.Si la sonda de inicio HTTP se completa correctamente en el tiempo especificado y has configurado una sonda de vivacidad HTTP, se inicia la sonda de vivacidad HTTP. |
Inicio de gRPC | Implementa el protocolo de comprobación de estado de gRPC en tu servicio de Cloud Run | Si una sonda de inicio no se completa correctamente en el plazo especificado (failureThreshold * periodSeconds ), que no puede superar los 240 segundos, el contenedor se cierra. |
Configurar comprobaciones de actividad
Puedes configurar las sondas HTTP y gRPC mediante la Google Cloud consola, YAML o Terraform:
Consola
Antes de usar las 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 la Google Cloud consola, ve a la página Cloud Run:
En el caso de un servicio nuevo, despliega Contenedores, volúmenes, redes y seguridad para ver las opciones de comprobación de estado. En el caso de un servicio que ya tengas, haz clic en el que quieras configurar y, a continuación, en Editar y desplegar para ver las opciones de comprobación de estado.
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.
En el menú Seleccionar tipo de comprobación del estado, elige el tipo de comprobación del estado que quieras añadir.
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.
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:
Asegúrate de que tu servicio usa HTTP/1 (el valor predeterminado de Cloud Run) y no HTTP/2.
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 Puerto, especifica el puerto del contenedor que se usa en tu servicio.
En 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.
En Period (Periodo), especifique el periodo (en segundos) en el que se realizará la prueba. 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.En Umbral de fallos, 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. Este valor no puede superar el valor especificado para
periodSeconds
. Especifica un valor entre 1 y 240. El valor predeterminado es 1.
Haga clic en Añadir para añadir el nuevo umbral.
gcloud
Actividad de HTTP
Ejecuta el siguiente comando:
gcloud run deploy SERVICE \
--image=IMAGE_URL \
--liveness-probe httpGet.path=PATH,httpGet.port=CONTAINER_PORT,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Sustituye:
- SERVICE con el nombre de tu servicio de Cloud Run.
- IMAGE_URL con una referencia a la imagen del contenedor, por ejemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si usas Artifact Registry, el repositorio REPO_NAME ya debe estar creado. La URL tiene el formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- PATH con la ruta relativa al endpoint HTTP. Por ejemplo,
/ready
. - OPCIONAL: CONTAINER_PORT debe configurarse en el puerto del contenedor que se utilice en tu servicio.
- (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) 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) 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 para
periodSeconds
. Especifica un valor entre 1 y 3600.El valor predeterminado es 1. - (OPCIONAL) 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 3600 segundos. El valor predeterminado es 10 segundos.
Vivacidad de gRPC
Antes de usar las 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.
Ejecuta el siguiente comando:
gcloud run deploy SERVICE \
--image=IMAGE_URL \
--liveness-probe grpc.port=CONTAINER_PORT,grpc.service=GRPC_SERVICE,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD
Sustituye:
- SERVICE con el nombre de tu servicio de Cloud Run.
- IMAGE_URL con una referencia a la imagen del contenedor, por ejemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si usas Artifact Registry, el repositorio REPO_NAME ya debe estar creado. La URL tiene el formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- (OPCIONAL) GRPC_SERVICE. Si se define, se usa en el campo de servicio de
grpc.health.v1.HealthCheckRequest
cuando se llama al RPCgrpc.health.v1.Health.Check
. - OPCIONAL: CONTAINER_PORT debe configurarse en el puerto del contenedor que se utilice en tu servicio.
- (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) 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) 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 para
periodSeconds
. Especifica un valor entre 1 y 3600.El valor predeterminado es 1. - (OPCIONAL) 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 3600 segundos. El valor predeterminado es 10 segundos.
YAML
Actividad de HTTP
-
Si va a crear un servicio, puede saltarse este paso. Si vas a actualizar un servicio, descarga su configuración YAML:
gcloud run services describe SERVICE --format export > service.yaml
Asegúrate de que tu servicio usa HTTP/1 (el valor predeterminado de Cloud Run) y no HTTP/2.
Configure el atributo
livenessProbe
como se indica a continuación:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: spec: containers: - image: IMAGE_URL livenessProbe: httpGet: path: PATH port: CONTAINER_PORT httpHeaders: - name: HEADER_NAME value: HEADER_VALUE initialDelaySeconds: DELAY timeoutSeconds: TIMEOUT failureThreshold: THRESHOLD periodSeconds: PERIOD
Sustituye:
- SERVICE con el nombre de tu servicio de Cloud Run.
- IMAGE_URL con una referencia a la imagen del contenedor, por ejemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si usas Artifact Registry, el repositorio REPO_NAME ya debe estar creado. La URL tiene el formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- PATH con la ruta relativa al endpoint HTTP. Por ejemplo,
/ready
. - OPCIONAL: CONTAINER_PORT debe configurarse en el puerto del contenedor que se utilice en tu servicio.
- (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) 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) Se puede usar
httpHeaders
para proporcionar varios encabezados personalizados o repetidos mediante los campos HEADER_NAME y HEADER_VALUE, tal como se muestra. - (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 para
periodSeconds
. Especifica un valor entre 1 y 3600.El valor predeterminado es 1. - (OPCIONAL) 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 3600 segundos. El valor predeterminado es 10 segundos.
-
Crea o actualiza el servicio con el siguiente comando:
gcloud run services replace service.yaml
Vivacidad de gRPC
Antes de usar las 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.
-
Si va a crear un servicio, puede saltarse este paso. Si vas a actualizar un servicio, descarga su configuración YAML:
gcloud run services describe SERVICE --format export > service.yaml
Configure el atributo
livenessProbe
como se indica a continuación:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: spec: containers: - image: IMAGE_URL livenessProbe: grpc: port: CONTAINER_PORT service: GRPC_SERVICE initialDelaySeconds: DELAY timeoutSeconds: TIMEOUT failureThreshold: THRESHOLD periodSeconds: PERIOD
Sustituir
- SERVICE con el nombre de tu servicio de Cloud Run.
- IMAGE_URL con una referencia a la imagen del contenedor, por ejemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si usas Artifact Registry, el repositorio REPO_NAME ya debe estar creado. La URL tiene el formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- (OPCIONAL) GRPC_SERVICE. Si se define, se usa en el campo de servicio de
grpc.health.v1.HealthCheckRequest
cuando se llama al RPCgrpc.health.v1.Health.Check
. - OPCIONAL: CONTAINER_PORT debe configurarse en el puerto del contenedor que se utilice en tu servicio.
- (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) 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) 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 para
periodSeconds
. Especifica un valor entre 1 y 3600.El valor predeterminado es 1. - (OPCIONAL) 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 3600 segundos. El valor predeterminado es 10 segundos.
-
Crea o actualiza el servicio con el siguiente comando:
gcloud run services replace service.yaml
Terraform
Para saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.
Actividad de HTTP
Asegúrate de que tu servicio usa HTTP/1 (el valor predeterminado de Cloud Run) y no HTTP/2.
Configura tu servicio de Cloud Run con el atributo liveness_probe
como se muestra a continuación:
Vivacidad de gRPC
Antes de usar las 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.
Configura tu servicio de Cloud Run con el atributo liveness_probe
como se muestra a continuación:
Requisitos y comportamiento de la comprobación de actividad
Tipo de sonda | Requisitos | Comportamiento |
---|---|---|
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 del estado del servicio (por ejemplo, /health ). Cualquier respuesta 2XX o 3XX indica que la operación se ha completado correctamente. Cualquier otra respuesta indica que ha fallado.Si una sonda de vivacidad no se completa correctamente en el tiempo especificado ( failureThreshold * periodSeconds ), el contenedor se cierra 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 . Una vez que se ha cerrado el contenedor, el ajuste de escala automático de Cloud Run inicia una nueva instancia del contenedor. |
Vivacidad de gRPC | Implementa el protocolo de comprobación de estado de gRPC en tu servicio 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 del estado al servicio. Si una sonda de vivacidad no se completa correctamente en el tiempo especificado ( failureThreshold * periodSeconds ), el contenedor se cierra mediante una señal SIGKILL . Una vez que se ha cerrado el contenedor, el ajuste de escala automático de Cloud Run inicia una nueva instancia del contenedor. |
Crear endpoints de comprobación del estado HTTP
Si configura su servicio de Cloud Run para una sonda de inicio HTTP, debe añadir un endpoint en el código de su servicio para responder a la sonda. El endpoint puede tener el nombre que quieras, por ejemplo, /startup
o /ready
, pero debe coincidir con los valores que especifiques para path
en la configuración de la sonda, como se indica a continuación:
startupProbe: httpGet: path: /ready
Si configuras tu servicio de Cloud Run para una sonda de actividad HTTP con una ruta como /health
, la defines en la configuración de la sonda de la siguiente manera:
livenessProbe: httpGet: path: /health
Se puede acceder a los endpoints de comprobación de estado HTTP desde fuera y siguen los mismos principios que cualquier otro endpoint de servicio HTTP expuesto externamente.
Asignación de CPU
- La CPU siempre se asigna cuando se ejecutan las sondas.
- Todas las sondas se facturan por el consumo de uso de CPU y memoria, pero no se aplican cargos basados en solicitudes.