Configurar comprobaciones del estado de los contenedores de los servicios

Las comprobaciones de estado de Cloud Run se aseguran de que tus instancias de contenedor se ejecuten correctamente y puedan servir 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

Puede configurar los siguientes tipos de sondas de comprobación de estado:

  • Las comprobaciones de inicio determinan si el contenedor se ha iniciado y está listo para aceptar tráfico.

    • Cuando configuras una comprobación de inicio, las comprobaciones de vivacidad y preparación se inhabilitan hasta que la comprobación 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 comprobaciones 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 individuales 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 las comprobaciones, Cloud Run limita los reinicios de instancias para evitar bucles de fallos incontrolados.
  • Comprobaciones de preparación (vista previa)

    Las sondas de disponibilidad determinan cuándo debe servir tráfico una instancia de tu servicio de Cloud Run. Las comprobaciones de disponibilidad empiezan después de que la sonda de inicio del contenedor se haya completado correctamente. Si una instancia no supera su prueba de disponibilidad más allá del valor de umbral de fallos que configures, Cloud Run dejará de enviarle tráfico nuevo. Cloud Run no finaliza la instancia y envía el tráfico de vuelta a la instancia cuando empieza a superar de nuevo su sonda de disponibilidad.

Configurar sondas de inicio

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, YAML o Terraform:

Consola

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

    Ir a Cloud Run

  2. En el caso de un servicio nuevo, despliega Contenedores, volúmenes, redes y seguridad para ver las opciones de comprobación del 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.

  3. 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.

  4. En el menú Seleccionar tipo de comprobación del estado, selecciona Comprobación de inicio.

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

  6. La configuración de la sonda varía en función del tipo de sonda. Configura los ajustes de la sonda:

    • Si usas comprobaciones HTTP:

      • Añade un endpoint HTTP/1 (el predeterminado de Cloud Run, no HTTP/2) en el código de tu servicio para responder a la comprobación. El nombre del endpoint (por ejemplo, /startup, /health o /are_you_ready) debe coincidir con el path de la configuración de la sonda. Los endpoints de comprobación del estado HTTP son accesibles externamente y siguen los mismos principios que cualquier otro endpoint de servicio HTTP expuesto externamente.

      • 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:

    • En Puerto, especifica el puerto del contenedor que se usa en tu servicio.

    • En Retraso inicial, especifique 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 debe 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.

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

  8. Haz clic en Crear o en Implementar.

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

Haz los cambios siguientes:

  • SERVICE: el nombre de tu servicio de Cloud Run.
  • IMAGE_URL: 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 formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • Opcional. CONTAINER_PORT: el puerto del contenedor que se usa en tu servicio.
  • DELAY: 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: número de segundos que se espera hasta que se agote el tiempo de espera de la petición. Este valor no puede superar el valor especificado para periodSeconds. Especifica un valor entre 1 y 240. El valor predeterminado es 1.
  • THRESHOLD: número de veces que se debe reintentar la comprobación antes de cerrar el contenedor. El valor predeterminado es 3.
  • PERIOD: 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

Añade un endpoint HTTP/1 (el predeterminado de Cloud Run, no HTTP/2) en el código de tu servicio para responder a la sonda. El nombre del endpoint (por ejemplo, /startup, /health o /are_you_ready) debe coincidir con el path de la configuración de la sonda. Los endpoints de comprobación del estado HTTP son accesibles externamente y siguen los mismos principios que cualquier otro endpoint de servicio HTTP expuesto externamente.

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

Haz los cambios siguientes:

  • SERVICE: el nombre de tu servicio de Cloud Run.
  • IMAGE_URL: 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 formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • PATH: una ruta relativa al endpoint HTTP. Por ejemplo, /health.
  • Opcional. CONTAINER_PORT: se asigna al puerto del contenedor que se usa en tu servicio.
  • Opcional. DELAY: 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: número de veces que se debe reintentar la comprobación antes de cerrar el contenedor. El valor predeterminado es 3.
  • Opcional. TIMEOUT: 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: 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

Asegúrate de que tu imagen de contenedor implemente el protocolo de comprobación de 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

