Configura las verificaciones de estado de contenedores para los servicios

Las verificaciones de estado de Cloud Run garantizan que tus instancias de contenedor se ejecuten correctamente y puedan entregar tráfico. Con las verificaciones de estado de Cloud Run, puedes personalizar el momento en que tu contenedor está listo para recibir solicitudes y el momento en que se debe considerar que tu contenedor está en mal estado para requerir un reinicio.

Casos de uso

Puedes configurar los siguientes tipos de sondeos de verificación de estado:

  • Los sondeos de inicio determinan si el contenedor se inició y está listo para aceptar tráfico.

    • Cuando configuras un sondeo de inicio, las verificaciones de funcionamiento y preparación se inhabilitan hasta que el sondeo de inicio determina que el contenedor se inició para evitar interferencias en el inicio del servicio.
    • Los sondeos de inicio son útiles en especial si usas verificaciones en funcionamiento en contenedores de inicio lento, ya que evitan que se cierren prematuramente antes de que los contenedores estén en funcionamiento.
  • Los sondeos de funcionamiento determinan si el contenedor se debe reiniciar.

    • En este caso, reiniciar un contenedor puede aumentar la disponibilidad del servicio en caso de errores.
    • Los sondeos de funcionamiento están diseñados para reiniciar instancias individuales que no se pueden recuperar de ninguna otra manera. Se deben usar en particular para fallas de instancias irrecuperables, por ejemplo, para detectar un interbloqueo en el que se ejecuta un servicio, pero no puede avanzar. Puedes solicitar un sondeo de funcionamiento para cada contenedor con políticas de la organización personalizadas.
    • Cuando un servicio experimenta fallas repetidas de sondeo, Cloud Run limita los reinicios de las instancias para evitar bucles de fallas no controlados.
  • Sondeos de preparación (versión preliminar)

    Los sondeos de preparación determinan cuándo una instancia de tu servicio de Cloud Run debe entregar tráfico. Las verificaciones de preparación comienzan después de que el sondeo de inicio del contenedor se realiza correctamente. Si una instancia no supera su sondeo de disponibilidad más allá del valor del umbral de fallas que configures, Cloud Run dejará de enviarle tráfico nuevo. Cloud Run no finaliza la instancia y le envía tráfico cuando esta comienza a pasar su sondeo de disponibilidad nuevamente.

Configura sondeos de inicio

Cualquier cambio en la configuración conlleva la creación de una revisión nueva. Las revisiones posteriores también adoptarán esta configuración de manera automática, a menos que realices actualizaciones explícitas para cambiarla.

Puedes configurar sondeos de HTTP, TCP y gRPC con la Google Cloud consola, YAML o Terraform:

Console

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

    Ir a Cloud Run

  2. Para un servicio nuevo, expande Contenedores, volúmenes, Herramientas de redes y seguridad para mostrar las opciones de verificación de estado. En el servicio existente, haz clic en el servicio que quieras configurar y, luego, en Implementar y editar para ver las opciones de verificación de estado.

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

  4. En el menú Seleccionar el tipo de verificación de estado, selecciona Verificación de inicio.

  5. En el menú Seleccionar tipo de sondeo, selecciona el tipo de sondeo que quieras usar, por ejemplo, HTTP o gRPC. Se mostrará el formulario de configuración del sondeo.

  6. La configuración del sondeo varía según el tipo de sondeo. Establece la configuración del sondeo:

    • Si usas sondeos de HTTP, haz lo siguiente:

      • Agrega un extremo HTTP/1 (el valor predeterminado de Cloud Run, no HTTP/2) en el código de servicio para responder al sondeo. El nombre del extremo (por ejemplo, /startup, /health o /are_you_ready) debe coincidir con el path en la configuración del sondeo. Los extremos de verificación de estado de HTTP son accesibles de forma externa y siguen los mismos principios que cualquier otro extremo de servicio HTTP expuesto de forma externa.

      • Usa el campo Ruta de acceso para especificar la ruta de acceso relativa al extremo, por ejemplo, /.

      • Selecciona la casilla de verificación Encabezados HTTP para especificar encabezados personalizados opcionales. Especifica el nombre del encabezado en el campo Nombre y el valor del encabezado en el campo Valor. Haz clic en Agregar encabezado HTTP para especificar más encabezados.

    • Si usas sondeos de gRPC, haz lo siguiente:

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

    • En Retraso inicial, especifica la cantidad de segundos que se espera después de que el contenedor se inició antes de realizar el primer sondeo. Especifica un valor de 0 a 240 segundos. El valor predeterminado es 0 segundos.

    • En Período, especifica el período (en segundos) en el que se realizará el sondeo. Por ejemplo, 2 para realizar el sondeo cada 2 segundos. Especifica un valor de 1 a 240 segundos. El valor predeterminado es 10 segundos.

    • En Umbral de falla, especifica la cantidad de veces que se debe reintentar el sondeo antes de apagar el contenedor. El valor predeterminado es 3.

    • En Tiempo de espera, especifica la cantidad de segundos que se espera hasta que se agote el tiempo de espera del sondeo. Este valor no puede exceder el valor especificado para periodSeconds. Especifica un valor de 1 a 240. El valor predeterminado es 1.

  7. Haz clic en Agregar para agregar el umbral nuevo.

  8. Haz clic en Crear o Implementar.

