Configurer les vérifications d'état des conteneurs pour les services

Les vérifications de l'état Cloud Run permettent de s'assurer que vos instances de conteneurs fonctionnent correctement et sont en mesure de diffuser du trafic. Les vérifications de l'état Cloud Run vous permettent de personnaliser le moment où votre conteneur est prêt à recevoir des requêtes et le moment où il doit être considéré comme non opérationnel et nécessiter un redémarrage.

Cas d'utilisation

Vous pouvez configurer les types de vérification de l'état'état suivants :

  • Les vérifications de démarrage déterminent si le conteneur a démarré et est prêt à accepter le trafic.

    • Lorsque vous configurez une vérification de démarrage, les vérifications d'activité et d'aptitude sont désactivées jusqu'à ce que la vérification de démarrage détermine que le conteneur est démarré, afin d'éviter toute interférence avec le démarrage du service.
    • Les vérifications de démarrage sont particulièrement utiles si vous utilisez des contrôles d'activité sur des conteneurs à démarrage lent, car elles les empêchent de s'arrêter prématurément avant que les conteneurs ne soient opérationnels.
  • Les vérifications d'activité déterminent s'il faut redémarrer un conteneur.

    • Dans ce cas, le redémarrage d'un conteneur peut augmenter la disponibilité du service en cas de bugs.
    • Les vérifications d'activité sont destinées à redémarrer des instances individuelles qui ne peuvent pas être récupérées d'une autre manière. Elles doivent principalement être utilisées en cas de défaillance d'instance irrécupérable, par exemple pour détecter un interblocage où un service est en cours d'exécution, mais ne peut pas progresser. Vous pouvez exiger une vérification de l'activité pour chaque conteneur en utilisant des règles d'administration personnalisées.
    • Lorsqu'un service rencontre des échecs répétés de vérification, Cloud Run limite les redémarrages d'instances pour éviter les boucles de plantage non contrôlées.
  • Vérifications de préparation (preview)

    Les sondes de disponibilité déterminent quand une instance de votre service Cloud Run doit diffuser du trafic. Les vérifications d'aptitude commencent une fois la vérification de démarrage du conteneur réussie. Si une instance échoue à sa vérification de disponibilité au-delà du seuil d'échec que vous configurez, Cloud Run cesse de lui envoyer du trafic. Cloud Run ne met pas fin à l'instance et renvoie le trafic vers celle-ci lorsqu'elle recommence à réussir son test de disponibilité.

Configurer des vérifications de démarrage

Tout changement de configuration entraîne la création d'une révision. Les révisions ultérieures obtiennent aussi automatiquement le même paramètre de configuration, à moins que vous ne le mettiez explicitement à jour.

Vous pouvez configurer des vérifications HTTP, TCP et gRPC à l'aide de la console Google Cloud , de YAML ou de Terraform :

Console

  1. Dans la console Google Cloud , accédez à la page Cloud Run :

    Accédez à Cloud Run

  2. Pour un nouveau service, développez Conteneur(s), volumes, mise en réseau et sécurité pour afficher les options de vérification de l'état. Pour un service existant, cliquez sur le service que vous souhaitez configurer, puis sur Modifier et déployer pour afficher les options de vérification d'état.

  3. Dans la section Conteneur(s) accédez à Vérifications d'état puis cliquez sur Ajouter une vérification d'état afin d'ouvrir le panneau de configuration Ajouter une vérification d'état.

  4. Dans le menu Sélectionner le vérification de l'état'état, sélectionnez Vérification du démarrage.

  5. Dans le menu Sélectionner un type de vérification, sélectionnez le type de vérification que vous souhaitez utiliser, par exemple HTTP ou gRPC. Le formulaire de configuration de vérification s'affiche.

  6. La configuration de la vérification varie selon le type de vérification. Configurez les paramètres de la vérification :

    • Si vous utilisez des vérifications HTTP :

      • Ajoutez un point de terminaison HTTP/1 (valeur par défaut de Cloud Run, et non HTTP/2) dans le code de votre service pour répondre à la vérification. Le nom du point de terminaison (par exemple, /startup, /health ou /are_you_ready) doit correspondre à path dans la configuration de la vérification. Les points de terminaison HTTP de vérification de l'état'état sont accessibles en externe et suivent les mêmes principes que tous les autres points de terminaison de service HTTP exposés en externe.

      • Utilisez le champ Chemin d'accès pour spécifier le chemin d'accès relatif au point de terminaison (par exemple, /).

      • Cochez la case En-têtes HTTP pour spécifier des en-têtes personnalisés facultatifs. Spécifiez le nom de l'en-tête dans le champ Nom et la valeur de l'en-tête dans le champ Valeur. Cliquez sur Ajouter un en-tête HTTP pour spécifier d'autres en-têtes.

    • Si vous utilisez des vérifications gRPC :

    • Pour le champ Port, spécifiez le port de conteneur utilisé pour votre service.

    • Dans le champ Délai initial, spécifiez le nombre de secondes d'attente après le démarrage du conteneur avant d'effectuer la première vérification. Spécifiez une valeur comprise entre 0 et 240 secondes. La valeur par défaut est de 0 seconde.

    • Dans le champ Période, spécifiez la périodicité (en secondes) à laquelle effectuer la vérification. Par exemple, 2 pour effectuer la vérification toutes les deux secondes. Spécifiez une valeur comprise entre 1 et 240 secondes. La valeur par défaut est de 10 secondes.

    • Pour Seuil d'échec, spécifiez le nombre de tentatives d'exécution de la vérification avant d'arrêter le conteneur. La valeur par défaut est "3".

    • Dans le champ Délai avant expiration, spécifiez le nombre de secondes d'attente avant expiration de la vérification. Cette valeur ne peut pas dépasser la valeur spécifiée pour periodSeconds. Définissez une valeur comprise entre 1 et 240. La valeur par défaut est 1.

  7. Cliquez sur Ajouter pour ajouter le nouveau seuil.

  8. Cliquez sur Créer ou Déployer.

