Vérifications d'état de conteneur (services)

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Vous pouvez configurer des tests de vérification d'état de démarrage HTTP et TCP pour les services Cloud Run nouveaux et existants.

Vous pouvez utiliser des vérifications de démarrage pour déterminer quand un conteneur a démarré et est prêt à accepter le trafic.

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 les types de vérifications suivants:

  • Vérification de démarrage HTTP
  • Vérification de démarrage TCP

Vous configurez une vérification de démarrage pour un service Cloud Run à l'aide du fichier YAML. La configuration varie en fonction du type de vérification.

Configurer une vérification de démarrage HTTP

Il n'existe pas de vérifications de démarrage HTTP par défaut pour HTTP, mais vous pouvez en configurer une pour votre service Cloud Run. Notez que l'utilisation d'une vérification d'état HTTP nécessite de créer un point de terminaison de vérification d'état HTTP correspondant dans votre service pour répondre à la vérification.

Une fois la vérification de démarrage configurée, Cloud Run envoie une requête HTTP GET au point de terminaison de la vérification d'état du service (par exemple, /ready). Toute réponse comprise entre 200 et 400 est réussie. Tout autre élément indique un échec.

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

Vous pouvez configurer une vérification de démarrage HTTP à l'aide de la console Google Cloud pour un service existant ou de YAML pour un nouveau service ou un service existant:

Console

  1. Accédez à Cloud Run

  2. Cliquez sur le service que vous souhaitez configurer.

  3. Cliquez sur l'onglet YAML.

  4. Cliquez sur Modifier et configurez l'attribut startupProbe comme indiqué:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
    name: SERVICE
    spec:
    template:
    metadata:
    spec:
      containers:
        image: IMAGE_URL
        startupProbe:
          httpGet:
            path: PATH
            httpHeaders:
              - name: HEADER_NAME
                value: HEADER_VALUE
          initialDelaySeconds: DELAY
          timeoutSeconds: TIMEOUT
          failureThreshold: THRESHOLD
          periodSeconds: PERIOD
    

    replace

    • SERVICE par le nom de votre service Cloud Run ;
    • IMAGE_URL par une référence à l'image du conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest ;
    • PATH par le chemin relatif au point de terminaison HTTP, par exemple, /ready.
    • (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) DELAY par 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 seconde et 240 secondes. La valeur par défaut est de 0 seconde.
    • (FACULTATIF) TIMEOUT par le 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) THRESHOLD par le nombre de tentatives d'exécution de la vérification avant de marquer le conteneur comme Non prêt. La valeur par défaut est "3".
    • (FACULTATIF) PERIOD par la fréquence (en secondes) pour effectuer la vérification. Spécifiez une valeur comprise entre 1 seconde et 240 secondes. La valeur par défaut est de 10 secondes.
  5. Cliquez sur Enregistrer et déployer la nouvelle révision.

YAML

Vous pouvez télécharger et afficher la configuration de service existante à l'aide de la commande gcloud run services describe --format export, qui renvoie les résultats nettoyés au format YAML. Vous pouvez ensuite modifier les champs décrits ci-dessous et importer le fichier YAML modifié à l'aide de la commande gcloud run services replace. Veillez à ne modifier que les champs indiqués.

  1. Pour afficher et télécharger la configuration, exécutez la commande suivante :

    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
                httpHeaders:
                  - name: HEADER_NAME
                    value: HEADER_VALUE
              initialDelaySeconds: DELAY
              timeoutSeconds: TIMEOUT
              failureThreshold: THRESHOLD
              periodSeconds: PERIOD
    

    replace

    • SERVICE par le nom de votre service Cloud Run ;
    • IMAGE_URL par une référence à l'image du conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest ;
    • PATH par le chemin relatif au point de terminaison HTTP, par exemple, /ready.
    • (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) DELAY par 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 seconde et 240 secondes. La valeur par défaut est de 0 seconde.
    • (FACULTATIF) TIMEOUT par le 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) THRESHOLD par le nombre de tentatives d'exécution de la vérification avant de marquer le conteneur comme Non prêt. La valeur par défaut est "3".
    • (FACULTATIF) PERIOD par la fréquence (en secondes) pour effectuer la vérification. Spécifiez une valeur comprise entre 1 seconde et 240 secondes. La valeur par défaut est de 10 secondes.
  3. Remplacez la configuration du service en utilisant la commande suivante :

    gcloud run services replace service.yaml