Haz los cambios siguientes:

  • SERVICE: el nombre de tu servicio de Cloud Run.
  • IMAGE_URL: 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 formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • Opcional. GRPC_SERVICE: si se define, se usa en el campo service de grpc.health.v1.HealthCheckRequest cuando se llama al RPC grpc.health.v1.Health.Check.
  • Opcional. CONTAINER_PORT: el puerto del contenedor que se usa en tu servicio.
  • Opcional. DELAY: 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: número de veces que se debe reintentar la comprobación antes de cerrar el contenedor. El valor predeterminado es 3.
  • Opcional. TIMEOUT: 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: 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

  1. Si va a crear un servicio, puede saltarse este paso. Si va a actualizar un servicio, descargue su configuración YAML:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Configure el atributo startupProbe como se muestra 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

    Haz los cambios siguientes:

    • SERVICE: el nombre de tu servicio de Cloud Run.
    • IMAGE_URL: 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 formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • Opcional. CONTAINER_PORT: el puerto del contenedor que se usa en tu servicio.
    • DELAY: 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: número de segundos que se espera hasta que se agote el tiempo de espera de la petición. Este valor no puede superar el valor especificado para periodSeconds. Especifica un valor entre 1 y 240. El valor predeterminado es 1.
    • THRESHOLD: número de veces que se debe reintentar la comprobación antes de cerrar el contenedor. El valor predeterminado es 3.
    • PERIOD: 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 servicio con el siguiente comando:
    gcloud run services replace service.yaml

Inicio de HTTP

Añade un endpoint HTTP/1 (el predeterminado de Cloud Run, no HTTP/2) en el código de tu servicio para responder a la sonda. El nombre del endpoint (por ejemplo, /startup, /health o /are_you_ready) debe coincidir con el path de la configuración de la sonda. Los endpoints de comprobación del estado HTTP son accesibles externamente y siguen los mismos principios que cualquier otro endpoint de servicio HTTP expuesto externamente.

  1. Si va a crear un servicio, puede saltarse este paso. Si va a actualizar un servicio, descargue su configuración YAML:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Configure el atributo startupProbe como se muestra 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

    Haz los cambios siguientes:

    • SERVICE: el nombre de tu servicio de Cloud Run.
    • IMAGE_URL: 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 formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • PATH: una ruta relativa al endpoint HTTP. Por ejemplo, /health.
    • Opcional. CONTAINER_PORT: se asigna al puerto del contenedor que se usa en tu servicio.
    • Opcional. DELAY: 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: número de veces que se debe reintentar la comprobación antes de cerrar el contenedor. El valor predeterminado es 3.
    • 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. TIMEOUT: 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: 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 servicio con el siguiente comando:
    gcloud run services replace service.yaml

Inicio de gRPC

Asegúrate de que tu imagen de contenedor implemente el protocolo de comprobación de estado de gRPC.

  1. 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
  2. Configure el atributo startupProbe como se muestra 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

    Haz los cambios siguientes:

    • SERVICE: el nombre de tu servicio de Cloud Run.
    • IMAGE_URL: 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 formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • Opcional. GRPC_SERVICE: si se define, se usa en el campo service de grpc.health.v1.HealthCheckRequest cuando se llama al RPC grpc.health.v1.Health.Check.
    • Opcional. CONTAINER_PORT: el puerto del contenedor que se usa en tu servicio.
    • Opcional. DELAY: 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: número de veces que se debe reintentar la comprobación antes de cerrar el contenedor. El valor predeterminado es 3.
    • Opcional. TIMEOUT: 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: 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 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:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-healthcheck"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"

      startup_probe {
        failure_threshold     = 5
        initial_delay_seconds = 10
        timeout_seconds       = 3
        period_seconds        = 3

        tcp_socket {
          port = 8080
        }
      }
    }
  }
}

Inicio de HTTP

Añade un endpoint HTTP/1 (el predeterminado de Cloud Run, no HTTP/2) en el código de tu servicio para responder a la sonda. El nombre del endpoint (por ejemplo, /startup, /health o /are_you_ready) debe coincidir con el path de la configuración de la sonda. Los endpoints de comprobación del estado HTTP son accesibles externamente y siguen los mismos principios que cualquier otro endpoint de servicio HTTP expuesto externamente.