gcloud

Démarrage TCP

Exécutez la commande suivante :

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

Remplacez les éléments suivants :

  • SERVICE : nom de votre service Cloud Run.
  • IMAGE_URL : référence à l'image de conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL se présente sous la forme suivante : LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • Facultatif. CONTAINER_PORT : le port de conteneur utilisé pour votre service.
  • DELAY : nombre de secondes d'attente après le démarrage du conteneur avant d'effectuer la première vérification. Spécifiez une valeur comprise entre 0 et 240 secondes. La valeur par défaut est de 0 seconde.
  • Facultatif. TIMEOUT : nombre de secondes d'attente jusqu'à l'expiration de la vérification. Cette valeur ne peut pas dépasser la valeur spécifiée pour periodSeconds. Définissez une valeur comprise entre 1 et 240. La valeur par défaut est 1.
  • THRESHOLD : nombre de tentatives d'exécution de la vérification avant d'arrêter le conteneur. La valeur par défaut est "3".
  • PERIOD : période (en secondes) à laquelle effectuer la vérification. Par exemple, 2 pour effectuer la vérification toutes les deux secondes. Spécifiez une valeur comprise entre 1 seconde et 240 secondes. La valeur par défaut est de 10 secondes.

Démarrage HTTP

Ajoutez un point de terminaison HTTP/1 (valeur par défaut de Cloud Run, et non HTTP/2) dans le code de votre service pour répondre à la vérification. Le nom du point de terminaison (par exemple, /startup, /health ou /are_you_ready) doit correspondre à path dans la configuration de la vérification. Les points de terminaison HTTP de vérification de l'état'état sont accessibles en externe et suivent les mêmes principes que tous les autres points de terminaison de service HTTP exposés en externe.

Exécutez la commande suivante :

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

Remplacez les éléments suivants :

  • SERVICE : nom de votre service Cloud Run.
  • IMAGE_URL : référence à l'image de conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL se présente sous la forme suivante : LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • PATH : chemin relatif au point de terminaison HTTP, par exemple, /health.
  • Facultatif. CONTAINER_PORT : défini sur le port de conteneur utilisé pour votre service.
  • Facultatif. DELAY : nombre de secondes d'attente après le démarrage du conteneur avant d'effectuer la première vérification. Spécifiez une valeur comprise entre 0 seconde et 240 secondes. La valeur par défaut est de 0 seconde.
  • Facultatif. THRESHOLD : nombre de tentatives d'exécution de la vérification à effectuer avant d'arrêter le conteneur. La valeur par défaut est "3".
  • Facultatif. TIMEOUT : nombre de secondes à attendre avant l'expiration du délai de la vérification. Cette valeur ne peut pas dépasser celle spécifiée pour periodSeconds. Définissez une valeur comprise entre 1 et 240. La valeur par défaut est 1.
  • Facultatif. PERIOD : délai (en secondes) auquel effectuer la vérification. Par exemple, 2 pour effectuer la vérification toutes les deux secondes. Spécifiez une valeur comprise entre 1 seconde et 240 secondes. La valeur par défaut est de 10 secondes.

Démarrage gRPC

Assurez-vous que votre image de conteneur implémente le protocole de vérification de l'état gRPC.

Exécutez la commande suivante :

  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

Remplacez les éléments suivants :

  • SERVICE : nom de votre service Cloud Run.
  • IMAGE_URL : référence à l'image de conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL se présente sous la forme suivante : LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • Facultatif. GRPC_SERVICE : si cette valeur est définie, elle est utilisée dans le champ de service de grpc.health.v1.HealthCheckRequest lorsque le RPC grpc.health.v1.Health.Check est appelé.
  • Facultatif. CONTAINER_PORT : le port de conteneur utilisé pour votre service.
  • Facultatif. DELAY : nombre de secondes d'attente après le démarrage du conteneur avant d'effectuer la première vérification. Spécifiez une valeur comprise entre 0 seconde et 240 secondes. La valeur par défaut est de 0 seconde.
  • Facultatif. THRESHOLD : nombre de tentatives d'exécution de la vérification à effectuer avant d'arrêter le conteneur. La valeur par défaut est "3".
  • Facultatif. TIMEOUT : nombre de secondes à attendre avant l'expiration du délai de la vérification. Cette valeur ne peut pas dépasser celle spécifiée pour periodSeconds. Définissez une valeur comprise entre 1 et 240. La valeur par défaut est 1.
  • Facultatif. PERIOD : période (en secondes) à laquelle effectuer la vérification. Par exemple, 2 pour effectuer la vérification toutes les deux secondes. Spécifiez une valeur comprise entre 1 seconde et 240 secondes. La valeur par défaut est de 10 secondes.

YAML

Démarrage TCP

  1. Si vous créez un service, ignorez cette étape. Si vous mettez à jour un service existant, téléchargez sa configuration YAML :
    gcloud run services describe SERVICE --format export > service.yaml
  2. Configurez l'attribut startupProbe comme indiqué ci-dessous :

    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

    Remplacez les éléments suivants :

    • SERVICE : nom de votre service Cloud Run.
    • IMAGE_URL : référence à l'image de conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL se présente sous la forme suivante : LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • Facultatif. CONTAINER_PORT : le port de conteneur utilisé pour votre service.
    • DELAY : nombre de secondes d'attente après le démarrage du conteneur avant d'effectuer la première vérification. Spécifiez une valeur comprise entre 0 et 240 secondes. La valeur par défaut est de 0 seconde.
    • Facultatif. TIMEOUT : nombre de secondes d'attente jusqu'à l'expiration de la vérification. Cette valeur ne peut pas dépasser la valeur spécifiée pour periodSeconds. Définissez une valeur comprise entre 1 et 240. La valeur par défaut est 1.
    • THRESHOLD : nombre de tentatives d'exécution de la vérification avant d'arrêter le conteneur. La valeur par défaut est "3".
    • PERIOD : période (en secondes) à laquelle effectuer la vérification. Par exemple, 2 pour effectuer la vérification toutes les deux secondes. Spécifiez une valeur comprise entre 1 seconde et 240 secondes. La valeur par défaut est de 10 secondes.
  3. Créez ou mettez à jour le service à l'aide de la commande suivante :
    gcloud run services replace service.yaml

