Cette page explique comment configurer des vérifications de démarrage HTTP, TCP et gRPC pour les tâches Cloud Run nouvelles et existantes. La configuration varie en fonction du type de vérification.
Cas d'utilisation
Vous pouvez configurer des vérifications d'état de démarrage. Les vérifications de démarrage déterminent si le conteneur a démarré et est prêt à exécuter la tâche.
Lorsqu'un job ne parvient pas à démarrer de manière répétée, Cloud Run limite les redémarrages de tâches pour éviter les boucles de plantage non contrôlées.
Exigences et comportement de vérification
Type de vérification | Conditions requises | Comportement |
---|---|---|
Démarrage TCP | Aucun | Si Cloud Run ne parvient pas à établir une connexion, cela indique un échec. Si une vérification de démarrage n'aboutit pas dans l'intervalle de temps spécifié, Cloud Run arrête le conteneur. Cet intervalle de temps est calculé comme failureThreshold * periodSeconds et ne peut pas dépasser 240 secondes. |
Démarrage HTTP | Créez un point de terminaison de vérification 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 d'état de la tâche (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é. |
Démarrage gRPC | Implémentez le protocole de vérification de l'état gRPC dans votre tâche 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
Configurez des vérifications HTTP, TCP et gRPC à l'aide de la console Google Cloud ou de YAML:
Console
Important: Si vous configurez votre tâche Cloud Run pour les vérifications HTTP, vous devez également ajouter un vérification de l'état d'état HTTP dans votre code de tâche pour répondre à la vérification. Si vous configurez une vérification gRPC, vous devez également mettre en œuvre le protocole de vérification d'état gRPC dans votre tâche Cloud Run.
Dans la console Google Cloud , accédez à la page Cloud Run.
Pour créer une tâche, cliquez sur DÉPLOYER UN CONTENEUR, puis sur Tâche. Pour un job existant, cliquez sur l'onglet Jobs (Jobs), cliquez sur le job souhaité, puis sur VIEW AND EDIT JOB CONFIGURATION (AFFICHER ET MODIFIER LA CONFIGURATION DU JOB).
Développez la section Conteneur(s), volumes, mise en réseau, sécurité.
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.
Dans le menu Sélectionner le type de vérification de l'état de l'état, sélectionnez le type de démarrage de la vérification de l'état.
Dans le menu Sélectionner un type de vérification, sélectionnez le type de vérification, par exemple HTTP ou gRPC. Le formulaire de configuration de vérification s'affiche.
Notez que la configuration de vérification varie selon le type de vérification. Configurez les paramètres de la vérification :
- Si vous utilisez des vérifications HTTP :
- 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 ensuite 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.
- Utilisez le champ Chemin d'accès pour spécifier le chemin d'accès relatif au point de terminaison (par exemple,
- Pour Port, spécifiez le port sur lequel le conteneur de tâche écoute la sonde.
- 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 l'intervalle de temps (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 à effectuer 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.
- Si vous utilisez des vérifications HTTP :
Cliquez sur Ajouter pour ajouter le nouveau seuil.
YAML
Important: si vous configurez votre tâche Cloud Run pour les vérifications HTTP, vous devez également ajouter un point de terminaison dans le code de votre tâche pour répondre à la vérification. Si vous configurez une vérification gRPC, vous devez également mettre en œuvre le protocole de vérification d'état gRPC dans votre tâche Cloud Run.
Démarrage TCP
Si vous créez un job, ignorez cette étape. Si vous mettez à jour un job existant, téléchargez sa configuration YAML :
gcloud run jobs describe JOB_NAME --format export > job.yaml
Configurez l'attribut
startupProbe
comme indiqué ci-dessous :apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB spec: template: metadata: spec: containers: - image: IMAGE_URL startupProbe: tcpSocket: port: CONTAINER_PORT initialDelaySeconds: DELAY timeoutSeconds: TIMEOUT failureThreshold: THRESHOLD periodSeconds: PERIOD
Remplacez les variables suivantes :
- JOB par le nom de votre tâche Cloud Run
- IMAGE_URL par l'URL de l'image du conteneur de la tâche (par exemple,
us-docker.pkg.dev/cloudrun/container/job:latest
). - Facultatif: CONTAINER_PORT avec le port sur lequel le conteneur de tâche écoute la sonde.
- 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 240. La valeur par défaut est 1. - THRESHOLD par le nombre de tentatives d'exécution de la vérification à effectuer avant d'arrêter le conteneur. La valeur par défaut est "3".
- PERIOD par le 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.
Créez ou mettez à jour le job à l'aide de la commande suivante :
gcloud run jobs replace job.yaml
Démarrage HTTP
Si vous créez un job, ignorez cette étape. Si vous mettez à jour un job existant, téléchargez sa configuration YAML :
gcloud run jobs describe JOB_NAME --format export > job.yaml
Configurez l'attribut
startupProbe
comme indiqué ci-dessous :apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB 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 variables suivantes :
- JOB par le nom de votre tâche Cloud Run
- IMAGE_URL par l'URL de l'image du conteneur de la tâche (par exemple,
us-docker.pkg.dev/cloudrun/container/job:latest
). - PATH par le chemin relatif au point de terminaison HTTP, par exemple,
/ready
. - Facultatif: CONTAINER_PORT avec le port sur lequel le conteneur de tâche écoute la sonde.
- 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 240. La valeur par défaut est 1. - Facultatif: THRESHOLD par le 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: PERIOD par la 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 240 secondes. La valeur par défaut est de 10 secondes.
Créez ou mettez à jour le job à l'aide de la commande suivante :
gcloud run jobs replace job.yaml
Démarrage gRPC
Si vous créez un job, ignorez cette étape. Si vous mettez à jour un job existant, téléchargez sa configuration YAML :
gcloud run jobs describe JOB_NAME --format export > job.yaml
Configurez l'attribut
startupProbe
comme indiqué ci-dessous :apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB 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 variables suivantes :
- JOB par le nom de votre tâche Cloud Run
- IMAGE_URL par l'URL de l'image du conteneur de la tâche (par exemple,
us-docker.pkg.dev/cloudrun/container/job:latest
). - Facultatif : GRPC_SERVICE. Si défini, il est utilisé dans le champ de service de
grpc.health.v1.HealthCheckRequest
lorsque l'appel RPCgrpc.health.v1.Health.Check
est effectué. - Facultatif: CONTAINER_PORT avec le port sur lequel le conteneur de tâche écoute la sonde.
- 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 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 240. La valeur par défaut est 1.
- Facultatif: THRESHOLD par le 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: PERIOD par la 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 240 secondes. La valeur par défaut est de 10 secondes.
Créez ou mettez à jour le job à l'aide de la commande suivante :
gcloud run jobs replace job.yaml
Créer des points de terminaison HTTP de vérification d'état
Si vous configurez votre tâche Cloud Run pour une vérification de démarrage HTTP, vous devez ajouter un point de terminaison dans votre code de tâche pour répondre à la vérification. Vous pouvez utiliser n'importe quel nom pour le point de terminaison, par exemple /startup
ou /ready
. Le nom doit correspondre aux valeurs que vous spécifiez pour path
dans la configuration de la sonde. Par exemple, si vous spécifiez /ready
pour une vérification de démarrage HTTP, spécifiez path
dans votre configuration de vérification, comme indiqué ci-dessous:
startupProbe: httpGet: path: /ready