Configurer des conteneurs pour les pools de nœuds de calcul

Cette page explique comment configurer la commande entrypoint et les arguments associés pour un pool de nœuds de calcul Cloud Run.

Lorsque Cloud Run démarre un conteneur, il exécute la commande entrypoint par défaut et les arguments de commande par défaut de l'image. Si vous souhaitez ignorer la commande entrypoint et les arguments de commande par défaut de l'image, vous pouvez utiliser les champs command et args dans la configuration du conteneur. Le champ command spécifie la commande réelle exécutée par le conteneur. Le champ args spécifie les arguments transmis à cette commande.

Notez que vous pouvez avoir un maximum de 1 000 arguments par conteneur pour chaque pool de nœuds de calcul.

Rôles requis

Pour obtenir les autorisations nécessaires à la configuration et au déploiement de pools de nœuds de calcul Cloud Run, demandez à votre administrateur de vous attribuer les rôles IAM suivants :

Pour obtenir la liste des rôles et des autorisations IAM associés à Cloud Run, consultez les sections Rôles IAM Cloud Run et Autorisations IAM Cloud Run. Si votre pool de nœuds de calcul Cloud Run interagit avec Google Cloud des API, telles que les bibliothèques clientes Cloud, consultez le guide de configuration de l'identité du service. Pour en savoir plus sur l'attribution de rôles, consultez Autorisations de déploiement et Gérer l'accès.

Configurer un point d'entrée et des arguments

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.

La commande du conteneur et les arguments spécifiés remplacent l'image par défaut ENTRYPOINT et CMD.

Vous pouvez définir la commande entrypoint et ses arguments pour un pool de nœuds de calcul Cloud Run à l'aide de la Google Cloud console, de Google Cloud CLI, de YAML ou de Terraform :

Console

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

    Accédez à Cloud Run

  2. Sélectionnez Pools de nœuds de calcul dans le menu, puis cliquez sur Déployer un conteneur pour configurer un pool de nœuds de calcul. Si vous configurez un pool de nœuds de calcul existant, cliquez dessus, puis sur Modifier et déployer une nouvelle révision.

  3. Si vous configurez un pool de nœuds de calcul, remplissez la page initiale, puis cliquez sur Conteneur(s), Volumes, Mise en réseau, Sécurité pour développer la page de configuration des pools de nœuds de calcul.

  4. Cliquez sur l'onglet Conteneur.

    image

    • Spécifiez la commande que vous souhaitez que le conteneur exécute si vous ne voulez pas utiliser la commande de point d'entrée définie dans l'image de conteneur. Vous pouvez également spécifier les arguments de la commande entrypoint.
  5. Cliquez sur Créer ou Déployer.

gcloud

Pour mettre à jour la commande de démarrage et les arguments d'un service existant, procédez comme suit :

gcloud beta run worker-pools update WORKER_POOL --command COMMAND --args ARG1,ARG-N

Remplacez les éléments suivants :

  • WORKER_POOL : nom du pool de nœuds de calcul.
  • COMMAND : commande avec laquelle le conteneur démarre, si vous n'utilisez pas la commande par défaut.
  • ARG1 : argument que vous envoyez à la commande du conteneur. Utilisez une liste en séparant chaque argument par une virgule.

Pour spécifier un point d'entrée et des arguments lors du déploiement d'un pool de nœuds de calcul nouveau ou existant :

gcloud beta run worker-pools deploy --image IMAGE_URL --command COMMAND --args ARG1,ARG-N

Remplacez IMAGE_URL par une référence à l'image de conteneur qui contient le pool de nœuds de calcul, par exemple us-docker.pkg.dev/cloudrun/container/worker-pool:latest.

Si vous souhaitez restaurer les valeurs par défaut du conteneur pour les commandes entrypoint et les arguments, fournissez des chaînes vides comme suit :

gcloud beta run worker-pools deploy --image IMAGE_URL --command "" --args ""

