Déployer sur Cloud Run

Cette page explique comment déployer des images de conteneur dans un nouveau service Cloud Run ou dans une nouvelle version d'un service Cloud Run existant.

Pour obtenir un exemple de déploiement d'un nouveau service, consultez la section Guide de démarrage rapide sur le déploiement d'un exemple de conteneur.

Avant de commencer

Si vous êtes soumis à une règle d'administration de restriction de domaine limitant les appels non authentifiés pour votre projet, vous devez accéder au service déployé comme décrit dans la section Tester les services privés.

Autorisations requises pour déployer

Vous devez disposer de l'un des rôles suivants :

Registres de conteneurs et images acceptés

Vous pouvez utiliser des images de conteneurs stockées dans Artifact Registry, Container Registry (obsolète) ou Docker Hub. Nous vous recommandons d'utiliser Artifact Registry.

Vous pouvez uniquement utiliser les types d'images de conteneurs suivants :

Envisagez d'utiliser Docker Hub uniquement pour déployer des images de conteneurs populaires, telles que des images officielles Docker ou des images OSS sponsorisées par Docker. Pour accroître la disponibilité, Google recommande de déployer ces images Docker Hub via un dépôt Artifact Registry distant.

Si vous stockez des images de conteneurs dans un autre type de registre de conteneurs, suivez les instructions de la section Déployer des images à partir de registres non compatibles.

Déployer un nouveau service

Vous pouvez spécifier une image de conteneur avec un tag (par exemple, us-docker.pkg.dev/my-project/container/my-image:latest) ou avec un condensé exact (par exemple, us-docker.pkg.dev/my-project/container/my-image@sha256:41f34ab970ee...).

Le déploiement d'un service pour la première fois crée sa première révision. Notez que les révisions sont immuables. Si vous déployez à partir d'un tag d'image de conteneur, il sera transformé en condensé et la révision desservira toujours ce condensé.

Vous pouvez déployer un conteneur à l'aide de la console Google Cloud, de la ligne de commande gcloud ou d'un fichier de configuration YAML.

Cliquez sur l'onglet pour obtenir des instructions concernant l'utilisation de l'outil de votre choix.

Console

Pour déployer une image de conteneur, procédez comme suit :

  1. Accédez à Cloud Run

  2. Cliquez sur Create service (Créer un service) pour afficher le formulaire Create service.

    1. Dans le formulaire, sélectionnez l'option de déploiement :

      1. Si vous souhaitez déployer manuellement un conteneur, sélectionnez Déployer une révision à partir d'une image de conteneur existante, puis spécifiez l'image de conteneur.

      2. Pour une automatisation à des fins de déploiement continu, sélectionnez Déployer de nouvelles révisions en continu à partir d'un dépôt source et suivez les instructions pour les déploiements continus.

    2. Saisissez le nom du service requis. Les noms de service doivent comporter un maximum de 49 caractères et être uniques par région et par projet. Un nom de service ne peut pas être modifié ultérieurement et il est visible publiquement.

    3. Sélectionnez la région dans laquelle vous souhaitez créer votre service. Le sélecteur de région indique le niveau de tarification et la disponibilité des mappages de domaines, et met en évidence les régions avec l'impact carbone le plus faible.

    4. Définissez l'allocation et la tarification du processeur si nécessaire.

    5. Sous Autoscaling, spécifiez des instances minimum et maximum.

    6. Définissez les paramètres de l'objet Ingress dans le formulaire, le cas échéant.

    7. Sous Authentification, configurez les éléments suivants :

      • Si vous créez une API ou un site Web public, sélectionnez Allow unauthenticated invocations (Autoriser les appels non authentifiés). En sélectionnant cette option, le rôle Demandeur IAM est attribué à l'identifiant spécial allUser. Vous pouvez utiliser IAM pour modifier ce paramètre ultérieurement après avoir créé le service.
      • Si vous souhaitez qu'un service sécurisé soit protégé par authentification, sélectionnez Require authentication (Exiger l'authentification).
  3. Cliquez sur Conteneur(s), volumes, mise en réseau et sécurité pour définir d'autres paramètres facultatifs dans les onglets appropriés :

  4. Une fois la configuration du service terminée, cliquez sur Créer pour déployer l'image sur Cloud Run, puis patientez jusqu'à la fin du déploiement.

  5. Cliquez sur le lien URL affiché pour ouvrir le point de terminaison unique et stable de votre service déployé.