Configura tu servicio de Cloud Run con el atributo startup_probe como se muestra a continuación:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-healthcheck"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"

      startup_probe {
        failure_threshold     = 5
        initial_delay_seconds = 10
        timeout_seconds       = 3
        period_seconds        = 3

        http_get {
          path = "/"
          # Custom headers to set in the request
          # https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/cloud_run_v2_service#http_headers
          http_headers {
            name  = "Access-Control-Allow-Origin"
            value = "*"
          }
        }
      }
    }
  }
}

Inicio de gRPC

Asegúrate de que tu imagen de contenedor implemente el protocolo de comprobación de estado de gRPC.

Configura tu servicio de Cloud Run con el atributo startup_probe como se muestra a continuación:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-healthcheck"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      # Note: Change to the name of your image
      image = "us-docker.pkg.dev/cloudrun/container/hello"

      startup_probe {
        failure_threshold     = 5
        initial_delay_seconds = 10
        timeout_seconds       = 3
        period_seconds        = 3

        grpc {
          # Note: Change to the name of your pre-existing grpc health status service
          service = "grpc.health.v1.Health"
        }
      }
    }
  }
}

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, indica un fallo.

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 de HTTP
Usa HTTP/1
Después de configurar la comprobación, Cloud Run envía una solicitud HTTP GET al endpoint de comprobación de estado (por ejemplo, /health). Cualquier respuesta 2XX o 3XX indica que la comprobación se ha realizado correctamente. Cualquier otra respuesta indica que ha fallado.

Si una comprobación de inicio no se realiza correctamente en el tiempo especificado (failureThreshold * periodSeconds), que no puede superar los 240 segundos, el contenedor se cierra.

Si la comprobación de inicio HTTP se realiza correctamente en el tiempo especificado y has configurado una comprobación de vivacidad HTTP, se inicia la comprobación 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 tiempo especificado (failureThreshold * periodSeconds), que no puede superar los 240 segundos, el contenedor se cierra.

Configurar comprobaciones de actividad

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 las sondas HTTP y gRPC mediante la Google Cloud consola, YAML o Terraform:

Consola

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

    Ir a Cloud Run

  2. 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.

  3. 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.

  4. En el menú Seleccionar tipo de comprobación del estado, selecciona Comprobación de actividad.

  5. 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.

  6. La configuración de la sonda varía en función del tipo de sonda. Configura los ajustes de la sonda:

    • Si usas comprobaciones HTTP:

      • Añade un endpoint HTTP/1 (el predeterminado de Cloud Run, no HTTP/2) en el código de tu servicio para responder a la comprobación. El nombre del endpoint (por ejemplo, /startup, /health o /are_you_ready) debe coincidir con el path de la configuración de la sonda. Los endpoints de comprobación del estado HTTP son accesibles externamente y siguen los mismos principios que cualquier otro endpoint de servicio HTTP expuesto externamente.

      • 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:

    • En Puerto, especifica el puerto del contenedor que se usa en tu servicio.

    • En Retraso inicial, especifique 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 entre 1 y 3600 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 3600. El valor predeterminado es 1.

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

  8. Haz clic en Crear o en Implementar.

gcloud

Actividad de HTTP

Añade un endpoint HTTP/1 (el predeterminado de Cloud Run, no HTTP/2) en el código de tu servicio para responder a la comprobación. El nombre del endpoint (por ejemplo, /startup, /health o /are_you_ready) debe coincidir con el path de la configuración de la sonda. Los endpoints de comprobación del estado HTTP son accesibles externamente y siguen los mismos principios que cualquier otro endpoint de servicio HTTP expuesto externamente.

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

Haz los cambios siguientes:

  • SERVICE: el nombre de tu servicio de Cloud Run.
  • IMAGE_URL: 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 formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • PATH: una ruta relativa al endpoint HTTP. Por ejemplo, /health.
  • Opcional. CONTAINER_PORT: se asigna al puerto del contenedor que se usa en tu servicio.
  • Opcional. DELAY: 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: número de veces que se debe reintentar la comprobación antes de cerrar el contenedor. El valor predeterminado es 3.
  • Opcional. TIMEOUT: número de segundos que se espera hasta que se agota 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: 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