gcloud

Inicio de TCP

Ejecuta el comando siguiente:

  gcloud run deploy SERVICE \
      --image=IMAGE_URL \
      --startup-probe tcpSocket.port=CONTAINER_PORT,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD

Reemplaza lo siguiente:

  • 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.
  • Es opcional. CONTAINER_PORT: El puerto de contenedor que se usa para el servicio.
  • DELAY: Cantidad de segundos que se espera después de que el contenedor se inició antes de realizar el primer sondeo. Especifica un valor de 0 a 240 segundos. El valor predeterminado es 0 segundos.
  • Es opcional. TIMEOUT: Es la cantidad de segundos que se espera hasta que se agote el tiempo de espera del sondeo. Este valor no puede exceder el valor especificado para periodSeconds. Especifica un valor de 1 a 240. El valor predeterminado es 1.
  • THRESHOLD: Es la cantidad de veces que se debe reintentar el sondeo antes de apagar el contenedor. El valor predeterminado es 3.
  • PERIOD: Es el período (en segundos) en el que se realizará el sondeo. Por ejemplo, 2 para realizar el sondeo cada 2 segundos. Especifica un valor de 1 segundo a 240 segundos. El valor predeterminado es 10 segundos.

Inicio de HTTP

Agrega un extremo HTTP/1 (el valor predeterminado de Cloud Run, no HTTP/2) en el código de servicio para responder al sondeo. El nombre del extremo (por ejemplo, /startup, /health o /are_you_ready) debe coincidir con el path en la configuración del sondeo. Los extremos de verificación de estado de HTTP son accesibles de forma externa y siguen los mismos principios que cualquier otro extremo de servicio HTTP expuesto de forma externa.

Ejecuta el comando siguiente:

  gcloud run deploy SERVICE \
      --image=IMAGE_URL \
      --startup-probe httpGet.path=PATH,httpGet.port=CONTAINER_PORT,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD

Reemplaza lo siguiente:

  • 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: Es una ruta relativa al extremo HTTP, por ejemplo, /health.
  • Es opcional. CONTAINER_PORT: Se configura como el puerto del contenedor que se usa para el servicio.
  • Es opcional. DELAY: Es la cantidad de segundos que se espera después de que el contenedor se inició antes de realizar el primer sondeo. Especifica un valor de 0 segundos a 240 segundos. El valor predeterminado es 0 segundos.
  • Es opcional. THRESHOLD: Es la cantidad de veces que se debe reintentar el sondeo antes de apagar el contenedor. El valor predeterminado es 3.
  • Es opcional. TIMEOUT: Es la cantidad de segundos que se espera hasta que se agote el tiempo de espera de la sonda. Este valor no puede exceder el valor especificado para periodSeconds. Especifica un valor de 1 a 240. El valor predeterminado es 1.
  • Es opcional. PERIOD: Es el período (en segundos) en el que se realizará el sondeo. Por ejemplo, 2 para realizar el sondeo cada 2 segundos. Especifica un valor de 1 segundo a 240 segundos. El valor predeterminado es 10 segundos.

Inicio de gRPC

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

Ejecuta el comando siguiente:

  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

Reemplaza lo siguiente:

  • 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.
  • Es opcional. GRPC_SERVICE: Si se configura, se usa en el campo de servicio de grpc.health.v1.HealthCheckRequest cuando se llama al RPC de grpc.health.v1.Health.Check.
  • Es opcional. CONTAINER_PORT: El puerto de contenedor que se usa para el servicio.
  • Es opcional. DELAY: Es la cantidad de segundos que se espera después de que el contenedor se inició antes de realizar el primer sondeo. Especifica un valor de 0 segundos a 240 segundos. El valor predeterminado es 0 segundos.
  • Es opcional. THRESHOLD: Es la cantidad de veces que se debe reintentar el sondeo antes de apagar el contenedor. El valor predeterminado es 3.
  • Es opcional. TIMEOUT: Es la cantidad de segundos que se espera hasta que se agote el tiempo de espera de la sonda. Este valor no puede exceder el valor especificado para periodSeconds. Especifica un valor de 1 a 240. El valor predeterminado es 1.
  • Es opcional. PERIOD: Es el período (en segundos) en el que se realizará el sondeo. Por ejemplo, 2 para realizar el sondeo cada 2 segundos. Especifica un valor de 1 segundo a 240 segundos. El valor predeterminado es 10 segundos.

YAML