Ligne de commande

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

    Activer Cloud Shell

    En bas de la fenêtre de la console Google Cloud, 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 une image de conteneur, procédez comme suit :

    1. Exécutez la commande suivante :

      gcloud run deploy SERVICE --image IMAGE_URL

      • Remplacez SERVICE par le nom du service sur lequel vous souhaitez déployer l'image. Les noms de service doivent comporter un maximum de 49 caractères et être uniques par région et par projet. Si le service n'existe pas encore, cette commande le crée lors du déploiement. Vous pouvez omettre ce paramètre, mais dans ce cas le nom du service vous sera demandé.
      • Remplacez IMAGE_URL par une 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 : REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. Notez que si vous ne fournissez pas l'option --image, la commande de déploiement tente d'effectuer le déploiement à partir du code source.

      Si vous créez une API ou un site Web public, autorisez les appels non authentifiés de votre service à l'aide de l'option --allow-unauthenticated. Cela attribue le rôle IAM Demandeur Cloud Run à allUsers. Vous pouvez également spécifier --no-allow-unauthenticated pour interdire les appels non authentifiés. Si vous omettez l'une de ces options, vous êtes invité à confirmer l'exécution de la commande deploy.

    2. Patientez jusqu'à la fin du déploiement. Une fois l'opération achevée, un message de réussite indiquant l'URL du service déployé s'affiche.

    Notez que pour effectuer un déploiement dans un emplacement différent de celui que vous avez défini à l'aide des propriétés run/region et gcloud, vous devez exécuter les commandes suivantes :

    • gcloud run deploy SERVICE --region REGION

YAML

Vous pouvez stocker votre spécification de service dans un fichier YAML, puis la déployer à l'aide de gcloud CLI.

  1. Créez un fichier service.yaml avec le contenu suivant :

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        spec:
          containers:
          - image: IMAGE

    Remplacer

    • SERVICE par le nom de votre service Cloud Run ; Les noms de service doivent comporter un maximum de 49 caractères et être uniques par région et par projet.
    • IMAGE par l'URL de votre image de conteneur

    Vous pouvez également spécifier d'autres éléments de configuration, tels que des variables d'environnement ou des limites de mémoire.

  2. Déployez le nouveau service à l'aide de la commande suivante :

    gcloud run services replace service.yaml
  3. Vous pouvez éventuellement rendre votre service public si vous souhaitez autoriser un accès non authentifié à celui-ci.

Cloud Code

Pour déployer avec Cloud Code, consultez les guides IntelliJ et Visual Studio Code.

Terraform

Si vous utilisez Terraform, définissez votre service dans une configuration Terraform à l'aide de la ressource google_cloud_run_v2_service du fournisseur Google Cloud Platform.

  1. Créez un fichier main.tf avec le contenu suivant :

    provider "google" {
      project = "PROJECT-ID"
    }
    
    resource "google_cloud_run_v2_service" "default" {
      name     = "SERVICE"
      location = "REGION"
      client   = "terraform"
    
      template {
        containers {
          image = "IMAGE"
        }
      }
    }
    
    resource "google_cloud_run_v2_service_iam_member" "noauth" {
      location = google_cloud_run_v2_service.default.location
      name     = google_cloud_run_v2_service.default.name
      role     = "roles/run.invoker"
      member   = "allUsers"
    }
    

    Remplacez les éléments suivants :

    • PROJECT-ID par l'ID du projet Google Cloud
    • REGION par la région Google Cloud
    • SERVICE par le nom de votre service Cloud Run ; Les noms de service doivent comporter un maximum de 49 caractères et être uniques par région et par projet.
    • IMAGE_URL par une 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 : REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG

    Cette configuration autorise l'accès public (l'équivalent de --allow-unauthenticated). Pour rendre le service privé, supprimez le stanza google_cloud_run_v2_service_iam_member.

  2. Initialisez Terraform :

    terraform init
  3. Appliquez la configuration Terraform :

    terraform apply

    Confirmez que vous souhaitez appliquer les actions décrites en saisissant yes.

Bibliothèques clientes

Pour créer un service à partir du code, procédez comme suit :

Emplacements Cloud Run

Cloud Run est régional, ce qui signifie que l'infrastructure qui exécute vos services Cloud Run est située dans une région spécifique et gérée par Google pour être disponible de manière redondante dans toutes les zones de cette région.