Asegúrate de que tu imagen de contenedor implemente el protocolo de comprobación de 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

Haz los cambios siguientes:

  • SERVICE: el nombre de tu servicio de Cloud Run.
  • IMAGE_URL: 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 formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • Opcional. GRPC_SERVICE: si se define, se usa en el campo service de grpc.health.v1.HealthCheckRequest cuando se llama al RPC grpc.health.v1.Health.Check.
  • Opcional. CONTAINER_PORT: el puerto del contenedor que se usa en tu servicio.
  • Opcional. DELAY: 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: número de veces que se debe reintentar la comprobación antes de cerrar el contenedor. El valor predeterminado es 3.
  • Opcional. TIMEOUT: número de segundos que se espera hasta que se agota 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: 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

Añade un endpoint HTTP/1 (el predeterminado de Cloud Run, no HTTP/2) en el código de tu servicio para responder a la comprobación. El nombre del endpoint (por ejemplo, /startup, /health o /are_you_ready) debe coincidir con el path de la configuración de la sonda. Los endpoints de comprobación del estado HTTP son accesibles externamente y siguen los mismos principios que cualquier otro endpoint de servicio HTTP expuesto externamente.

  1. 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
  2. Configure el atributo livenessProbe como se muestra 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

    Haz los cambios siguientes:

    • SERVICE: el nombre de tu servicio de Cloud Run.
    • IMAGE_URL: 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 formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • PATH: una ruta relativa al endpoint HTTP. Por ejemplo, /health.
    • Opcional. CONTAINER_PORT: se asigna al puerto del contenedor que se usa en tu servicio.
    • Opcional. DELAY: 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: número de veces que se debe reintentar la comprobación antes de cerrar el contenedor. El valor predeterminado es 3.
    • 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. TIMEOUT: número de segundos que se espera 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: 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.
  3. Crea o actualiza el servicio con el siguiente comando:
    gcloud run services replace service.yaml

Vivacidad de gRPC

Asegúrate de que tu imagen de contenedor implemente el protocolo de comprobación de estado de gRPC.

  1. 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
  2. Configure el atributo livenessProbe como se muestra 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

    Haz los cambios siguientes:

    • SERVICE: el nombre de tu servicio de Cloud Run.
    • IMAGE_URL: 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 formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • Opcional. GRPC_SERVICE: si se define, se usa en el campo service de grpc.health.v1.HealthCheckRequest cuando se llama al RPC grpc.health.v1.Health.Check.
    • Opcional. CONTAINER_PORT: el puerto del contenedor que se usa en tu servicio.
    • Opcional. DELAY: 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: número de veces que se debe reintentar la comprobación antes de cerrar el contenedor. El valor predeterminado es 3.
    • Opcional. TIMEOUT: número de segundos que se espera hasta que se agota 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: 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.

  3. 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

Añade un endpoint HTTP/1 (el predeterminado de Cloud Run, no HTTP/2) en el código de tu servicio para responder a la sonda. El nombre del endpoint (por ejemplo, /startup, /health o /are_you_ready) debe coincidir con el path de la configuración de la sonda. Los endpoints de comprobación del estado HTTP son accesibles externamente y siguen los mismos principios que cualquier otro endpoint de servicio HTTP expuesto externamente.

Configura tu servicio de Cloud Run con el atributo liveness_probe como se muestra a continuación:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-healthcheck"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"

      liveness_probe {
        failure_threshold     = 5
        initial_delay_seconds = 10
        timeout_seconds       = 3
        period_seconds        = 3

        http_get {
          path = "/"
          # Custom headers to set in the request
          # https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/cloud_run_v2_service#http_headers
          http_headers {
            name  = "Access-Control-Allow-Origin"
            value = "*"
          }
        }
      }
    }
  }
}

Vivacidad de gRPC

Asegúrate de que tu imagen de contenedor implemente el protocolo de comprobación de estado de gRPC.