Inicio de TCP

  1. Si creas un servicio nuevo, omite este paso. Si actualizas un servicio existente, descarga su configuración de YAML:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Configura 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

    Reemplaza lo siguiente:

    • 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.
    • Es opcional. CONTAINER_PORT: El puerto de contenedor que se usa para tu servicio.
    • DELAY: Cantidad de segundos que se espera después de que el contenedor se inició antes de realizar el primer sondeo. Especifica un valor de 0 a 240 segundos. El valor predeterminado es 0 segundos.
    • Es opcional. TIMEOUT: Es la cantidad de segundos que se espera hasta que se agote el tiempo de espera del sondeo. Este valor no puede exceder el valor especificado para periodSeconds. Especifica un valor de 1 a 240. El valor predeterminado es 1.
    • THRESHOLD: Es la cantidad de veces que se debe reintentar el sondeo antes de apagar el contenedor. El valor predeterminado es 3.
    • PERIOD: Es el período (en segundos) en el que se realizará el sondeo. Por ejemplo, 2 para realizar el sondeo cada 2 segundos. Especifica un valor de 1 segundo a 240 segundos. El valor predeterminado es 10 segundos.
  3. Crea o actualiza el servicio con el siguiente comando:
    gcloud run services replace service.yaml

Inicio de HTTP

Agrega un extremo HTTP/1 (el valor predeterminado de Cloud Run, no HTTP/2) en el código de servicio para responder al sondeo. El nombre del extremo (por ejemplo, /startup, /health o /are_you_ready) debe coincidir con el path en la configuración del sondeo. Los extremos de verificación de estado de HTTP son accesibles de forma externa y siguen los mismos principios que cualquier otro extremo de servicio HTTP expuesto de forma externa.

  1. Si creas un servicio nuevo, omite este paso. Si actualizas un servicio existente, descarga su configuración de YAML:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Configura 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

    Reemplaza lo siguiente:

    • 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: Es una ruta relativa al extremo HTTP, por ejemplo, /health.
    • Es opcional. CONTAINER_PORT: Se configura como el puerto del contenedor que se usa para el servicio.
    • Es opcional. DELAY: Es la cantidad de segundos que se espera después de que el contenedor se inició antes de realizar el primer sondeo. Especifica un valor de 0 segundos a 240 segundos. El valor predeterminado es 0 segundos.
    • Es opcional. THRESHOLD: Es la cantidad de veces que se debe reintentar el sondeo antes de apagar el contenedor. El valor predeterminado es 3.
    • Opcional: Se puede usar httpHeaders para proporcionar varios encabezados personalizados o repetidos con los campos HEADER_NAME y HEADER_VALUE, como se muestra.
    • Es opcional. TIMEOUT: Es la cantidad de segundos que se espera hasta que se agote el tiempo de espera de la sonda. Este valor no puede exceder el valor especificado para periodSeconds. Especifica un valor de 1 a 240. El valor predeterminado es 1.
    • Es opcional. PERIOD: Es el período (en segundos) en el que se realizará el sondeo. Por ejemplo, 2 para realizar el sondeo cada 2 segundos. Especifica un valor de 1 segundo a 240 segundos. El valor predeterminado es 10 segundos.
  3. Crea o actualiza el servicio con el siguiente comando:
    gcloud run services replace service.yaml

Inicio de gRPC

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

  1. Si creas un servicio nuevo, omite este paso. Si actualizas un servicio existente, descarga su configuración de YAML:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Configura 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

    Reemplaza lo siguiente:

    • 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.
    • Es opcional. GRPC_SERVICE: Si se configura, se usa en el campo de servicio de grpc.health.v1.HealthCheckRequest cuando se llama al RPC de grpc.health.v1.Health.Check.
    • Es opcional. CONTAINER_PORT: El puerto de contenedor que se usa para tu servicio.
    • Es opcional. DELAY: Es la cantidad de segundos que se espera después de que el contenedor se inició antes de realizar el primer sondeo. Especifica un valor de 0 segundos a 240 segundos. El valor predeterminado es 0 segundos.
    • Es opcional. THRESHOLD: Es la cantidad de veces que se debe reintentar el sondeo antes de apagar el contenedor. El valor predeterminado es 3.
    • Es opcional. TIMEOUT: Es la cantidad de segundos que se espera hasta que se agote el tiempo de espera de la sonda. Este valor no puede exceder el valor especificado para periodSeconds. Especifica un valor de 1 a 240. El valor predeterminado es 1.
    • Es opcional. PERIOD: Es el período (en segundos) en el que se realizará el sondeo. Por ejemplo, 2 para realizar el sondeo cada 2 segundos. Especifica un valor de 1 segundo a 240 segundos. El valor predeterminado es 10 segundos.
  3. Crea o actualiza el servicio con el siguiente comando:
    gcloud run services replace service.yaml

Terraform

Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.

Inicio de TCP

Configura el 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