Lors de la sélection de la région dans laquelle exécuter vos services Cloud Run, vous devez tout d'abord considérer vos exigences en matière de latence, de disponibilité et de durabilité. Vous pouvez généralement sélectionner la région la plus proche de vos utilisateurs, mais vous devez tenir compte de l'emplacement des autres produits Google Cloud utilisés par votre service Cloud Run. L'utilisation conjointe de produits Google Cloud dans plusieurs emplacements peut avoir une incidence sur la latence et le coût de votre service.

Cloud Run est disponible dans les régions suivantes :

Soumis aux tarifs de niveau 1

Soumis aux tarifs de niveau 2

  • africa-south1 (Johannesburg)
  • asia-east2 (Hong Kong)
  • asia-northeast3 (Séoul, Corée du Sud)
  • asia-southeast1 (Singapour)
  • asia-southeast2 (Jakarta)
  • asia-south1 (Mumbai, Inde)
  • asia-south2 (Delhi, Inde)
  • australia-southeast1 (Sydney)
  • australia-southeast2 (Melbourne)
  • europe-central2 (Varsovie, Pologne)
  • europe-west10 (Berlin)
  • europe-west12 (Turin)
  • europe-west2 (Londres, Royaume-Uni) icône feuille Faibles émissions de CO2
  • europe-west3 (Francfort, Allemagne) icône feuille Faibles émissions de CO2
  • europe-west6 (Zurich, Suisse) icône feuille Faibles émissions de CO2
  • me-central1 (Doha)
  • me-central2 (Dammam)
  • northamerica-northeast1 (Montréal) icône feuille Faibles émissions de CO2
  • northamerica-northeast2 (Toronto) icône feuille Faibles émissions de CO2
  • southamerica-east1 (São Paulo, Brésil) icône feuille Faibles émissions de CO2
  • southamerica-west1 (Santiago, Chili) icône feuille Faibles émissions de CO2
  • us-west2 (Los Angeles)
  • us-west3 (Salt Lake City)
  • us-west4 (Las Vegas)

Si vous avez déjà créé un service Cloud Run, vous pouvez afficher la région dans le tableau de bord Cloud Run de la console Google Cloud.

Lors du déploiement, l'agent de service Cloud Run doit pouvoir accéder au conteneur déployé, ce qui est le cas par défaut.

Chaque service dispose d'une URL unique et permanente qui ne change pas au fil du temps lorsque vous déploierez de nouvelles révisions.

Déployer une nouvelle révision d'un service existant

Vous pouvez déployer une nouvelle révision à l'aide de Google Cloud Console, de la ligne de commande gcloud ou d'un fichier de configuration YAML.

Notez que la modification des paramètres de configuration entraîne la création d'une révision, même si l'image du conteneur ne change pas. Chaque révision créée est immuable.

Cliquez sur l'onglet pour obtenir des instructions concernant l'utilisation de l'outil de votre choix.

Console

Pour déployer une nouvelle révision d'un service existant, procédez comme suit :

  1. Accédez à Cloud Run

  2. Recherchez le service que vous souhaitez mettre à jour dans la liste des services, puis cliquez dessus pour en afficher les détails.

  3. Cliquez sur Modifier et déployer la nouvelle révision pour afficher le formulaire de déploiement de version.

    1. Si nécessaire, fournissez l'URL de la nouvelle image de conteneur que vous souhaitez déployer.

    2. Configurez le conteneur si nécessaire.

    3. Définissez l'allocation et la tarification du processeur si nécessaire.

    4. Sous "Capacité", spécifiez les limites de mémoire et les limites de processeur.

    5. Spécifiez le délai d'expiration de requête et la simultanéité si nécessaire.

    6. Spécifiez l'environnement d'exécution si nécessaire.

    7. Sous Autoscaling, spécifiez des instances minimum et maximum.

    8. Utilisez les autres onglets si nécessaire pour configurer les éléments suivants si vous le souhaitez :

  4. Pour envoyer l'ensemble du trafic vers la nouvelle révision, sélectionnez Diffuser immédiatement la révision. Pour déployer progressivement une nouvelle révision, décochez cette case. Cela se traduit par un déploiement dans lequel aucun trafic n'est envoyé à la nouvelle révision. Suivez les instructions de déploiement progressif après avoir effectué votre déploiement.

  5. Cliquez sur Déployer et attendez la fin du déploiement.