Créer des points de terminaison HTTP de vérification d'état

Si vous configurez votre service Cloud Run pour une vérification de démarrage HTTP, vous devez ajouter un point de terminaison dans votre code de service pour répondre à la vérification. Le point de terminaison peut porter n'importe quel nom, par exemple /startup ou /ready, mais il doit correspondre aux valeurs que vous spécifiez pour path dans la configuration de la vérification. Par exemple, si vous spécifiez /ready pour une vérification de démarrage HTTP, vous spécifiez path dans votre configuration de vérification, comme indiqué ci-dessous:

startupProbe:
  httpGet:
    path: /ready

Configurer une vérification de démarrage TCP

Si vous ne configurez pas vous-même une vérification de démarrage, une vérification de démarrage TCP est automatiquement configurée avec des valeurs par défaut pour un nouveau service Cloud Run. La vérification par défaut est équivalente à la suivante:

startupProbe:
  tcpSocket:
    port: CONTAINER_PORT
  timeoutSeconds: 240
  periodSeconds: 240
  failureThreshold: 1

port est déjà défini sur le port du conteneur, et restera défini sur le port du conteneur, même si vous tentez de le définir lorsque vous mettez à jour la configuration de la vérification.

Vous pouvez modifier ces valeurs par défaut en suivant les instructions de cette section.

Pour les vérifications de démarrage TCP, 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 échoue dans le délai spécifié (failureThreshold * periodSeconds), qui ne peut pas dépasser 240 secondes, le conteneur est arrêté.

Vous pouvez configurer une vérification de démarrage TCP à l'aide de la console Google Cloud pour un service existant ou de YAML pour un service nouveau ou existant:

Console

  1. Accédez à Cloud Run

  2. Cliquez sur le service que vous souhaitez configurer.

  3. Cliquez sur l'onglet YAML.

  4. Cliquez sur Modifier et configurez l'attribut startupProbe comme indiqué:

    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
            failureThreshold: THRESHOLD
            periodSeconds: PERIOD
    

    replace

    • SERVICE par le nom de votre service Cloud Run ;
    • IMAGE_URL par une référence à l'image du conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest ;
    • CONTAINER_PORT est déjà défini sur le port du conteneur. Il restera défini sur le port du conteneur, même si vous tentez de le définir lorsque vous mettez à jour la vérification.
    • DELAY par 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 seconde et 240 secondes. La valeur par défaut est de 0 seconde.
    • THRESHOLD par le nombre de tentatives d'exécution de la vérification avant de marquer le conteneur comme Non prêt. La valeur par défaut est "3".
    • PERIOD par la fréquence (en secondes) pour effectuer la vérification. Spécifiez une valeur comprise entre 1 seconde et 240 secondes. La valeur par défaut est de 10 secondes.
  5. Cliquez sur Enregistrer et déployer la nouvelle révision.

YAML

Vous pouvez télécharger et afficher la configuration de service existante à l'aide de la commande gcloud run services describe --format export, qui renvoie les résultats nettoyés au format YAML. Vous pouvez ensuite modifier les champs décrits ci-dessous et importer le fichier YAML modifié à l'aide de la commande gcloud run services replace. Veillez à ne modifier que les champs indiqués.

  1. Pour afficher et télécharger la configuration, exécutez la commande suivante :

    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
              failureThreshold: THRESHOLD
              periodSeconds: PERIOD
                

    replace

    • SERVICE par le nom de votre service Cloud Run ;
    • IMAGE_URL par une référence à l'image du conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest ;
    • CONTAINER_PORT est déjà défini sur le port du conteneur. Cette valeur ne doit pas être modifiée.
    • DELAY par 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 seconde et 240 secondes. La valeur par défaut est de 0 seconde.
    • THRESHOLD par le nombre de tentatives d'exécution de la vérification avant de marquer le conteneur comme Non prêt. La valeur par défaut est "3".
    • PERIOD par la fréquence (en secondes) pour effectuer la vérification. Spécifiez une valeur comprise entre 1 seconde et 240 secondes. La valeur par défaut est de 10 secondes.
  3. Remplacez la configuration du service en utilisant la commande suivante :

    gcloud run services replace service.yaml