Agrega un extremo HTTP/1 (el valor predeterminado de Cloud Run, no HTTP/2) en el código de servicio para responder al sondeo. El nombre del extremo (por ejemplo, /startup, /health o /are_you_ready) debe coincidir con el path en la configuración del sondeo. Los extremos de verificación de estado de HTTP son accesibles de forma externa y siguen los mismos principios que cualquier otro extremo de servicio HTTP expuesto de forma externa.

Configura el 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 verificación de estado de gRPC.

Configura el 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"
        }
      }
    }
  }
}

El sondeo de inicio de TCP predeterminado

Si no configuras de forma explícita un sondeo de inicio de TCP para un servicio de Cloud Run nuevo, Cloud Run configurará automáticamente un sondeo de inicio de TCP con los siguientes valores predeterminados:

startupProbe:
          timeoutSeconds: 240
          periodSeconds: 240
          failureThreshold: 1

Puedes cambiar estos valores predeterminados según las instrucciones de la sección Configuración de sondeo en esta página.

Requisitos y comportamiento del sondeo de inicio

Tipo de sondeo Requisitos Comportamiento
Inicio de TCP Ninguno De forma predeterminada, Cloud Run realiza una conexión TCP para abrir el socket TCP en el puerto especificado. Si Cloud Run no puede establecer una conexión, indica un error.

Si un sondeo de inicio no se realiza de forma correcta dentro del tiempo especificado (failureThreshold * periodSeconds), que no puede superar los 240 segundos, el contenedor se cierra. Consulta también Valores predeterminados de TCP.
Inicio de HTTP Crea un extremo de verificación de estado HTTP
Usa HTTP/1
Después de configurar el sondeo, Cloud Run realiza una solicitud HTTP GET al extremo de verificación de estado (por ejemplo, /health). Cualquier respuesta 2XX o 3XX es correcta, y todo lo demás indica un error.

Si un sondeo de inicio no se completa de forma correcta dentro del tiempo especificado (failureThreshold * periodSeconds), que no puede superar los 240 segundos, el contenedor se cierra.

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

Configura los sondeos de funcionamiento

Cualquier cambio en la configuración conlleva la creación de una revisión nueva. Las revisiones posteriores también adoptarán esta configuración de manera automática, a menos que realices actualizaciones explícitas para cambiarla.

Puedes configurar sondeos de HTTP y gRPC con la Google Cloud consola, YAML o Terraform:

Console

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

    Ir a Cloud Run

  2. Para un servicio nuevo, expande Contenedores, volúmenes, Herramientas de redes y seguridad para mostrar las opciones de verificación de estado. En el servicio existente, haz clic en el servicio que quieras configurar y, luego, en Implementar y editar para ver las opciones de verificación de estado.

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

  4. En el menú Seleccionar el tipo de verificación de estado, selecciona Verificación de funcionamiento.

  5. En el menú Seleccionar tipo de sondeo, selecciona el tipo de sondeo que quieras usar, por ejemplo, HTTP o gRPC. Se mostrará el formulario de configuración del sondeo.

  6. La configuración del sondeo varía según el tipo de sondeo. Establece la configuración del sondeo:

    • Si usas sondeos de HTTP, haz lo siguiente:

      • Agrega un extremo HTTP/1 (el valor predeterminado de Cloud Run, no HTTP/2) en el código de servicio para responder al sondeo. El nombre del extremo (por ejemplo, /startup, /health o /are_you_ready) debe coincidir con el path en la configuración del sondeo. Los extremos de verificación de estado de HTTP son accesibles de forma externa y siguen los mismos principios que cualquier otro extremo de servicio HTTP expuesto de forma externa.

      • Usa el campo Ruta de acceso para especificar la ruta de acceso relativa al extremo, por ejemplo, /.

      • Selecciona la casilla de verificación Encabezados HTTP para especificar encabezados personalizados opcionales. Especifica el nombre del encabezado en el campo Nombre y el valor del encabezado en el campo Valor. Haz clic en Agregar encabezado HTTP para especificar más encabezados.

    • Si usas sondeos de gRPC, haz lo siguiente:

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

    • En Retraso inicial, especifica la cantidad de segundos que se espera después de que el contenedor se inició antes de realizar el primer sondeo. Especifica un valor de 0 a 240 segundos. El valor predeterminado es 0 segundos.

    • En Período, especifica el período (en segundos) en el que se realizará el sondeo. Por ejemplo, 2 para realizar el sondeo cada 2 segundos. Especifica un valor de 1 segundo a 3,600 segundos. El valor predeterminado es 10 segundos.

    • En Umbral de falla, especifica la cantidad de veces que se debe reintentar el sondeo antes de apagar el contenedor. El valor predeterminado es 3.

    • En Tiempo de espera, especifica la cantidad de segundos que se espera hasta que se agote el tiempo de espera del sondeo. Este valor no puede exceder el valor especificado para periodSeconds. Especifica un valor de 1 a 3,600. El valor predeterminado es 1.

  7. Haz clic en Agregar para agregar el umbral nuevo.

  8. Haz clic en Crear o Implementar.