Ligne de commande

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

    Activer Cloud Shell

    En bas de la fenêtre de la console Google Cloud, 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 une image de conteneur, procédez comme suit :

    1. Exécutez la commande suivante :

      gcloud run deploy SERVICE --image IMAGE_URL

      • Remplacez SERVICE par le nom du service sur lequel vous déployez l'image. Vous pouvez omettre ce paramètre, mais dans ce cas le nom du service vous sera demandé.
      • Remplacez IMAGE_URL par une 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 : REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.

      Le suffixe de révision est attribué automatiquement aux nouvelles révisions. Si vous souhaitez spécifier votre propre suffixe de révision, utilisez le paramètre --revision-suffix de gcloud CLI.

    2. Patientez jusqu'à la fin du déploiement. Une fois l'opération achevée, un message de réussite indiquant l'URL du service déployé s'affiche.

YAML

Si vous devez télécharger ou consulter la configuration d'un service existant, exécutez la commande suivante pour enregistrer les résultats dans un fichier YAML :

gcloud run services describe SERVICE --format export > service.yaml

Dans un fichier YAML de configuration de service, modifiez les attributs enfants spec.template en fonction de vos besoins pour mettre à jour les paramètres de révision, puis déployez la nouvelle révision :

gcloud run services replace service.yaml

Cloud Code

Pour déployer une nouvelle révision d'un service existant avec Cloud Code, consultez les guides IntelliJ et Visual Studio Code.

Terraform

Assurez-vous d'avoir configuré Terraform comme décrit dans l'exemple Déployer un nouveau service.

  1. Apportez une modification au fichier de configuration.

  2. Appliquez la configuration Terraform :

    terraform apply

    Confirmez que vous souhaitez appliquer les actions décrites en saisissant yes.

Bibliothèques clientes

Pour déployer une nouvelle révision à partir du code, procédez comme suit :

Emplacements Cloud Run

Cloud Run est régional, ce qui signifie que l'infrastructure qui exécute vos services Cloud Run est située dans une région spécifique et gérée par Google pour être disponible de manière redondante dans toutes les zones de cette région.

Lors de la sélection de la région dans laquelle exécuter vos services Cloud Run, vous devez tout d'abord considérer vos exigences en matière de latence, de disponibilité et de durabilité. Vous pouvez généralement sélectionner la région la plus proche de vos utilisateurs, mais vous devez tenir compte de l'emplacement des autres produits Google Cloud utilisés par votre service Cloud Run. L'utilisation conjointe de produits Google Cloud dans plusieurs emplacements peut avoir une incidence sur la latence et le coût de votre service.

Cloud Run est disponible dans les régions suivantes :

Soumis aux tarifs de niveau 1

Soumis aux tarifs de niveau 2

  • africa-south1 (Johannesburg)
  • asia-east2 (Hong Kong)
  • asia-northeast3 (Séoul, Corée du Sud)
  • asia-southeast1 (Singapour)
  • asia-southeast2 (Jakarta)
  • asia-south1 (Mumbai, Inde)
  • asia-south2 (Delhi, Inde)
  • australia-southeast1 (Sydney)
  • australia-southeast2 (Melbourne)
  • europe-central2 (Varsovie, Pologne)
  • europe-west10 (Berlin)
  • europe-west12 (Turin)
  • europe-west2 (Londres, Royaume-Uni) icône feuille Faibles émissions de CO2
  • europe-west3 (Francfort, Allemagne) icône feuille Faibles émissions de CO2
  • europe-west6 (Zurich, Suisse) icône feuille Faibles émissions de CO2
  • me-central1 (Doha)
  • me-central2 (Dammam)
  • northamerica-northeast1 (Montréal) icône feuille Faibles émissions de CO2
  • northamerica-northeast2 (Toronto) icône feuille Faibles émissions de CO2
  • southamerica-east1 (São Paulo, Brésil) icône feuille Faibles émissions de CO2
  • southamerica-west1 (Santiago, Chili) icône feuille Faibles émissions de CO2
  • us-west2 (Los Angeles)
  • us-west3 (Salt Lake City)
  • us-west4 (Las Vegas)

Si vous avez déjà créé un service Cloud Run, vous pouvez afficher la région dans le tableau de bord Cloud Run de la console Google Cloud.

Déployer des images à partir d'autres projets Google Cloud