Démarrage HTTP

Ajoutez un point de terminaison HTTP/1 (valeur par défaut de Cloud Run, et non HTTP/2) dans le code de votre service pour répondre à la vérification. Le nom du point de terminaison (par exemple, /startup, /health ou /are_you_ready) doit correspondre à path dans la configuration de la vérification. Les points de terminaison HTTP de vérification de l'état'état sont accessibles en externe et suivent les mêmes principes que tous les autres points de terminaison de service HTTP exposés en externe.

  1. Si vous créez un service, ignorez cette étape. Si vous mettez à jour un service existant, téléchargez sa configuration YAML :
    gcloud run services describe SERVICE --format export > service.yaml
  2. Configurez l'attribut startupProbe comme indiqué ci-dessous :

    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

    Remplacez les éléments suivants :

    • SERVICE : nom de votre service Cloud Run.
    • IMAGE_URL : référence à l'image de conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL se présente sous la forme suivante : LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • PATH : chemin relatif au point de terminaison HTTP, par exemple, /health.
    • Facultatif. CONTAINER_PORT : défini sur le port de conteneur utilisé pour votre service.
    • Facultatif. DELAY : nombre de secondes d'attente après le démarrage du conteneur avant d'effectuer la première vérification. Spécifiez une valeur comprise entre 0 seconde et 240 secondes. La valeur par défaut est de 0 seconde.
    • Facultatif. THRESHOLD : nombre de tentatives d'exécution de la vérification avant d'arrêter le conteneur. La valeur par défaut est "3".
    • Facultatif : httpHeaders peut être utilisé pour fournir des en-têtes personnalisés multiples ou répétés à l'aide des champs HEADER_NAME et HEADER_VALUE, comme indiqué.
    • Facultatif. TIMEOUT : nombre de secondes à attendre avant l'expiration du délai de la vérification. Cette valeur ne peut pas dépasser celle spécifiée pour periodSeconds. Définissez une valeur comprise entre 1 et 240. La valeur par défaut est 1.
    • Facultatif. PERIOD : délai (en secondes) auquel effectuer la vérification. Par exemple, 2 pour effectuer la vérification toutes les deux secondes. Spécifiez une valeur comprise entre 1 seconde et 240 secondes. La valeur par défaut est de 10 secondes.
  3. Créez ou mettez à jour le service à l'aide de la commande suivante :
    gcloud run services replace service.yaml

Démarrage gRPC

Assurez-vous que votre image de conteneur implémente le protocole de vérification de l'état gRPC.

  1. Si vous créez un service, ignorez cette étape. Si vous mettez à jour un service existant, téléchargez sa configuration YAML :
    gcloud run services describe SERVICE --format export > service.yaml
  2. Configurez l'attribut startupProbe comme indiqué ci-dessous :

    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

    Remplacez les éléments suivants :

    • SERVICE : nom de votre service Cloud Run.
    • IMAGE_URL : référence à l'image de conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL se présente sous la forme suivante : LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • Facultatif. GRPC_SERVICE : si cette valeur est définie, elle est utilisée dans le champ de service de grpc.health.v1.HealthCheckRequest lorsque le RPC grpc.health.v1.Health.Check est appelé.
    • Facultatif. CONTAINER_PORT : le port de conteneur utilisé pour votre service.
    • Facultatif. DELAY : nombre de secondes d'attente après le démarrage du conteneur avant d'effectuer la première vérification. Spécifiez une valeur comprise entre 0 seconde et 240 secondes. La valeur par défaut est de 0 seconde.
    • Facultatif. THRESHOLD : nombre de tentatives d'exécution de la vérification à effectuer avant d'arrêter le conteneur. La valeur par défaut est "3".
    • Facultatif. TIMEOUT : nombre de secondes à attendre avant l'expiration du délai de la vérification. Cette valeur ne peut pas dépasser celle spécifiée pour periodSeconds. Définissez une valeur comprise entre 1 et 240. La valeur par défaut est 1.
    • Facultatif. PERIOD : délai (en secondes) auquel effectuer la vérification. Par exemple, 2 pour effectuer la vérification toutes les deux secondes. Spécifiez une valeur comprise entre 1 seconde et 240 secondes. La valeur par défaut est de 10 secondes.
  3. Créez ou mettez à jour le service à l'aide de la commande suivante :
    gcloud run services replace service.yaml

Terraform

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez Commandes Terraform de base.

Démarrage TCP

Configurez votre service Cloud Run avec l'attribut startup_probe comme indiqué ci-dessous :

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
        }
      }
    }
  }
}

Démarrage HTTP

Ajoutez un point de terminaison HTTP/1 (valeur par défaut de Cloud Run, et non HTTP/2) dans le code de votre service pour répondre à la vérification. Le nom du point de terminaison (par exemple, /startup, /health ou /are_you_ready) doit correspondre à path dans la configuration de la vérification. Les points de terminaison HTTP de vérification de l'état'état sont accessibles en externe et suivent les mêmes principes que tous les autres points de terminaison de service HTTP exposés en externe.