Configura tu servicio de Cloud Run con el atributo liveness_probe como se muestra a continuación:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-healthcheck"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      # Note: Change to the name of your image
      image = "us-docker.pkg.dev/cloudrun/container/hello"

      liveness_probe {
        failure_threshold     = 5
        initial_delay_seconds = 10
        timeout_seconds       = 3
        period_seconds        = 3

        # Note: Change to the name of your pre-existing grpc health status service
        grpc {
          service = "grpc.health.v1.Health"
        }
      }
    }
  }
}

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 de 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 comprobación y de que se complete correctamente cualquier comprobación de inicio, Cloud Run envía una solicitud HTTP GET al endpoint de comprobación de estado (por ejemplo, /health). Cualquier respuesta 2XX o 3XX indica que la comprobación se ha completado correctamente. Cualquier otra respuesta indica que ha fallado.

Si una comprobación 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 terminan con el código de estado HTTP 503. Una vez que se ha cerrado el contenedor, el escalado 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 que se haya configurado la sonda de vivacidad y se haya completado correctamente cualquier sonda de inicio, Cloud Run enviará una solicitud de comprobación de estado al servicio.

Si una sonda de vivacidad no se completa correctamente en el tiempo especificado (failureThreshold * periodSeconds), el contenedor se cerrará mediante una señal SIGKILL. Una vez que se ha cerrado el contenedor, el escalado automático de Cloud Run inicia una nueva instancia del contenedor.

Configurar comprobaciones de preparación

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.

Se aplican las siguientes limitaciones a las sondas de disponibilidad:

  • Si habilitas la afinidad de sesión, Cloud Run seguirá enviando solicitudes a la misma instancia, aunque su comprobación de disponibilidad falle.

  • Cloud Run puede enviar solicitudes a una instancia recién iniciada antes de que se complete la comprobación de disponibilidad por primera vez.

  • Si has configurado una sonda de disponibilidad para tu servicio de Cloud Run con la API Cloud Run Admin v1 antes de noviembre del 2025, las comprobaciones de disponibilidad no se aplicarán aunque despliegues una nueva configuración para ese servicio. Esto ocurre porque el servicio conserva una configuración anterior. Los servicios que crees después de noviembre del 2025 o los que nunca hayan usado una sonda de disponibilidad no se verán afectados. Para habilitar las sondas de disponibilidad admitidas en los servicios afectados, haga lo siguiente:

    1. Despliega una nueva revisión que elimine la definición de la sonda de preparación anterior.

    2. Despliega otra revisión nueva que añada la definición de la sonda de preparación pertinente.

    Estos pasos borran cualquier configuración anterior y habilitan la funcionalidad de la sonda de disponibilidad.

Puedes configurar una sonda de disponibilidad mediante la Google Cloud consola, la CLI de Google Cloud o YAML:

Consola

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

    Ir a Cloud Run

  2. En el caso de un servicio nuevo, despliega Contenedores, volúmenes, redes y seguridad para ver las opciones de comprobación del 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.

  3. 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.

  4. En el menú Seleccionar tipo de comprobación del estado, selecciona Comprobación de la disponibilidad.

  5. 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.

  6. La configuración de la sonda varía en función del tipo de sonda. Configura los ajustes de la sonda:

    • Si usas comprobaciones HTTP:

      • Añade un endpoint HTTP/1 (el predeterminado de Cloud Run, no HTTP/2) en el código de tu servicio para responder a la sonda. El nombre del endpoint (por ejemplo, /startup, /health o /are_you_ready) debe coincidir con el path de la configuración de la sonda. Los endpoints de comprobación del estado HTTP son accesibles externamente y siguen los mismos principios que cualquier otro endpoint de servicio HTTP expuesto externamente.

      • Usa el campo Ruta para especificar la ruta relativa al endpoint, por ejemplo, /are_you_ready. La ruta predeterminada es /.

    • Si usas sondas gRPC:

    • En Puerto, especifica el puerto del contenedor de tu servicio. El puerto predeterminado es el puerto de entrada principal.

    • En Period (Periodo), especifica 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 300. El valor predeterminado es 10 segundos.

    • En Umbral de éxitos, especifique el número mínimo de éxitos consecutivos para que la prueba se considere correcta después de un fallo. El valor predeterminado es 2.

    • En Umbral de fallos, especifica el número de veces que se debe reintentar la prueba antes de informar de un fallo, lo que provoca que la instancia deje de recibir tráfico. 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 300. El valor predeterminado es 1.

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

  8. Haz clic en Crear o en Implementar.

