Cette page explique comment configurer des vérifications de démarrage HTTP, TCP et gRPC pour les jobs Cloud Run nouveaux et existants. La configuration varie selon le 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 le job.
Lorsqu'un job ne parvient pas à démarrer à plusieurs reprises, 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 de connexion, il 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 suit : failureThreshold * periodSeconds et ne peut pas dépasser 240 secondes. |
| Démarrage HTTP | Créez un point de vérification de l'état HTTP Utilisez HTTP/1 |
Une fois la vérification configurée, Cloud Run envoie une requête GET HTTP au point de terminaison de vérification de l'état du job (par exemple, /ready). Toute réponse comprise entre 200 et 400 indique un succès, toute autre réponse 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é. |
| Démarrage gRPC | Mettez en œuvre le protocole de vérification d'état gRPC dans votre job Cloud Run. | 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é. |
Configurer des vérifications
Configurez des vérifications HTTP, TCP et gRPC à l'aide de la Google Cloud console ou de YAML :
Console
Important : Si vous configurez votre job Cloud Run pour les vérifications HTTP, vous devez également ajouter un vérification de l'état HTTP dans votre code de job 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 job Cloud Run.
Dans la Google Cloud console, accédez à la page Jobs de Cloud Run :
Pour un nouveau job, cliquez sur Déployer un conteneur. Pour un job existant, cliquez sur l'onglet Jobs, sur le job de votre choix, puis sur Afficher et modifier la configuration du job.
Développez Conteneurs, 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 pour ouvrir le panneau de configuration Ajouter une vérification d'état.
Dans le menu Sélectionner le vérification de l'étaté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 le champ Port, spécifiez le port sur lequel le conteneur de job écoute la vérification.
- 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) auquel effectuer la vérification. Par exemple,
2pour 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 job Cloud Run pour les vérifications HTTP, vous devez également ajouter un point de terminaison dans votre code de job 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 job 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
startupProbecomme 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 job Cloud Run
- IMAGE_URL par l'URL de l'image de conteneur du job (par exemple,
us-docker.pkg.dev/cloudrun/container/job:latest) - Facultatif : CONTAINER_PORT par le port sur lequel le conteneur de job écoute 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 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,
2pour 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
startupProbecomme 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 job Cloud Run
- IMAGE_URL par l'URL de l'image de conteneur du job (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 par le port sur lequel le conteneur de job écoute la vérification
- Facultatif :
httpHeaderspeut être utilisé pour fournir plusieurs en-têtes personnalisés ou des en-têtes personnalisés 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 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 le délai (en secondes) auquel effectuer la vérification
Par exemple,
2pour 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
startupProbecomme 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 job Cloud Run
- IMAGE_URL par l'URL de l'image de conteneur du job (par exemple,
us-docker.pkg.dev/cloudrun/container/job:latest) - Facultatif : GRPC_SERVICE. Si cette option est définie, elle est utilisée dans le champ de service de
grpc.health.v1.HealthCheckRequestlorsque l'appel RPCgrpc.health.v1.Health.Checkest effectué. - Facultatif : CONTAINER_PORT par le port sur lequel le conteneur de job écoute la vérification
- 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 le délai (en secondes) auquel effectuer la vérification
Par exemple,
2pour 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 de l'état
Si vous configurez votre job Cloud Run pour une vérification de démarrage HTTP, vous devez ajouter un point de terminaison dans votre code de job 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 vérification. Par exemple, si vous spécifiez /ready pour une vérification de démarrage HTTP, spécifiez path dans la configuration de votre vérification comme indiqué ci-dessous :
startupProbe: httpGet: path: /ready