Configurez votre service Cloud Run avec l'attribut startup_probe comme indiqué ci-dessous :

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

Démarrage gRPC

Assurez-vous que votre image de conteneur implémente le protocole de vérification de l'état gRPC.

Configurez votre service Cloud Run avec l'attribut startup_probe comme indiqué ci-dessous :

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

Vérification de démarrage TCP par défaut

Si vous ne configurez pas explicitement de vérification de démarrage TCP pour un nouveau service Cloud Run, Cloud Run en configure automatiquement une avec les valeurs par défaut suivantes :

startupProbe:
          timeoutSeconds: 240
          periodSeconds: 240
          failureThreshold: 1

Vous pouvez modifier ces valeurs par défaut en suivant les instructions de la section Configuration de la vérification sur la présente page.

Exigences et comportement de la vérification au démarrage

Type de vérification Conditions requises Comportement
Démarrage TCP Aucune Par défaut, Cloud Run établit une connexion TCP pour ouvrir le socket TCP sur le port spécifié. Si Cloud Run ne parvient pas à établir une connexion, cela indique un échec.

Si une vérification de démarrage n'aboutit pas dans le délai spécifié (failureThreshold * periodSeconds), qui ne peut pas dépasser 240 secondes, le conteneur est arrêté. Consultez également la section Valeurs TCP par défaut.
Démarrage HTTP Créez un point de terminaison de vérification de l'état d'état HTTP
Utilisez HTTP/1
Une fois la vérification configurée, Cloud Run envoie une requête HTTP GET au point de terminaison de la vérification de l'état l'état (par exemple, /health). Toute réponse 2XX ou 3XX est considérée comme réussie. Tout autre élément indique un échec.

Si une vérification de démarrage n'aboutit pas dans le délai spécifié (failureThreshold * periodSeconds), qui ne peut pas dépasser 240 secondes, le conteneur est arrêté.

Si la vérification de démarrage HTTP réussit dans le délai spécifié et que vous avez configuré une vérification d'activité HTTP, celle-ci est démarrée.
Démarrage gRPC Mettez en œuvre le protocole de vérification d'état gRPC dans votre service Cloud Run. Si une vérification de démarrage échoue dans le délai spécifié (failureThreshold * periodSeconds), qui ne peut pas dépasser 240 secondes, le conteneur est arrêté.

Configurer des vérifications d'activité

Tout changement de configuration entraîne la création d'une révision. Les révisions ultérieures obtiennent aussi automatiquement le même paramètre de configuration, à moins que vous ne le mettiez explicitement à jour.

Vous pouvez configurer des vérifications HTTP et gRPC à l'aide de la console Google Cloud , de YAML ou de Terraform :

Console

  1. Dans la console Google Cloud , accédez à la page Cloud Run :

    Accédez à Cloud Run

  2. Pour un nouveau service, développez Conteneur(s), volumes, mise en réseau et sécurité pour afficher les options de vérification de l'état. Pour un service existant, cliquez sur le service que vous souhaitez configurer, puis sur Modifier et déployer pour afficher les options de vérification d'état.

  3. Dans la section Conteneur(s) accédez à Vérifications d'état puis cliquez sur Ajouter une vérification d'état afin d'ouvrir le panneau de configuration Ajouter une vérification d'état.

  4. Dans le menu Sélectionner le vérification de l'état'état, sélectionnez Vérification de l'activité.

  5. Dans le menu Sélectionner un type de vérification, sélectionnez le type de vérification que vous souhaitez utiliser, par exemple HTTP ou gRPC. Le formulaire de configuration de vérification s'affiche.

  6. La configuration de la vérification varie selon le type de vérification. Configurez les paramètres de la vérification :

    • Si vous utilisez des vérifications HTTP :

      • Ajoutez un point de terminaison HTTP/1 (valeur par défaut de Cloud Run, et non HTTP/2) dans le code de votre service pour répondre à la vérification. Le nom du point de terminaison (par exemple, /startup, /health ou /are_you_ready) doit correspondre à path dans la configuration de la vérification. Les points de terminaison HTTP de vérification de l'état'état sont accessibles en externe et suivent les mêmes principes que tous les autres points de terminaison de service HTTP exposés en externe.

      • Utilisez le champ Chemin d'accès pour spécifier le chemin d'accès relatif au point de terminaison (par exemple, /).

      • Cochez la case En-têtes HTTP pour spécifier des en-têtes personnalisés facultatifs. Spécifiez le nom de l'en-tête dans le champ Nom et la valeur de l'en-tête dans le champ Valeur. Cliquez sur Ajouter un en-tête HTTP pour spécifier d'autres en-têtes.

    • Si vous utilisez des vérifications gRPC :

    • Pour le champ Port, spécifiez le port de conteneur utilisé pour votre service.

    • Dans le champ Délai initial, spécifiez le nombre de secondes d'attente après le démarrage du conteneur avant d'effectuer la première vérification. Spécifiez une valeur comprise entre 0 et 240 secondes. La valeur par défaut est de 0 seconde.

    • Dans le champ Période, spécifiez la périodicité (en secondes) à laquelle effectuer la vérification. Par exemple, 2 pour effectuer la vérification toutes les deux secondes. Spécifiez une valeur comprise entre 1 et 3 600 secondes. La valeur par défaut est de 10 secondes.

    • Pour Seuil d'échec, spécifiez le nombre de tentatives d'exécution de la vérification avant d'arrêter le conteneur. La valeur par défaut est "3".

    • Dans le champ Délai avant expiration, spécifiez le nombre de secondes d'attente avant expiration de la vérification. Cette valeur ne peut pas dépasser la valeur spécifiée pour periodSeconds. Définissez une valeur comprise entre 1 et 3 600. La valeur par défaut est 1.

  7. Cliquez sur Ajouter pour ajouter le nouveau seuil.

  8. Cliquez sur Créer ou Déployer.