Vous pouvez déployer des images de conteneurs à partir d'autres projets Google Cloud si vous définissez les autorisations IAM appropriées :

  1. Dans la console Google Cloud, ouvrez le projet de votre service Cloud Run.

    Accéder à la page IAM

  2. Sélectionnez Inclure les attributions de rôles fournies par Google.

  3. Copiez l'adresse e-mail de l'agent de service Cloud Run. Elle porte le suffixe @ serverless-robot-prod.iam.gserviceaccount.com.

  4. Ouvrez le projet qui contient le registre de conteneurs que vous souhaitez utiliser.

    Accéder à la page IAM

  5. Cliquez sur Ajouter pour ajouter une entité principale.

  6. Dans le champ Nouveaux comptes principaux, collez l'adresse e-mail du compte de service que vous avez copié précédemment.

  7. Dans le menu déroulant Sélectionner un rôle, si vous utilisez Container Registry, sélectionnez le rôle Stockage -> Lecteur des objets de l'espace de stockage. Si vous utilisez Artifact Registry, sélectionnez le rôle Artifact Registry -> Lecteur Artifact Registry.

  8. Déployez l'image de conteneur sur le projet contenant votre service Cloud Run.

Déployer des images à partir de registres non compatibles

Si vous stockez des images de conteneurs dans un registre de conteneurs public ou privé non compatible, transférez-les de manière temporaire vers Artifact Registry à l'aide de docker push afin de les déployer sur Cloud Run. L'image de conteneur est importée par Cloud Run lors du déploiement. Par conséquent, après le déploiement, vous pouvez supprimer l'image d'Artifact Registry.

Déployer plusieurs conteneurs sur un service (side-cars)

Un déploiement Cloud Run avec side-cars contient un conteneur d'entrée gère toutes les requêtes HTTPS entrantes sur le port de conteneur que vous indiquez et un ou plusieurs conteneurs side-car. Les side-cars ne peuvent pas écouter les requêtes HTTP entrantes sur le port du conteneur d'entrée, mais ils peuvent communiquer entre eux et avec le conteneur d'entrée à l'aide d'un port localhost. Le port localhost utilisé varie en fonction des conteneurs que vous utilisez.

Dans le schéma suivant, le conteneur d'entrée communique avec le side-car à l'aide de localhost:5000.

Multiconteneur Cloud Run

Vous pouvez déployer jusqu'à 10 conteneurs par instance (y compris le conteneur d'entrée). Tous les conteneurs d'une instance partagent le même espace de noms réseau et peuvent également partager des fichiers via des volumes partagés en mémoire, comme illustré dans le diagramme.

Vous pouvez déployer plusieurs conteneurs dans l'environnement d'exécution de première ou deuxième génération.

Cas d'utilisation

Voici quelques cas d'utilisation de side-cars dans un service Cloud Run :

  • Surveillance, journalisation et traçage des applications
  • Utilisation de Nginx, Envoy ou Apache2 comme proxy devant votre conteneur d'applications
  • Ajouter des filtres d'authentification et d'autorisation (par exemple, Open Policy Agent)
  • Exécution de proxys de connexion sortants tels que le proxy d'authentification Alloy DB

Déployer un service avec des conteneurs side-car

Vous pouvez déployer plusieurs side-cars sur un service Cloud Run à l'aide de la console Google Cloud, de Google Cloud CLI ou de YAML.

Console

  1. Accédez à Cloud Run

    • Pour déployer un service existant, recherchez-le dans la liste des services et cliquez pour l'ouvrir, puis cliquez sur MODIFIER ET DÉPLOYER LA NOUVELLE RÉVISION pour afficher le formulaire de déploiement de révision.
    • Pour effectuer le déploiement dans un nouveau service, cliquez sur Créer un service.
  2. Pour un nouveau service :

    1. Indiquez le nom du service et l'URL de l'image de conteneur d'entrée que vous souhaitez déployer.
    2. Cliquez sur Conteneur(s), volumes, mise en réseau, sécurité.
  3. Dans la fiche Modifier le conteneur, configurez le conteneur d'entrée si nécessaire.

  4. Cliquez sur Ajouter un conteneur et configurez un conteneur side-car que vous souhaitez ajouter avec le conteneur d'entrée. Si le side-car dépend d'un autre conteneur dans le service, indiquez-le dans le menu déroulant Ordre de démarrage du conteneur. Répétez cette étape pour chaque conteneur side-car que vous déployez.

  5. Pour envoyer l'ensemble du trafic vers la nouvelle révision, sélectionnez Diffuser immédiatement la révision. Pour un déploiement progressif, décochez cette case. Cela se traduit par un déploiement dans lequel aucun trafic n'est envoyé à la nouvelle révision. Suivez les instructions de déploiement progressif après avoir effectué votre déploiement.

  6. Cliquez sur Créer pour un nouveau service ou sur Déployer pour un service existant, puis attendez la fin du déploiement.