gcloud

Activo de HTTP

Agrega un extremo HTTP/1 (el valor predeterminado de Cloud Run, no HTTP/2) en el código de servicio para responder al sondeo. El nombre del extremo (por ejemplo, /startup, /health o /are_you_ready) debe coincidir con el path en la configuración del sondeo. Los extremos de verificación de estado de HTTP son accesibles de forma externa y siguen los mismos principios que cualquier otro extremo de servicio HTTP expuesto de forma externa.

Ejecuta el comando siguiente:

  gcloud run deploy SERVICE \
      --image=IMAGE_URL \
      --liveness-probe httpGet.path=PATH,httpGet.port=CONTAINER_PORT,initialDelaySeconds=DELAY,failureThreshold=THRESHOLD,timeoutSeconds=TIMEOUT,periodSeconds=PERIOD

Reemplaza lo siguiente:

  • 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: Es una ruta relativa al extremo HTTP, por ejemplo, /health.
  • Es opcional. CONTAINER_PORT: Se configura como el puerto del contenedor que se usa para el servicio.
  • Es opcional. DELAY: Es la cantidad de segundos que se espera después de que el contenedor se inició antes de realizar el primer sondeo. Especifica un valor de 0 segundos a 240 segundos. El valor predeterminado es 0 segundos.
  • Es opcional. THRESHOLD: Es la cantidad de veces que se debe reintentar el sondeo antes de apagar el contenedor. El valor predeterminado es 3.
  • Es opcional. TIMEOUT: Es la cantidad de segundos que se espera hasta que se agote el tiempo de espera del sondeo. Este valor no puede exceder el valor especificado para periodSeconds. Especifica un valor de 1 a 3,600.El valor predeterminado es 1.
  • Es opcional. PERIOD: Es el período (en segundos) en el que se realizará el sondeo. Por ejemplo, 2 para realizar el sondeo cada 2 segundos. Especifica un valor de 1 segundo a 3,600 segundos. El valor predeterminado es 10 segundos.

gRPC en funcionamiento

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

Ejecuta el comando siguiente:

  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

Reemplaza lo siguiente:

  • 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.
  • Es opcional. GRPC_SERVICE: Si se configura, se usa en el campo de servicio de grpc.health.v1.HealthCheckRequest cuando se llama al RPC de grpc.health.v1.Health.Check.
  • Es opcional. CONTAINER_PORT: El puerto de contenedor que se usa para tu servicio.
  • Es opcional. DELAY: Es la cantidad de segundos que se espera después de que el contenedor se inició antes de realizar el primer sondeo. Especifica un valor de 0 segundos a 240 segundos. El valor predeterminado es 0 segundos.
  • Es opcional. THRESHOLD: Es la cantidad de veces que se debe reintentar el sondeo antes de apagar el contenedor. El valor predeterminado es 3.
  • Es opcional. TIMEOUT: Es la cantidad de segundos que se espera hasta que se agote el tiempo de espera del sondeo. Este valor no puede exceder el valor especificado para periodSeconds. Especifica un valor de 1 a 3,600.El valor predeterminado es 1.
  • Es opcional. PERIOD: Es el período (en segundos) en el que se realizará el sondeo. Por ejemplo, 2 para realizar el sondeo cada 2 segundos. Especifica un valor de 1 segundo a 3,600 segundos. El valor predeterminado es 10 segundos.

YAML

Activo de HTTP

Agrega un extremo HTTP/1 (el valor predeterminado de Cloud Run, no HTTP/2) en el código de servicio para responder al sondeo. El nombre del extremo (por ejemplo, /startup, /health o /are_you_ready) debe coincidir con el path en la configuración del sondeo. Los extremos de verificación de estado de HTTP son accesibles de forma externa y siguen los mismos principios que cualquier otro extremo de servicio HTTP expuesto de forma externa.

  1. Si creas un servicio nuevo, omite este paso. Si actualizas un servicio existente, descarga su configuración de YAML:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Configura 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

    Reemplaza lo siguiente:

    • 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: Es una ruta relativa al extremo HTTP, por ejemplo, /health.
    • Es opcional. CONTAINER_PORT: Se configura como el puerto del contenedor que se usa para el servicio.
    • Es opcional. DELAY: Es la cantidad de segundos que se espera después de que el contenedor se inició antes de realizar el primer sondeo. Especifica un valor de 0 segundos a 240 segundos. El valor predeterminado es 0 segundos.
    • Es opcional. THRESHOLD: Es la cantidad de veces que se debe reintentar el sondeo antes de apagar el contenedor. El valor predeterminado es 3.
    • Opcional: Se puede usar httpHeaders para proporcionar varios encabezados personalizados o repetidos con los campos HEADER_NAME y HEADER_VALUE, como se muestra.
    • Es opcional. TIMEOUT: Es la cantidad de segundos que se espera hasta que se agote el tiempo de espera del sondeo. Este valor no puede exceder el valor especificado para periodSeconds. Especifica un valor de 1 a 3,600.El valor predeterminado es 1.
    • Es opcional. PERIOD: Es el período (en segundos) en el que se realizará el sondeo. Por ejemplo, 2 para realizar el sondeo cada 2 segundos. Especifica un valor de 1 segundo a 3,600 segundos. El valor predeterminado es 10 segundos.
  3. Crea o actualiza el servicio con el siguiente comando:
    gcloud run services replace service.yaml