gcloud

Activité HTTP

Ajoutez un point de terminaison HTTP/1 (valeur par défaut de Cloud Run, et non HTTP/2) dans le code de votre service pour répondre à la vérification. Le nom du point de terminaison (par exemple, /startup, /health ou /are_you_ready) doit correspondre à path dans la configuration de la vérification. Les points de terminaison HTTP de vérification de l'état'état sont accessibles en externe et suivent les mêmes principes que tous les autres points de terminaison de service HTTP exposés en externe.

Exécutez la commande suivante :

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

Remplacez les éléments suivants :

  • SERVICE : nom de votre service Cloud Run.
  • IMAGE_URL : référence à l'image de conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL se présente sous la forme suivante : LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • PATH : chemin relatif au point de terminaison HTTP, par exemple, /health.
  • Facultatif. CONTAINER_PORT : défini sur le port de conteneur utilisé pour votre service.
  • Facultatif. DELAY : nombre de secondes d'attente après le démarrage du conteneur avant d'effectuer la première vérification. Spécifiez une valeur comprise entre 0 seconde et 240 secondes. La valeur par défaut est de 0 seconde.
  • Facultatif. THRESHOLD : nombre de tentatives d'exécution de la vérification à effectuer avant d'arrêter le conteneur. La valeur par défaut est "3".
  • Facultatif. TIMEOUT : nombre de secondes d'attente jusqu'à l'expiration de la vérification. Cette valeur ne peut pas dépasser la valeur spécifiée pour periodSeconds. Définissez une valeur comprise entre 1 et 3 600.La valeur par défaut est 1.
  • Facultatif. PERIOD : délai (en secondes) auquel effectuer la vérification. Par exemple, 2 pour effectuer la vérification toutes les deux secondes. Spécifiez une valeur comprise entre 1 et 3 600 secondes. La valeur par défaut est de 10 secondes.

Activité gRPC

Assurez-vous que votre image de conteneur implémente le protocole de vérification de l'état gRPC.

Exécutez la commande suivante :

  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

Remplacez les éléments suivants :

  • SERVICE : nom de votre service Cloud Run.
  • IMAGE_URL : référence à l'image de conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL se présente sous la forme suivante : LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • Facultatif. GRPC_SERVICE : si cette valeur est définie, elle est utilisée dans le champ de service de grpc.health.v1.HealthCheckRequest lorsque le RPC grpc.health.v1.Health.Check est appelé.
  • Facultatif. CONTAINER_PORT : le port de conteneur utilisé pour votre service.
  • Facultatif. DELAY : nombre de secondes d'attente après le démarrage du conteneur avant d'effectuer la première vérification. Spécifiez une valeur comprise entre 0 seconde et 240 secondes. La valeur par défaut est de 0 seconde.
  • Facultatif. THRESHOLD : nombre de tentatives d'exécution de la vérification à effectuer avant d'arrêter le conteneur. La valeur par défaut est "3".
  • Facultatif. TIMEOUT : nombre de secondes d'attente jusqu'à l'expiration de la vérification. Cette valeur ne peut pas dépasser la valeur spécifiée pour periodSeconds. Définissez une valeur comprise entre 1 et 3 600.La valeur par défaut est 1.
  • Facultatif. PERIOD : période (en secondes) à laquelle effectuer la vérification. Par exemple, 2 pour effectuer la vérification toutes les deux secondes. Spécifiez une valeur comprise entre 1 et 3 600 secondes. La valeur par défaut est de 10 secondes.

YAML

Activité HTTP

Ajoutez un point de terminaison HTTP/1 (valeur par défaut de Cloud Run, et non HTTP/2) dans le code de votre service pour répondre à la vérification. Le nom du point de terminaison (par exemple, /startup, /health ou /are_you_ready) doit correspondre à path dans la configuration de la vérification. Les points de terminaison HTTP de vérification de l'état'état sont accessibles en externe et suivent les mêmes principes que tous les autres points de terminaison de service HTTP exposés en externe.

  1. Si vous créez un service, ignorez cette étape. Si vous mettez à jour un service existant, téléchargez sa configuration YAML :
    gcloud run services describe SERVICE --format export > service.yaml
  2. Configurez l'attribut livenessProbe comme indiqué ci-dessous :

    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

    Remplacez les éléments suivants :

    • SERVICE : nom de votre service Cloud Run.
    • IMAGE_URL : référence à l'image de conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL se présente sous la forme suivante : LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • PATH : chemin relatif au point de terminaison HTTP, par exemple, /health.
    • Facultatif. CONTAINER_PORT : défini sur le port de conteneur utilisé pour votre service.
    • Facultatif. DELAY : nombre de secondes d'attente après le démarrage du conteneur avant d'effectuer la première vérification. Spécifiez une valeur comprise entre 0 seconde et 240 secondes. La valeur par défaut est de 0 seconde.
    • Facultatif. THRESHOLD : nombre de tentatives d'exécution de la vérification avant d'arrêter le conteneur. La valeur par défaut est "3".
    • Facultatif : httpHeaders peut être utilisé pour fournir des en-têtes personnalisés multiples ou répétés à l'aide des champs HEADER_NAME et HEADER_VALUE, comme indiqué.
    • Facultatif. TIMEOUT : nombre de secondes d'attente jusqu'à l'expiration de la vérification. Cette valeur ne peut pas dépasser la valeur spécifiée pour periodSeconds. Définissez une valeur comprise entre 1 et 3 600.La valeur par défaut est 1.
    • Facultatif. PERIOD : délai (en secondes) auquel effectuer la vérification. Par exemple, 2 pour effectuer la vérification toutes les deux secondes. Spécifiez une valeur comprise entre 1 et 3 600 secondes. La valeur par défaut est de 10 secondes.
  3. Créez ou mettez à jour le service à l'aide de la commande suivante :
    gcloud run services replace service.yaml