Ligne de commande

Les paramètres container dans Google Cloud CLI sont disponibles en version bêta.

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

    Activer Cloud Shell

    En bas de la fenêtre de la console Google Cloud, 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, exécutez la commande suivante :

    gcloud beta run deploy SERVICE \
     --container INGRESS_CONTAINER_NAME
     --image='INGRESS_IMAGE' \
     --port='CONTAINER_PORT' \
     --container SIDECAR_CONTAINER_NAME \
     --image='SIDECAR_IMAGE'
    • Remplacez SERVICE par le nom du service sur lequel vous déployez l'image. Vous pouvez omettre ce paramètre, mais dans ce cas le nom du service vous sera demandé.
    • Remplacez INGRESS_CONTAINER_NAME par le nom du conteneur qui reçoit les requêtes, par exemple app.
    • Remplacez INGRESS_IMAGE par une référence à l'image de conteneur qui doit recevoir des requêtes, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest.
    • Remplacez SIDECAR_CONTAINER_NAME par le nom du conteneur side-car, par exemple sidecar.
    • Remplacez SIDECAR_IMAGE par une référence à l'image de 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, par exemple :

    gcloud beta run deploy SERVICE \
      --container CONTAINER_1_NAME
      --image='INGRESS_IMAGE' \
      --set-env-vars=KEY=VALUE \
      --port='CONTAINER_PORT' \
      --container SIDECAR_CONTAINER_NAME
      --image='SIDECAR_IMAGE' \
      --set-env-vars=KEY_N=VALUE_N
  3. Patientez jusqu'à la fin du déploiement. Une fois l'opération réussie, un message de réussite s'affiche indiquant l'URL du service déployé.

YAML

Ces instructions présentent un fichier YAML de base pour votre service Cloud Run avec side-cars. Créez un fichier nommé service.yaml et insérez-y les éléments suivants :

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  annotations:
  name: SERVICE_NAME
spec:
  template:
    spec:
      containers:
      - image: INGRESS_IMAGE
        ports:
          - containerPort: CONTAINER_PORT
      - image: SIDECAR_IMAGE
      

Remplacer

  • SERVICE par le nom de votre service Cloud Run ; Les noms de service ne doivent pas comporter plus de 49 caractères.
  • CONTAINER_PORT par le port sur lequel le conteneur d'entrée écoute les requêtes entrantes. Vous devez spécifier un port. Contrairement au scénario avec service à conteneur unique, il n'existe pas de port par défaut pour le conteneur d'entrée d'un service incluant des side-cars.
  • INGRESS_IMAGE par une référence à l'image de conteneur qui doit recevoir des requêtes, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest.
  • SIDECAR_IMAGE par une référence à l'image de conteneur side-car. Vous pouvez spécifier plusieurs side-cars en ajoutant plus d'éléments dans le tableau containers du fichier YAML.

Après avoir mis à jour le fichier YAML pour inclure les conteneurs d'entrée et side-car, déployez sur Cloud Run à l'aide de la commande suivante :

gcloud run services replace service.yaml

Fonctionnalités notables disponibles pour les déploiements avec side-cars

Vous pouvez spécifier l'ordre de démarrage des conteneurs dans un déploiement comportant plusieurs conteneurs, si vous avez des dépendances nécessitant le démarrage de certains conteneurs avant d'autres conteneurs dans le déploiement.

Si vous avez des conteneurs qui dépendent d'autres conteneurs, vous devez utiliser des vérifications d'état dans votre déploiement. Si vous utilisez les vérifications d'état, Cloud Run suit l'ordre de démarrage des conteneurs et inspecte l'état de chaque conteneur, afin de s'assurer que chaque conteneur réussit avant que Cloud Run ne démarre le conteneur suivant dans l'ordre. Si vous n'utilisez pas les vérifications d'état, les conteneurs opérationnels démarrent même si les conteneurs dont ils dépendent ne sont pas en cours d'exécution.

Plusieurs conteneurs d'une même instance peuvent accéder à un volume en mémoire partagé, qui est accessible à chaque conteneur via des points d'installation que vous créez.

Étapes suivantes

Après avoir déployé un nouveau service, vous pouvez effectuer les opérations suivantes :

Vous pouvez automatiser la création et le déploiement de vos services Cloud Run avec les déclencheurs Cloud Build.

Vous pouvez également utiliser Cloud Deploy pour configurer un pipeline de livraison continue afin de déployer des services Cloud Run dans plusieurs environnements :