gRPC en funcionamiento

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

  1. Si creas un servicio nuevo, omite este paso. Si actualizas un servicio existente, descarga su configuración de YAML:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Configura 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

    Reemplaza lo siguiente:

    • 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.
    • Es opcional. GRPC_SERVICE: Si se configura, se usa en el campo de servicio de grpc.health.v1.HealthCheckRequest cuando se llama al RPC de grpc.health.v1.Health.Check.
    • Es opcional. CONTAINER_PORT: El puerto de contenedor que se usa para el servicio.
    • Es opcional. DELAY: Es la cantidad de segundos que se espera después de que el contenedor se inició antes de realizar el primer sondeo. Especifica un valor de 0 segundos a 240 segundos. El valor predeterminado es 0 segundos.
    • Es opcional. THRESHOLD: Es la cantidad de veces que se debe reintentar el sondeo antes de apagar el contenedor. El valor predeterminado es 3.
    • Es opcional. TIMEOUT: Es la cantidad de segundos que se espera hasta que se agote el tiempo de espera del sondeo. Este valor no puede exceder el valor especificado para periodSeconds. Especifica un valor de 1 a 3,600.El valor predeterminado es 1.
    • Es opcional. PERIOD: Es el período (en segundos) en el que se realizará el sondeo. Por ejemplo, 2 para realizar el sondeo cada 2 segundos. Especifica un valor de 1 segundo a 3,600 segundos. El valor predeterminado es 10 segundos.

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

Terraform

Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.

Activo de HTTP

Agrega un extremo HTTP/1 (el valor predeterminado de Cloud Run, no HTTP/2) en el código de servicio para responder al sondeo. El nombre del extremo (por ejemplo, /startup, /health o /are_you_ready) debe coincidir con el path en la configuración del sondeo. Los extremos de verificación de estado de HTTP son accesibles de forma externa y siguen los mismos principios que cualquier otro extremo de servicio HTTP expuesto de forma externa.

Configura el 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 = "*"
          }
        }
      }
    }
  }
}

gRPC en funcionamiento

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

Configura el 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 del sondeo de funcionamiento

Tipo de sondeo Requisitos Comportamiento
Activo de HTTP Crea un extremo de verificación de estado HTTP
Usa HTTP/1
El sondeo de capacidad de respuesta comienza solo después de que el sondeo de inicio se realiza correctamente. Después de configurar el sondeo y de que cualquier sondeo de inicio se realice correctamente, Cloud Run realiza una solicitud HTTP GET al extremo de verificación de estado (por ejemplo, /health). Cualquier respuesta 2XX o 3XX es correcta, y todo lo demás indica un error.

Si un sondeo de funcionamiento no se realiza correctamente dentro del tiempo especificado (failureThreshold * periodSeconds), el contenedor se cierra con una señal SIGKILL. Las solicitudes restantes que el contenedor aún entregaba se finalizan con el código de estado HTTP 503. Después de cerrar el contenedor, el ajuste de escala automático de Cloud Run inicia una instancia de contenedor nueva.
gRPC en funcionamiento Implementa el protocolo de verificación de estado de gRPC en tu servicio de Cloud Run. Si configuras un sondeo de inicio de gRPC, el sondeo de funcionamiento comienza solo después de que el sondeo de inicio se realiza correctamente.

Después de configurar el sondeo de funcionamiento y cualquier sondeo de inicio se realiza correctamente, Cloud Run realiza una solicitud de verificación de estado al servicio.

Si un sondeo de funcionamiento no se completa de forma correcta dentro del tiempo especificado (failureThreshold * periodSeconds), el contenedor se cierra con una señal SIGKILL. Después de cerrar el contenedor, el ajuste de escala automático de Cloud Run inicia una instancia de contenedor nueva.

Configura los sondeos de preparación