Activité gRPC

Assurez-vous que votre image de conteneur implémente le protocole de vérification de l'état gRPC.

  1. Si vous créez un service, ignorez cette étape. Si vous mettez à jour un service existant, téléchargez sa configuration YAML :
    gcloud run services describe SERVICE --format export > service.yaml
  2. Configurez l'attribut livenessProbe comme indiqué ci-dessous :

    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

    Remplacez l'élément suivant :

    • SERVICE : nom de votre service Cloud Run.
    • IMAGE_URL : référence à l'image de conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL se présente sous la forme suivante : LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • Facultatif. GRPC_SERVICE : si cette valeur est définie, elle est utilisée dans le champ de service de grpc.health.v1.HealthCheckRequest lorsque le RPC grpc.health.v1.Health.Check est appelé.
    • Facultatif. CONTAINER_PORT : le port de conteneur utilisé pour votre service.
    • Facultatif. DELAY : nombre de secondes d'attente après le démarrage du conteneur avant d'effectuer la première vérification. Spécifiez une valeur comprise entre 0 seconde et 240 secondes. La valeur par défaut est de 0 seconde.
    • Facultatif. THRESHOLD : nombre de tentatives d'exécution de la vérification à effectuer avant d'arrêter le conteneur. La valeur par défaut est "3".
    • Facultatif. TIMEOUT : nombre de secondes d'attente jusqu'à l'expiration de la vérification. Cette valeur ne peut pas dépasser la valeur spécifiée pour periodSeconds. Définissez une valeur comprise entre 1 et 3 600.La valeur par défaut est 1.
    • Facultatif. PERIOD : délai (en secondes) auquel effectuer la vérification. Par exemple, 2 pour effectuer la vérification toutes les deux secondes. Spécifiez une valeur comprise entre 1 et 3 600 secondes. La valeur par défaut est de 10 secondes.

  3. Créez ou mettez à jour le service à l'aide de la commande suivante :
    gcloud run services replace service.yaml

Terraform

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez Commandes Terraform de base.

Activité HTTP

Ajoutez un point de terminaison HTTP/1 (valeur par défaut de Cloud Run, et non HTTP/2) dans le code de votre service pour répondre à la vérification. Le nom du point de terminaison (par exemple, /startup, /health ou /are_you_ready) doit correspondre à path dans la configuration de la vérification. Les points de terminaison HTTP de vérification de l'état'état sont accessibles en externe et suivent les mêmes principes que tous les autres points de terminaison de service HTTP exposés en externe.

Configurez votre service Cloud Run avec l'attribut liveness_probe comme indiqué ci-dessous :

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

Activité gRPC

Assurez-vous que votre image de conteneur implémente le protocole de vérification de l'état gRPC.

Configurez votre service Cloud Run avec l'attribut liveness_probe comme indiqué ci-dessous :

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

Exigences et comportement de la vérification d'activité

Type de vérification Conditions requises Comportement
Activité HTTP Créez un point de terminaison de vérification de l'état d'état HTTP
Utilisez HTTP/1
La vérification d'activité ne démarre qu'une fois la vérification de démarrage réussie. Une fois la vérification configurée et la vérification de démarrage réussie, Cloud Run envoie une requête HTTP GET au point de terminaison de la vérification de l'état l'état (par exemple, /health). Toute réponse 2XX ou 3XX est considérée comme une réussite. Tout autre élément indique un échec.

Si une vérification d'activité échoue dans le délai spécifié (failureThreshold * periodSeconds), le conteneur est arrêté à l'aide d'un signal SIGKILL. Toute requête restante encore diffusée par le conteneur est interrompue par le code d'état HTTP 503. Une fois le conteneur arrêté, l'autoscaling Cloud Run démarre une nouvelle instance de conteneur.
Activité gRPC Mettez en œuvre le protocole de vérification d'état gRPC dans votre service Cloud Run. Si vous configurez une vérification de démarrage gRPC, la vérification d'activité ne commence qu'une fois la vérification de démarrage réussie.

Une fois la vérification d'activité configurée et une vérification de démarrage réussie, Cloud Run envoie une requête de vérification d'état au service.

Si une vérification d'activité échoue dans le délai spécifié (failureThreshold * periodSeconds), le conteneur est arrêté à l'aide d'un signal SIGKILL. Une fois le conteneur arrêté, l'autoscaling Cloud Run démarre une nouvelle instance de conteneur.

Configurer des vérifications d'aptitude

Tout changement de configuration entraîne la création d'une révision. Les révisions ultérieures obtiennent aussi automatiquement le même paramètre de configuration, à moins que vous ne le mettiez explicitement à jour.

Les limites suivantes s'appliquent aux sondes de disponibilité :

  • Si vous activez l'affinité de session, Cloud Run continue d'envoyer des requêtes à la même instance, même si son test d'aptitude échoue.

  • Cloud Run peut envoyer des requêtes à une instance qui vient de démarrer avant que la vérification de l'état de préparation ne soit effectuée pour la première fois.

  • Si vous avez déjà configuré une vérification de l'état de préparation pour votre service Cloud Run à l'aide de l'API Cloud Run Admin v1 avant novembre 2025, vos vérifications de l'état de préparation ne prendront pas effet, même après le déploiement d'une nouvelle configuration pour ce service. Cela se produit parce que le service conserve une ancienne configuration. Les services que vous créez après novembre 2025 ou ceux qui n'ont jamais utilisé de sonde de disponibilité ne sont pas concernés. Pour activer les sondes de disponibilité compatibles sur les services concernés, procédez comme suit :

    1. Déployez une nouvelle révision qui supprime l'ancienne définition de vérification d'aptitude.

    2. Déployez une autre révision qui ajoute la définition de la sonde de préparation appropriée.

    Ces étapes effacent toute configuration plus ancienne et activent la fonctionnalité de vérification d'aptitude.

