Configurer la mise en réseau ambiante

La mise en réseau ambiant offre une expérience de mise en réseau des ressources simplifiée, intégrée à Cloud Run. Il fournit à vos ressources un plan de données entièrement géré pour éliminer la charge opérationnelle liée à la création et à la maintenance de proxys personnalisés. Il fait également abstraction des concepts de maillage de services, ce qui vous permet de bénéficier de fonctionnalités de mise en réseau avancées sans avoir à apprendre à configurer un maillage.

Lorsque vous activez la mise en réseau ambiante, le trafic passe par défaut sans modification, de sorte que votre trafic HTTP et TCP existant continue de fonctionner. L'activation de la mise en réseau ambiante ne modifie pas le comportement de votre ressource. En tant que fondation, la mise en réseau ambiante vous permet d'activer les fonctionnalités décrites dans la section suivante.

Cas d'utilisation

La mise en réseau ambiant est la base des fonctionnalités de mise en réseau avancées dans Cloud Run. Après avoir activé la mise en réseau ambiante, vous pouvez choisir d'utiliser Agent Gateway sur Cloud Run. Cette fonctionnalité régit le trafic des agents à l'aide de règles d'accès et de sécurité que votre organisation gère de manière centralisée.

Architecture

La mise en réseau ambiante exécute un conteneur side-car Envoy entièrement géré dans chaque instance de conteneur de votre ressource Cloud Run, à côté de votre conteneur d'application. Le side-car intercepte le trafic réseau de l'instance et applique la règle de routage et de sécurité que Cloud Run lui distribue.

Un conteneur side-car ambiant s'exécutant à côté d'un conteneur d'application dans une instance de conteneur d'une ressource Cloud Run, avec un trafic circulant du side-car vers d'autres ressources Cloud Run.
Le conteneur side-car ambiant intercepte le trafic entre votre conteneur d'application et les destinations qu'il appelle (cliquez pour agrandir).

Champs d'application de la mise en réseau ambiante

La mise en réseau ambiante est compatible avec un champ d'application global et un champ d'application régional. Le champ d'application détermine si le side-car se connecte à un plan de routage global ou régional :

  • Régional (par défaut) : Cloud Run connecte le side-car à un plan de routage régional, ce qui limite les règles de routage et de sécurité aux destinations de la région de votre service. Ce champ d'application est compatible avec les exigences de résidence des données (DRZ) pour les données au repos, en cours d'utilisation et en transit. Si vous ne spécifiez pas de champ d'application, la mise en réseau ambiante utilise le champ d'application régional.
  • Global : Cloud Run connecte le side-car à un plan de routage global, ce qui lui permet d'acheminer le trafic vers des destinations dans n'importe quelle région.

Chaque fonctionnalité qui utilise la mise en réseau ambiante nécessite un champ d'application spécifique :

Fonctionnalité Champ d'application global Champ d'application régional
Agent Gateway sur Cloud Run Non compatible Compatible

Limites

Les limites suivantes s'appliquent à la mise en réseau ambiante :

  • Le trafic UDP n'est pas accepté. La mise en réseau ambiante n'est compatible qu'avec le trafic HTTP et TCP.
  • Les requêtes entrantes ne sont pas compatibles avec HTTP/2 de bout en bout. Pour plus d'informations, consultez Problèmes connus.
  • Le champ d'application régional n'est pas compatible avec les réseaux VPC qui résolvent *.googleapis.com en adresses IP d'accès privé à Google. Pour plus d'informations, consultez Problèmes connus.
  • L'environnement d'exécution de première génération n'est pas compatible. Si vous ne spécifiez pas d'environnement d'exécution, Cloud Run utilise la deuxième génération.
  • Le démarrage des instances de conteneur prend plus de temps. Pour en savoir plus, consultez l'article Problèmes connus.

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud . Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits sans frais pour exécuter, tester et déployer des charges de travail.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Activez les API Cloud Run, Network Services et Traffic Director, si elles ne sont pas déjà activées.

    Rôles requis pour activer les API

    Pour activer des API, vous devez disposer de l'autorisation serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation via le rôle Propriétaire (roles/owner). Sinon, vous pouvez l'obtenir via le rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.

    Activer les API

  7. Augmentez la limite de processeur de votre ressource Cloud Run de 1 vCPU et sa limite de mémoire de 1 Gio. Si la nouvelle limite de processeur n'est pas une valeur acceptée, utilisez la valeur acceptée supérieure suivante. Le side-car ambiant partage le processeur et la mémoire de votre instance de conteneur. Cette augmentation permet donc de s'assurer que votre application conserve les ressources dont elle a besoin.

  8. Consultez la page Tarifs de Cloud Run pour en savoir plus sur l'utilisation du side-car de mise en réseau ambiante. La facturation des fonctionnalités ambiantes n'est pas appliquée pendant la phase preview.