YAML

  1. Si vous créez un pool de nœuds de calcul, ignorez cette étape. Si vous mettez à jour un pool de nœuds de calcul existant, téléchargez sa configuration YAML :

    gcloud beta run worker-pools describe WORKER_POOL --format export > workerpool.yaml
  2. L'exemple suivant contient la configuration YAML :

    apiVersion: run.googleapis.com/v1
    kind: WorkerPool
    metadata:
      name: WORKER_POOL
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      template:
        spec:
          containers:
          - name: CONTAINER_NAME
            image: IMAGE_URL
            command:
            - COMMAND
            args:
            - ARG1
            - ARG-N

    Remplacez les éléments suivants :

    • WORKER_POOL : nom de votre pool de nœuds de calcul Cloud Run.
    • CONTAINER_NAME : nom du conteneur.
    • IMAGE_URL : référence à l'image de conteneur qui contient le pool de nœuds de calcul, par exemple us-docker.pkg.dev/cloudrun/container/worker-pool:latest
    • COMMAND : commande avec laquelle le conteneur doit démarrer si vous n'utilisez pas la commande par défaut.
    • ARG1 : argument que vous envoyez à la commande du conteneur. Si vous utilisez plusieurs arguments, spécifiez-les chacun sur sa propre ligne, par exemple, comme indiqué, ARG-N.
  3. Créez ou mettez à jour le pool de nœuds de calcul à l'aide de la commande suivante :

    gcloud beta run worker-pools replace workerpool.yaml

Terraform

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

resource "google_cloud_run_v2_worker_pool" "default" {
  name     = "WORKER_POOL"
  location = "REGION"
  launch_stage = "BETA"

  template {
    containers {
      image = "IMAGE_URL"
      command = ["COMMAND"]
      args = ["ARG1", "ARG2"]
    }
  }
}

Remplacez les éléments suivants :

  • WORKER_POOL : nom du pool de nœuds de calcul.
  • REGION : région, par exemple europe-west1. Google Cloud
  • IMAGE_URL : référence à l'image de conteneur qui contient le pool de nœuds de calcul, par exemple us-docker.pkg.dev/cloudrun/container/worker-pool:latest.
  • COMMAND : commande avec laquelle le conteneur démarre, si vous n'utilisez pas la commande par défaut.
  • ARG1, ARG2 : argument(s) que vous envoyez à la commande du conteneur.

Configurer l'ordre de démarrage des conteneurs pour les déploiements side-car

Pour spécifier l'ordre de démarrage des conteneurs dans un déploiement side-car, utilisez la fonctionnalité de dépendances de conteneurs. Spécifiez les conteneurs qui ont des dépendances et listez les conteneurs dont ils dépendent, afin que ces conteneurs soient démarrés en premier. Les conteneurs sans dépendance sont toujours démarrés en premier et simultanément.

Pour utiliser cette fonctionnalité, vous devez utiliser des vérification de l'état La vérification du démarrage permet à Cloud Run d'inspecter l'état d'un conteneur dépendant pour s'assurer qu'il est opérationnel avant de démarrer le conteneur suivant. Si vous n'utilisez pas de vérifications d'état, les conteneurs sont démarrés dans l'ordre spécifié, même si les conteneurs dont ils dépendent ne démarrent pas.

Notez qu'il n'existe pas de vérification d'état de démarrage par défaut pour les pools de nœuds de calcul.

Utilisez la Google Cloud console, Google Cloud CLI ou YAML pour spécifier l'ordre de démarrage :