Vous pouvez configurer une vérification de l'état à l'aide de la console Google Cloud , de Google Cloud CLI ou de YAML :

Console

  1. Dans la console Google Cloud , accédez à la page Cloud Run :

    Accédez à Cloud Run

  2. Pour un nouveau service, développez Conteneur(s), volumes, mise en réseau et sécurité pour afficher les options de vérification de l'état. Pour un service existant, cliquez sur le service que vous souhaitez configurer, puis sur Modifier et déployer pour afficher les options de vérification d'état.

  3. Dans la section Conteneur(s) accédez à Vérifications d'état puis cliquez sur Ajouter une vérification d'état afin d'ouvrir le panneau de configuration Ajouter une vérification d'état.

  4. Dans le menu Sélectionner le vérification de l'état'état, sélectionnez Vérification de l'état de préparation.

  5. Dans le menu Sélectionner un type de vérification, sélectionnez le type de vérification que vous souhaitez utiliser, par exemple HTTP ou gRPC. Le formulaire de configuration de vérification s'affiche.

  6. La configuration de la vérification varie selon le type de vérification. Configurez les paramètres de la vérification :

    • Si vous utilisez des vérifications HTTP :

      • Ajoutez un point de terminaison HTTP/1 (valeur par défaut de Cloud Run, et non HTTP/2) dans le code de votre service pour répondre à la vérification. Le nom du point de terminaison (par exemple, /startup, /health ou /are_you_ready) doit correspondre à path dans la configuration de la vérification. Les points de terminaison HTTP de vérification de l'état'état sont accessibles en externe et suivent les mêmes principes que tous les autres points de terminaison de service HTTP exposés en externe.

      • Utilisez le champ Chemin d'accès pour spécifier le chemin d'accès relatif au point de terminaison (par exemple, /are_you_ready). Le chemin par défaut est /.

    • Si vous utilisez des vérifications gRPC :

    • Pour Port, spécifiez le port de conteneur de votre service. Le port par défaut est le port d'entrée principal.

    • Dans le champ Période, spécifiez la périodicité (en secondes) à laquelle effectuer la vérification. Par exemple, 2 pour effectuer la vérification toutes les deux secondes. Définissez une valeur comprise entre 1 et 300. La valeur par défaut est de 10 secondes.

    • Pour Seuil de réussite, spécifiez le nombre minimal de succès consécutifs requis pour que la vérification soit considérée comme réussie après un échec. La valeur par défaut est 2.

    • Pour Seuil d'échec, spécifiez le nombre de tentatives d'exécution de la vérification avant de signaler un échec, ce qui entraîne l'arrêt de la réception du trafic par l'instance. La valeur par défaut est 3.

    • Dans le champ Délai avant expiration, spécifiez le nombre de secondes d'attente avant expiration de la vérification. Cette valeur ne peut pas dépasser celle spécifiée pour periodSeconds. Définissez une valeur comprise entre 1 et 300. La valeur par défaut est 1.

  7. Cliquez sur Ajouter pour ajouter le nouveau seuil.

  8. Cliquez sur Créer ou Déployer.

gcloud

Compatibilité HTTP

Ajoutez un point de terminaison HTTP/1 (valeur par défaut de Cloud Run, et non HTTP/2) dans le code de votre service pour répondre à la vérification. Le nom du point de terminaison (par exemple, /startup, /health ou /are_you_ready) doit correspondre à path dans la configuration de la vérification. Les points de terminaison HTTP de vérification de l'état'état sont accessibles en externe et suivent les mêmes principes que tous les autres points de terminaison de service HTTP exposés en externe.

Exécutez la commande suivante :

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

Remplacez les éléments suivants :

  • SERVICE : nom de votre service Cloud Run.
  • IMAGE_URL : référence à l'image de conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL se présente sous la forme suivante : LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • Facultatif. PATH : chemin relatif au point de terminaison HTTP, par exemple, /are_you_ready. Le chemin par défaut est /.
  • Facultatif. CONTAINER_PORT : port de conteneur utilisé pour votre service. Le port par défaut est le port d'entrée principal.
  • Facultatif. SUCCESS_THRESHOLD : nombre minimal de succès consécutifs requis pour que la vérification soit considérée comme réussie après un échec. La valeur par défaut est 2.
  • Facultatif. FAILURE_THRESHOLD : nombre de tentatives d'exécution de la vérification avant de signaler un échec, ce qui entraîne l'arrêt de la réception du trafic par l'instance. La valeur par défaut est 3.
  • Facultatif. TIMEOUT : nombre de secondes d'attente jusqu'à l'expiration de la vérification. Cette valeur ne peut pas dépasser la valeur spécifiée pour periodSeconds. Définissez une valeur comprise entre 1 et 300. La valeur par défaut est 1.
  • Facultatif. PERIOD : délai (en secondes) auquel effectuer la vérification. Par exemple, 2 pour effectuer la vérification toutes les deux secondes. Spécifiez une valeur comprise entre 1 et 300. La valeur par défaut est de 10 secondes.

État de préparation gRPC

Assurez-vous que votre image de conteneur implémente le protocole de vérification de l'état gRPC.

Exécutez la commande suivante :

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