Rôles requis

Pour obtenir les autorisations nécessaires pour configurer et déployer des services Cloud Run, demandez à votre administrateur de vous accorder les rôles IAM suivants :

Si vous déployez un service ou une fonction à partir du code source, vous devez également disposer de rôles supplémentaires sur votre projet et votre compte de service Cloud Build.

L'identité de service de la ressource Cloud Run doit également disposer des rôles suivants :

  • Client Traffic Director (roles/trafficdirector.client)
  • Agent Cloud Trace (roles/cloudtrace.agent)

Pour attribuer ces rôles à l'identité de service, utilisez gcloud :

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="serviceAccount:RUN_CLIENT_SA@PROJECT_ID.iam.gserviceaccount.com" \
    --role="roles/trafficdirector.client"

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="serviceAccount:RUN_CLIENT_SA@PROJECT_ID.iam.gserviceaccount.com" \
    --role="roles/cloudtrace.agent"

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet Google Cloud .
  • RUN_CLIENT_SA : nom du compte de service associé à votre service Cloud Run.

Si l'identité de service ne dispose pas de ces rôles, la ressource Cloud Run est tout de même déployée, mais les fonctionnalités qui utilisent la mise en réseau ambiante ne fonctionnent pas.

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 service Cloud Run communique avec les APIGoogle Cloud , 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 les pages Autorisations de déploiement et Gérer les accès.

Configurer la mise en réseau ambiante

Configurez la mise en réseau ambiante à l'aide de gcloud ou d'un fichier YAML.

gcloud

  • Pour activer la mise en réseau ambiante sur un nouveau service, transmettez l'option --ambient-networking et, éventuellement, l'option --ambient-scope :

    gcloud beta run deploy SERVICE \
      --image=IMAGE_URL \
      --ambient-networking \
      --ambient-scope=SCOPE \
      --region=REGION
  • Pour activer la mise en réseau ambiante sur un service existant, transmettez les mêmes options à la commande gcloud beta run services update, qui déploie une nouvelle révision avec la mise en réseau ambiante activée :

    gcloud beta run services update SERVICE \
      --ambient-networking \
      --ambient-scope=SCOPE \
      --region=REGION
  • Pour désactiver la mise en réseau ambiant, transmettez l'option --no-ambient-networking :

    gcloud beta run services update SERVICE \
      --no-ambient-networking \
      --region=REGION

Remplacez les éléments suivants :

  • SERVICE : nom de votre service Cloud Run.
  • IMAGE_URL : 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 respecte le format LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • SCOPE : champ d'application de la mise en réseau ambiante, global ou regional.
  • REGION : région de votre service.

YAML

  1. Si vous créez un service, ignorez cette étape. Si vous mettez à jour un service existant, téléchargez sa configuration YAML :

    gcloud run services describe SERVICE --format export > service.yaml
  2. Ajoutez l'annotation run.googleapis.com/ambient-networking et, éventuellement, l'annotation run.googleapis.com/ambient-scope :

    spec:
     template:
       metadata:
         annotations:
           run.googleapis.com/ambient-networking: 'true'
           run.googleapis.com/ambient-scope: SCOPE

    Remplacez SCOPE par le champ d'application de la mise en réseau ambiante, soit global, soit regional. Pour désactiver la mise en réseau ambiant, définissez run.googleapis.com/ambient-networking sur 'false' et supprimez l'annotation run.googleapis.com/ambient-scope.

  3. Créez ou mettez à jour le service à l'aide de la commande suivante :

    gcloud run services replace service.yaml

    Par défaut, la commande gcloud run services replace utilise le fichier service.yaml s'il est présent.

Afficher les paramètres de mise en réseau ambiante

Pour afficher les paramètres actuels de mise en réseau ambiante de votre service Cloud Run :

Console

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

    Accédez à Cloud Run

  2. Cliquez sur le service pour ouvrir la page Informations sur le service.

  3. Cliquez sur l'onglet Réseau.

  4. Dans la fiche Mise en réseau ambiante, affichez le paramètre Champ d'application.

gcloud

  1. Exécutez la commande suivante :

    gcloud beta run services describe SERVICE \
       --region=REGION
  2. Recherchez les annotations run.googleapis.com/ambient-networking et run.googleapis.com/ambient-scope dans la configuration renvoyée.

Étapes suivantes