gcloud

Estado de preparación de HTTP

Añade un endpoint HTTP/1 (el predeterminado de Cloud Run, no HTTP/2) en el código de tu servicio para responder a la sonda. El nombre del endpoint (por ejemplo, /startup, /health o /are_you_ready) debe coincidir con el path de la configuración de la sonda. Los endpoints de comprobación del estado HTTP son accesibles externamente y siguen los mismos principios que cualquier otro endpoint de servicio HTTP expuesto externamente.

Ejecuta el siguiente comando:

gcloud beta run deploy SERVICE \
    --image=IMAGE_URL \
    --readiness-probe httpGet.path=PATH,httpGet.port=CONTAINER_PORT,successThreshold=SUCCESS_THRESHOLD,failureThreshold=FAILURE_THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD

Haz los cambios siguientes:

  • SERVICE: el nombre de tu servicio de Cloud Run.
  • IMAGE_URL: 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 formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • Opcional. PATH: la ruta relativa al endpoint HTTP. Por ejemplo, /are_you_ready. La ruta predeterminada es /.
  • Opcional. CONTAINER_PORT: el puerto del contenedor que se usa para tu servicio. El puerto predeterminado es el puerto de entrada principal.
  • Opcional. SUCCESS_THRESHOLD: número mínimo de éxitos consecutivos para que la prueba se considere correcta después de un fallo. El valor predeterminado es 2.
  • Opcional. FAILURE_THRESHOLD: número de veces que se reintenta la prueba antes de informar de un fallo, lo que provoca que la instancia deje de recibir tráfico. y el predeterminado es 3.
  • Opcional. TIMEOUT: número de segundos que se espera hasta que se agota el tiempo de espera de la comprobación. Este valor no puede superar el valor especificado para periodSeconds. Especifica un valor entre 1 y 300. El valor predeterminado es 1.
  • Opcional. PERIOD: 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 300. El valor predeterminado es 10 segundos.

Preparación para gRPC

Asegúrate de que tu imagen de contenedor implemente el protocolo de comprobación de estado de gRPC.

Ejecuta el siguiente comando:

gcloud beta run deploy SERVICE \
    --image=IMAGE_URL \
    --readiness-probe grpc.port=CONTAINER_PORT,grpc.service=GRPC_SERVICE,successThreshold=SUCCESS_THRESHOLD,failureThreshold=FAILURE_THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD

Haz los cambios siguientes:

  • SERVICE: el nombre de tu servicio de Cloud Run.
  • IMAGE_URL: 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 formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • Opcional. CONTAINER_PORT: el puerto del contenedor que se usa para tu servicio. El puerto predeterminado es el puerto de entrada principal.
  • Opcional. GRPC_SERVICE: si se define, se usa en el campo service de grpc.health.v1.HealthCheckRequest cuando se llama al RPC grpc.health.v1.Health.Check.
  • Opcional. SUCCESS_THRESHOLD: número mínimo de éxitos consecutivos para que la prueba se considere correcta después de un fallo. El valor predeterminado es 2.
  • Opcional. FAILURE_THRESHOLD: número de veces que se reintenta la prueba antes de informar de un fallo, lo que provoca que la instancia deje de recibir tráfico. y el predeterminado es 3.
  • Opcional. TIMEOUT: número de segundos que se espera hasta que se agota el tiempo de espera de la comprobación. Este valor no puede superar el valor especificado para periodSeconds. Especifica un valor entre 1 y 300. El valor predeterminado es 1.
  • Opcional. PERIOD: 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 300. El valor predeterminado es 10 segundos.

YAML

Estado de preparación de HTTP