Console

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

    Accédez à Cloud Run

    • Sélectionnez Pools de nœuds de calcul dans le menu.
    • Pour un pool de nœuds de calcul existant, cliquez dessus dans la liste et sélectionnez Modifier et déployer une nouvelle révision pour afficher le formulaire de déploiement de la révision.
    • Pour un nouveau pool de nœuds de calcul, cliquez sur Déployer un conteneur pour afficher le formulaire Créer un pool de nœuds de calcul.
  2. Pour un nouveau pool de nœuds de calcul, spécifiez le nom du pool de nœuds de calcul, l'URL du conteneur d'entrée, l'allocation de processeur, le contrôle des entrées et l'authentification. Dans l'onglet Conteneur(s), Volumes, Mise en réseau, Sécurité, procédez comme suit :

    1. Configurez le conteneur d'entrée.
    2. Pour ajouter chacun des autres conteneurs que vous déployez, cliquez sur Ajouter un conteneur.
    3. Pour tous les conteneurs à l'exception du conteneur d'entrée, configurez une vérification d'état de démarrage.
    4. Si un conteneur doit être démarré après certains autres conteneurs, sélectionnez-les dans le menu Ordre de démarrage du conteneur.
  3. Pour un pool de nœuds de calcul existant, procédez comme suit :

    1. Pour tous les conteneurs à l'exception du conteneur d'entrée, configurez une vérification d'état de démarrage.
    2. Chaque conteneur s'affiche avec son propre menu Ordre de démarrage du conteneur. Si un conteneur a besoin que d'autres conteneurs soient opérationnels avant de pouvoir démarrer, utilisez le menu Ordre de démarrage du conteneur pour sélectionner les conteneurs qui doivent démarrer en premier.
  4. Terminez toutes les autres configurations requises, puis cliquez sur Créer pour un nouveau pool de nœuds de calcul ou sur Déployer pour un pool de nœuds de calcul existant. Patientez jusqu'à la fin du déploiement.

gcloud

Avant d'utiliser Google Cloud CLI pour spécifier l'ordre de démarrage, configurez une vérification d'état de démarrage.

  1. Dans la Google Cloud console, activez Cloud Shell.

    Activer Cloud Shell

    En bas de la Google Cloud console, une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.

  2. Pour déployer plusieurs conteneurs sur un service avec un ordre de démarrage spécifique, exécutez la commande suivante :

gcloud beta run worker-pools deploy WORKER_POOL \
     --container CONTAINER_1_NAME --image='WORKER_POOL_IMAGE'
     --container CONTAINER_2_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME \
     --container CONTAINER_3_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME,CONTAINER_2_NAME

Remplacez les éléments suivants :

  • WORKER_POOL : nom du pool de nœuds de calcul.
  • IMAGE_URL : référence à l'image de conteneur qui contient le pool de nœuds de calcul, par exemple us-docker.pkg.dev/cloudrun/container/worker-pool:latest.
  • SIDECAR_IMAGE : référence à l'image du conteneur side-car.

    Si vous souhaitez configurer chaque conteneur dans la commande de déploiement, indiquez la configuration de chaque conteneur après les paramètres container.

YAML

  1. Si vous créez un pool de nœuds de calcul, ignorez cette étape. Si vous mettez à jour un pool de nœuds de calcul existant, téléchargez sa configuration YAML :

    gcloud beta run worker-pools describe WORKER_POOL --format export > workerpool.yaml
  2. L'exemple suivant contient la configuration YAML :

    apiVersion: run.googleapis.com/v1
    kind: WorkerPool
    metadata:
      name: WORKER_POOL
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/container-dependencies: '{"CONTAINER1":["CONTAINER2"], "CONTAINER3":["CONTAINER1","CONTAINER2"]}'

    Remplacez les éléments suivants :

    • WORKER_POOL : nom de votre pool de nœuds de calcul Cloud Run.
    • CONTAINER1 : nom du premier conteneur qui dépend d'un ou de plusieurs conteneurs. Vous pouvez définir le nom du conteneur dans le fichier YAML. Cloud Run génère automatiquement un nom si aucun n'est spécifié.
    • CONTAINER2 : nom du conteneur qui doit démarrer avant CONTAINER1.
    • CONTAINER3 : nom du deuxième conteneur qui dépend d'un ou de plusieurs conteneurs.

    Dans l'exemple présenté dans l'extrait de code YAML, CONTAINER2 démarre en premier, CONTAINER1 en deuxième et CONTAINER3 en dernier.

  3. Créez ou mettez à jour le pool de nœuds de calcul à l'aide de la commande suivante :

    gcloud beta run worker-pools replace workerpool.yaml

Afficher la configuration du conteneur pour le pool de nœuds de calcul

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

    Accédez à Cloud Run

  2. Cliquez sur Pools de nœuds de calcul pour afficher la liste des pools de nœuds de calcul déployés.

  3. Cliquez sur le pool de nœuds de calcul que vous souhaitez examiner pour afficher son volet de détails.

  4. Cliquez sur l'onglet Conteneurs pour afficher la configuration du conteneur du pool de nœuds de calcul.