Cualquier cambio en la configuración conlleva la creación de una revisión nueva. Las revisiones posteriores también adoptarán esta configuración de manera automática, a menos que realices actualizaciones explícitas para cambiarla.

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, incluso si falla su verificación de preparación.

  • Cloud Run podría enviar solicitudes a una instancia recién iniciada antes de que se complete el sondeo de disponibilidad por primera vez.

  • Si anteriormente configuraste una sonda de disponibilidad para tu servicio de Cloud Run con la API de Cloud Run Admin v1 antes de noviembre de 2025, tus verificaciones de disponibilidad no entrarán en vigencia incluso después de que implementes 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 de 2025 o los que nunca usaron una sonda de disponibilidad no se verán afectados. Para habilitar las sondas de disponibilidad compatibles en los servicios afectados, haz lo siguiente:

    1. Implementa una revisión nueva que quite la definición anterior del sondeo de preparación.

    2. Implementa otra revisión nueva que agregue la definición de la sonda de disponibilidad pertinente.

    Estos pasos borran cualquier configuración anterior y habilitan la funcionalidad del sondeo de preparación.

Puedes configurar un sondeo de disponibilidad con la Google Cloud consola, Google Cloud CLI o YAML:

Console

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

    Ir a Cloud Run

  2. Para un servicio nuevo, expande Contenedores, volúmenes, Herramientas de redes y seguridad para mostrar las opciones de verificación de estado. En el servicio existente, haz clic en el servicio que quieras configurar y, luego, en Implementar y editar para ver las opciones de verificación de estado.

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

  4. En el menú Seleccionar el tipo de verificación de estado, selecciona Verificación de preparación.

  5. En el menú Seleccionar tipo de sondeo, selecciona el tipo de sondeo que quieras usar, por ejemplo, HTTP o gRPC. Se mostrará el formulario de configuración del sondeo.

  6. La configuración del sondeo varía según el tipo de sondeo. Establece la configuración del sondeo:

    • Si usas sondeos de HTTP, haz lo siguiente:

      • Agrega un extremo HTTP/1 (el valor predeterminado de Cloud Run, no HTTP/2) en el código de servicio para responder al sondeo. El nombre del extremo (por ejemplo, /startup, /health o /are_you_ready) debe coincidir con el path en la configuración del sondeo. Los extremos de verificación de estado de HTTP son accesibles de forma externa y siguen los mismos principios que cualquier otro extremo de servicio HTTP expuesto de forma externa.

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

    • Si usas sondeos de gRPC, haz lo siguiente:

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

    • En Período, especifica el período (en segundos) en el que se realizará el sondeo. Por ejemplo, 2 para realizar el sondeo cada 2 segundos. Especifica un valor de 1 a 300. El valor predeterminado es 10 segundos.

    • En Umbral de éxito, especifica la cantidad mínima de resultados correctos consecutivos para que el sondeo se considere exitoso después de un error. El valor predeterminado es 2.

    • En Umbral de falla, especifica la cantidad de veces que se debe reintentar el sondeo antes de informar una falla, lo que provoca que la instancia deje de recibir tráfico. El valor predeterminado es 3.

    • En Tiempo de espera, especifica la cantidad de segundos que se espera hasta que se agote el tiempo de espera del sondeo. Este valor no puede exceder el valor especificado para periodSeconds. Especifica un valor de 1 a 300. El valor predeterminado es 1.

  7. Haz clic en Agregar para agregar el umbral nuevo.

  8. Haz clic en Crear o Implementar.

gcloud

Disponibilidad de HTTP

Agrega un extremo HTTP/1 (el valor predeterminado de Cloud Run, no HTTP/2) en el código de servicio para responder al sondeo. El nombre del extremo (por ejemplo, /startup, /health o /are_you_ready) debe coincidir con el path en la configuración del sondeo. Los extremos de verificación de estado de HTTP son accesibles de forma externa y siguen los mismos principios que cualquier otro extremo de servicio HTTP expuesto de forma externa.

Ejecuta el comando siguiente:

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

Reemplaza lo siguiente:

  • 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.
  • Es opcional. PATH: Es la ruta relativa al extremo HTTP, por ejemplo, /are_you_ready. La ruta de acceso predeterminada es /.
  • Es opcional. CONTAINER_PORT: Es el puerto del contenedor que se usa para tu servicio. El puerto predeterminado es el puerto de entrada principal.
  • Es opcional. SUCCESS_THRESHOLD: Es la cantidad mínima de resultados consecutivos para que el sondeo se considere exitoso después de haber fallado. El valor predeterminado es 2.
  • Es opcional. FAILURE_THRESHOLD: Es la cantidad de veces que se debe reintentar el sondeo antes de informar una falla, lo que hace que la instancia deje de recibir tráfico. El valor predeterminado es 3.
  • Es opcional. TIMEOUT: Es la cantidad de segundos que se espera hasta que se agote el tiempo de espera del sondeo. Este valor no puede exceder el valor especificado para periodSeconds. Especifica un valor de 1 a 300. El valor predeterminado es 1.
  • Es opcional. PERIOD: Es el período (en segundos) en el que se realizará el sondeo. Por ejemplo, 2 para realizar el sondeo cada 2 segundos. Especifica un valor de 1 a 300. El valor predeterminado es 10 segundos.