Añade un endpoint HTTP/1 (el predeterminado de Cloud Run, no HTTP/2) en el código de tu servicio para responder a la comprobación. El nombre del endpoint (por ejemplo, /startup, /health o /are_you_ready) debe coincidir con el path de la configuración de la sonda. Los endpoints de comprobación del estado HTTP son accesibles externamente y siguen los mismos principios que cualquier otro endpoint de servicio HTTP expuesto externamente.

  1. Si va a crear un servicio, puede saltarse este paso. Si va a actualizar un servicio, descargue su configuración YAML:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Configure el atributo readinessProbe como se muestra a continuación:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      template:
        metadata:
        spec:
          containers:
          - image: IMAGE_URL
            readinessProbe:
              httpGet:
                path: PATH
                port: CONTAINER_PORT
              successThreshold: SUCCESS_THRESHOLD
              failureThreshold: FAILURE_THRESHOLD
              timeoutSeconds: TIMEOUT
              periodSeconds: PERIOD

    Haz los cambios siguientes:

    • SERVICE: el nombre de tu servicio de Cloud Run.
    • IMAGE_URL: 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 formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • Opcional. PATH: la ruta relativa al endpoint HTTP. Por ejemplo, /are_you_ready. La ruta predeterminada es /.
    • Opcional. CONTAINER_PORT: el puerto del contenedor que se usa para tu servicio. El puerto predeterminado es el puerto de entrada principal.
    • Opcional. SUCCESS_THRESHOLD: número mínimo de éxitos consecutivos para que la prueba se considere correcta después de un fallo. El valor predeterminado es 2.
    • Opcional. FAILURE_THRESHOLD: número de veces que se reintenta la prueba antes de informar de un fallo, lo que provoca que la instancia deje de recibir tráfico. y el predeterminado es 3.
    • Opcional. TIMEOUT: número de segundos que se espera hasta que se agota el tiempo de espera de la comprobación. Este valor no puede superar el valor especificado para periodSeconds. Especifica un valor entre 1 y 300. El valor predeterminado es 1.
    • Opcional. PERIOD: 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 300. El valor predeterminado es 10 segundos.

  3. Crea o actualiza el servicio con el siguiente comando:
    gcloud run services replace service.yaml

Preparación para gRPC

Asegúrate de que tu imagen de contenedor implemente el protocolo de comprobación de estado de gRPC.

  1. 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
  2. Configure el atributo readinessProbe como se muestra a continuación:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      template:
        metadata:
        spec:
          containers:
          - image: IMAGE_URL
            readinessProbe:
              grpc:
                port: CONTAINER_PORT
                service: GRPC_SERVICE
              successThreshold: SUCCESS_THRESHOLD
              failureThreshold: FAILURE_THRESHOLD
              timeoutSeconds: TIMEOUT
              periodSeconds: PERIOD

    Haz los cambios siguientes:

    • SERVICE: el nombre de tu servicio de Cloud Run.
    • IMAGE_URL: 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 formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • Opcional. CONTAINER_PORT: el puerto del contenedor que se usa para tu servicio. El puerto predeterminado es el puerto de entrada principal.
    • Opcional. GRPC_SERVICE: si se define, se usa en el campo service de grpc.health.v1.HealthCheckRequest cuando se llama al RPC grpc.health.v1.Health.Check.
    • Opcional. SUCCESS_THRESHOLD: número mínimo de éxitos consecutivos para que la prueba se considere correcta después de un fallo. El valor predeterminado es 2.
    • Opcional. FAILURE_THRESHOLD: número de veces que se reintenta la prueba antes de informar de un fallo, lo que provoca que la instancia deje de recibir tráfico. y el predeterminado es 3.
    • Opcional. TIMEOUT: número de segundos que se espera hasta que se agota el tiempo de espera de la comprobación. Este valor no puede superar el valor especificado para periodSeconds. Especifica un valor entre 1 y 300. El valor predeterminado es 1.
    • Opcional. PERIOD: 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 300. El valor predeterminado es 10 segundos.

  3. Crea o actualiza el servicio con el siguiente comando:
    gcloud run services replace service.yaml

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.

Siguientes pasos