Remplacez les éléments suivants :

  • SERVICE : nom de votre service Cloud Run.
  • IMAGE_URL : référence à l'image de conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL se présente sous la forme suivante : LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • Facultatif. CONTAINER_PORT : port de conteneur utilisé pour votre service. Le port par défaut est le port d'entrée principal.
  • Facultatif. GRPC_SERVICE : si cette valeur est définie, elle est utilisée dans le champ de service de grpc.health.v1.HealthCheckRequest lorsque le RPC grpc.health.v1.Health.Check est appelé.
  • Facultatif. SUCCESS_THRESHOLD : nombre minimal de succès consécutifs requis pour que la vérification soit considérée comme réussie après un échec. La valeur par défaut est 2.
  • Facultatif. FAILURE_THRESHOLD : nombre de tentatives d'exécution de la vérification avant de signaler un échec, ce qui entraîne l'arrêt de la réception du trafic par l'instance. La valeur par défaut est 3.
  • Facultatif. TIMEOUT : nombre de secondes d'attente jusqu'à l'expiration de la vérification. Cette valeur ne peut pas dépasser la valeur spécifiée pour periodSeconds. Définissez une valeur comprise entre 1 et 300. La valeur par défaut est 1.
  • Facultatif. PERIOD : délai (en secondes) auquel effectuer la vérification. Par exemple, 2 pour effectuer la vérification toutes les deux secondes. Spécifiez une valeur comprise entre 1 et 300. La valeur par défaut est de 10 secondes.

YAML

Compatibilité HTTP

Ajoutez un point de terminaison HTTP/1 (valeur par défaut de Cloud Run, et non HTTP/2) dans le code de votre service pour répondre à la vérification. Le nom du point de terminaison (par exemple, /startup, /health ou /are_you_ready) doit correspondre à path dans la configuration de la vérification. Les points de terminaison HTTP de vérification de l'état'état sont accessibles en externe et suivent les mêmes principes que tous les autres points de terminaison de service HTTP exposés en externe.

  1. Si vous créez un service, ignorez cette étape. Si vous mettez à jour un service existant, téléchargez sa configuration YAML :
    gcloud run services describe SERVICE --format export > service.yaml
  2. Configurez l'attribut readinessProbe comme indiqué ci-dessous :

    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

    Remplacez les éléments suivants :

    • SERVICE : nom de votre service Cloud Run.
    • IMAGE_URL : référence à l'image de conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL se présente sous la forme suivante : LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • Facultatif. PATH : chemin relatif au point de terminaison HTTP, par exemple, /are_you_ready. Le chemin par défaut est /.
    • Facultatif. CONTAINER_PORT : port de conteneur utilisé pour votre service. Le port par défaut est le port d'entrée principal.
    • Facultatif. SUCCESS_THRESHOLD : nombre minimal de succès consécutifs requis pour que la vérification soit considérée comme réussie après un échec. La valeur par défaut est 2.
    • Facultatif. FAILURE_THRESHOLD : nombre de tentatives d'exécution de la vérification avant de signaler un échec, ce qui entraîne l'arrêt de la réception du trafic par l'instance. La valeur par défaut est 3.
    • Facultatif. TIMEOUT : nombre de secondes d'attente jusqu'à l'expiration de la vérification. Cette valeur ne peut pas dépasser la valeur spécifiée pour periodSeconds. Définissez une valeur comprise entre 1 et 300. La valeur par défaut est 1.
    • Facultatif. PERIOD : période (en secondes) à laquelle effectuer la vérification. Par exemple, 2 pour effectuer la vérification toutes les deux secondes. Spécifiez une valeur comprise entre 1 et 300. La valeur par défaut est de 10 secondes.

  3. Créez ou mettez à jour le service à l'aide de la commande suivante :
    gcloud run services replace service.yaml

État de préparation gRPC

Assurez-vous que votre image de conteneur implémente le protocole de vérification de l'état gRPC.

  1. Si vous créez un service, ignorez cette étape. Si vous mettez à jour un service existant, téléchargez sa configuration YAML :
    gcloud run services describe SERVICE --format export > service.yaml
  2. Configurez l'attribut readinessProbe comme indiqué ci-dessous :

    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

    Remplacez les éléments suivants :

    • SERVICE : nom de votre service Cloud Run.
    • IMAGE_URL : référence à l'image de conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest. Si vous utilisez Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL se présente sous la forme suivante : LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • Facultatif. CONTAINER_PORT : port de conteneur utilisé pour votre service. Le port par défaut est le port d'entrée principal.
    • Facultatif. GRPC_SERVICE : si cette valeur est définie, elle est utilisée dans le champ de service de grpc.health.v1.HealthCheckRequest lorsque le RPC grpc.health.v1.Health.Check est appelé.
    • Facultatif. SUCCESS_THRESHOLD : nombre minimal de succès consécutifs requis pour que la vérification soit considérée comme réussie après un échec. La valeur par défaut est 2.
    • Facultatif. FAILURE_THRESHOLD : nombre de tentatives d'exécution de la vérification avant de signaler un échec, ce qui entraîne l'arrêt de la réception du trafic par l'instance. La valeur par défaut est 3.
    • Facultatif. TIMEOUT : nombre de secondes d'attente jusqu'à l'expiration de la vérification. Cette valeur ne peut pas dépasser la valeur spécifiée pour periodSeconds. Définissez une valeur comprise entre 1 et 300. La valeur par défaut est 1.
    • Facultatif. PERIOD : période (en secondes) à laquelle effectuer la vérification. Par exemple, 2 pour effectuer la vérification toutes les deux secondes. Spécifiez une valeur comprise entre 1 et 300. La valeur par défaut est de 10 secondes.

  3. Créez ou mettez à jour le service à l'aide de la commande suivante :
    gcloud run services replace service.yaml

Allocation du processeur

  • Le processeur est toujours alloué lorsque les vérifications sont exécutées.
  • Toutes les vérifications sont facturées pour l'utilisation de la mémoire et des processeurs, mais il n'y a pas de frais basés sur les requêtes.

Étapes suivantes