Preparación de gRPC

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

Ejecuta el comando siguiente:

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

Reemplaza lo siguiente:

  • 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.
  • Es opcional. CONTAINER_PORT: Es el puerto del contenedor que se usa para tu servicio. El puerto predeterminado es el puerto de entrada principal.
  • Es opcional. GRPC_SERVICE: Si se configura, se usa en el campo de servicio de grpc.health.v1.HealthCheckRequest cuando se llama al RPC de grpc.health.v1.Health.Check.
  • Es opcional. SUCCESS_THRESHOLD: Es la cantidad mínima de resultados consecutivos para que el sondeo se considere exitoso después de haber fallado. El valor predeterminado es 2.
  • Es opcional. FAILURE_THRESHOLD: Es la cantidad de veces que se debe reintentar el sondeo antes de informar una falla, lo que hace que la instancia deje de recibir tráfico. El valor predeterminado es 3.
  • Es opcional. TIMEOUT: Es la cantidad de segundos que se espera hasta que se agote el tiempo de espera del sondeo. Este valor no puede exceder el valor especificado para periodSeconds. Especifica un valor de 1 a 300. El valor predeterminado es 1.
  • Es opcional. PERIOD: Es el período (en segundos) en el que se realizará el sondeo. Por ejemplo, 2 para realizar el sondeo cada 2 segundos. Especifica un valor de 1 a 300. El valor predeterminado es 10 segundos.

YAML

Disponibilidad de HTTP

Agrega un extremo HTTP/1 (el valor predeterminado de Cloud Run, no HTTP/2) en el código de servicio para responder al sondeo. El nombre del extremo (por ejemplo, /startup, /health o /are_you_ready) debe coincidir con el path en la configuración del sondeo. Los extremos de verificación de estado de HTTP son accesibles de forma externa y siguen los mismos principios que cualquier otro extremo de servicio HTTP expuesto de forma externa.

  1. Si creas un servicio nuevo, omite este paso. Si actualizas un servicio existente, descarga su configuración de YAML:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Configura 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

    Reemplaza lo siguiente:

    • 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.
    • Es opcional. PATH: Es la ruta relativa al extremo HTTP, por ejemplo, /are_you_ready. La ruta de acceso predeterminada es /.
    • Es opcional. CONTAINER_PORT: Es el puerto del contenedor que se usa para tu servicio. El puerto predeterminado es el puerto de entrada principal.
    • Es opcional. SUCCESS_THRESHOLD: Es la cantidad mínima de resultados consecutivos para que el sondeo se considere exitoso después de haber fallado. El valor predeterminado es 2.
    • Es opcional. FAILURE_THRESHOLD: Es la cantidad de veces que se debe reintentar el sondeo antes de informar una falla, lo que hace que la instancia deje de recibir tráfico. El valor predeterminado es 3.
    • Es opcional. TIMEOUT: Es la cantidad de segundos que se espera hasta que se agote el tiempo de espera del sondeo. Este valor no puede exceder el valor especificado para periodSeconds. Especifica un valor de 1 a 300. El valor predeterminado es 1.
    • Es opcional. PERIOD: Es el período (en segundos) en el que se realizará el sondeo. Por ejemplo, 2 para realizar el sondeo cada 2 segundos. Especifica un valor de 1 a 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 de gRPC

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

  1. Si creas un servicio nuevo, omite este paso. Si actualizas un servicio existente, descarga su configuración de YAML:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Configura 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

    Reemplaza lo siguiente:

    • 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.
    • Es opcional. CONTAINER_PORT: Es el puerto del contenedor que se usa para tu servicio. El puerto predeterminado es el puerto de entrada principal.
    • Es opcional. GRPC_SERVICE: Si se configura, se usa en el campo de servicio de grpc.health.v1.HealthCheckRequest cuando se llama al RPC de grpc.health.v1.Health.Check.
    • Es opcional. SUCCESS_THRESHOLD: Es la cantidad mínima de resultados consecutivos para que el sondeo se considere exitoso después de haber fallado. El valor predeterminado es 2.
    • Es opcional. FAILURE_THRESHOLD: Es la cantidad de veces que se debe reintentar el sondeo antes de informar una falla, lo que hace que la instancia deje de recibir tráfico. El valor predeterminado es 3.
    • Es opcional. TIMEOUT: Es la cantidad de segundos que se espera hasta que se agote el tiempo de espera del sondeo. Este valor no puede exceder el valor especificado para periodSeconds. Especifica un valor de 1 a 300. El valor predeterminado es 1.
    • Es opcional. PERIOD: Es el período (en segundos) en el que se realizará el sondeo. Por ejemplo, 2 para realizar el sondeo cada 2 segundos. Especifica un valor de 1 a 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 los sondeos.
  • Todos los sondeos se facturan por el consumo de CPU y memoria, pero no se aplican cargos basados en solicitudes.

¿Qué sigue?