Se préparer à configurer Cloud Service Mesh avec Envoy

La configuration de Cloud Service Mesh comprend les phases suivantes:

  1. Attribution des autorisations, activation de l'API Traffic Director et, si vous utilisez Compute Engine, configuration de Cloud DNS.
  2. Déployer vos applications avec des proxys Envoy
  3. Créer des services et des règles de routage qui déterminent la façon dont le trafic transite par votre maillage de services.

Ce document décrit la première phase et s'applique lorsque vous utilisez les anciennes API. Les deuxième et troisième phases sont abordées dans les guides spécifiques à la plate-forme, répertoriés dans la section Poursuivre le processus de configuration plus loin dans ce document.

Avant de lire ce guide, familiarisez-vous avec la présentation de Cloud Service Mesh. Si vous utilisez les API de routage de service, consultez la présentation des API de routage de service.

Prérequis

Que vous envisagiez d'utiliser Cloud Service Mesh pour configurer des proxys Envoy exécutés parallèlement à des applications sur des instances de machines virtuelles (VM), des conteneurs ou une combinaison des deux, vous devez d'abord effectuer les tâches suivantes:

  1. Activez la facturation.
  2. Choisissez le mode d'installation d'Envoy.
  3. Accordez les autorisations requises.
  4. Activez l'API Traffic Director pour votre projet.
  5. Si vous utilisez Compute Engine, activez l'API Cloud DNS et configurez Cloud DNS.
  6. Vérifiez que le compte de service utilisé par les proxys Envoy dispose des autorisations suffisantes pour accéder à l'API Traffic Director.

Les sections suivantes fournissent des instructions pour chaque tâche.

Activer la facturation

Vérifiez que la facturation est activée pour votre projet Google Cloud. Pour en savoir plus, consultez la section Activer, désactiver ou modifier la facturation pour un projet.

Choisir le mode d'installation d'Envoy

Cloud Service Mesh vous permet d'installer des proxys Envoy et de gérer cette couche d'infrastructure:

  • Sur Compute Engine, vous pouvez ajouter automatiquement Envoy aux applications exécutées sur vos VM. Vous utilisez un modèle de VM qui installe Envoy, le connecte à Cloud Service Mesh et configure la mise en réseau de votre VM.

  • Sur Google Kubernetes Engine (GKE), vous pouvez ajouter automatiquement des proxys side-car Envoy aux pods de vos services. Vous allez installer un injecteur de side-car Envoy dans votre cluster, qui ajoute des proxys side-car Envoy, les connecte à Cloud Service Mesh et configure la mise en réseau de votre conteneur.

Enfin, vous pouvez également utiliser les solutions de déploiement Envoy de fournisseurs tiers avec Cloud Service Mesh. GetEnvoy est un exemple de ce type de solution, qui fournit une approche basée sur un gestionnaire de paquets pour l'installation et la mise à jour de vos proxys Envoy.

À propos de la gestion des versions Envoy

Envoy doit être version 1.9.1 ou ultérieure pour fonctionner avec Cloud Service Mesh. Nous vous recommandons de toujours utiliser la version la plus récente d'Envoy pour vous assurer que les failles de sécurité connues ont été corrigées.

Si vous décidez de déployer Envoy à l'aide de l'une de nos méthodes automatisées, nous nous chargeons de cette tâche comme suit :

  • Lorsque vous utilisez un déploiement Envoy automatisé avec des VM Compute Engine, la version d'Envoy installée est une version que nous avons validée pour un fonctionnement avec Cloud Service Mesh. Lorsqu'une VM est créée à l'aide du modèle d'instance, elle reçoit la dernière version validée. Si votre VM est de longue durée, vous pouvez utiliser une mise à jour progressive pour remplacer les VM existantes et récupérer la dernière version.

  • Lorsque vous utilisez l'injecteur de side-car Envoy avec GKE, il est configuré pour utiliser une version récente d'Envoy que nous avons validée pour fonctionner avec Cloud Service Mesh. Lorsqu'un side-car est injecté avec votre pod de charge de travail, il reçoit cette version d'Envoy. Si vous souhaitez récupérer une version plus récente d'Envoy, mettez à jour l'injecteur side-car Envoy.

Pour plus d'informations sur des versions Envoy spécifiques, consultez la section Historique des versions. Pour plus d'informations sur les failles de sécurité, consultez la page Conseils de sécurité.

Accorder les autorisations Cloud IAM requises

Vous devez disposer des autorisations IAM (Identity and Access Management) suffisantes pour créer des instances de VM et modifier un réseau afin de configurer Cloud Service Mesh. Si vous disposez du rôle de propriétaire ou éditeur du projet (roles/owner ou roles/editor) dans le projet pour lequel vous activez Cloud Service Mesh, vous disposez automatiquement des autorisations appropriées.

Dans le cas contraire, tous les rôles IAM Compute Engine doivent être affichés dans le tableau suivant. Avec ces rôles, vous disposez alors également des autorisations associées, comme décrit dans la documentation IAM de Compute Engine.

Tâche Rôle requis
Définir la stratégie IAM d'un compte de service. Administrateur de compte de service
(roles/iam.serviceAccountAdmin)
Activez le maillage de services Cloud. Administrateur Service Usage
(roles/serviceusage.serviceUsageAdmin)
Créer des réseaux, des sous-réseaux et des composants de l'équilibreur de charge. Administrateur de réseaux Compute
(roles/compute.networkAdmin)
Ajouter et supprimer des règles de pare-feu. Administrateur de sécurité de Compute
(roles/compute.securityAdmin)
Créer des instances. Administrateur d'instances de Compute
(roles/compute.instanceAdmin)

Le pool de nœuds GKE ou les VM Compute Engine doivent disposer du niveau d'accès https://www.googleapis.com/auth/cloud-platform. Pour en savoir plus, consultez la page Résoudre des problèmes pour les déploiements qui utilisent Envoy.

Avec xDS v3, accordez le rôle roles/trafficdirector.client au compte de service utilisé par les clients Envoy de Cloud Service Mesh.

Activer l'API Traffic Director

Console

  1. Dans Google Cloud Console, accédez à la page Bibliothèque d'API de votre projet.

    Accéder à la bibliothèque d'API

  2. Dans le champ Rechercher des API et des services, saisissez Traffic Director.

  3. Dans la liste des résultats de recherche, cliquez sur API Traffic Director. Si l'API Traffic Director ne figure pas dans la liste, cela signifie que vous ne disposez pas des autorisations nécessaires pour l'activer.

  4. Sur la page API Traffic Director, cliquez sur Activer.

gcloud

Exécutez la commande ci-dessous.

gcloud services enable trafficdirector.googleapis.com

Activer l'API Cloud DNS et configurer Cloud DNS

Suivez ces instructions si vous configurez Cloud Service Mesh sur Compute Engine. Vous devez activer l'API Cloud DNS et configurer Cloud DNS pour la résolution de noms DNS.

Pour en savoir plus sur Cloud Service Mesh et la résolution DNS, consultez la page Cloud Service Mesh et résolution des noms DNS.

Tout d'abord, suivez les instructions ci-dessous pour activer l'API Cloud DNS.

Console

  1. Dans Google Cloud Console, accédez à la page Bibliothèque d'API de votre projet.

    Accéder à la bibliothèque d'API

  2. Dans le champ Rechercher des API et des services, saisissez DNS.

  3. Dans la liste des résultats de recherche, cliquez sur API Cloud DNS. Si l'API Cloud DNS ne figure pas dans la liste, cela signifie que vous ne disposez pas des autorisations nécessaires pour l'activer.

  4. Sur la page API Cloud DNS, cliquez sur Activer.

gcloud

Exécutez la commande ci-dessous.

gcloud services enable dns.googleapis.com

Configurez ensuite une zone privée gérée Cloud DNS. Suivez les instructions de la section Créer une zone privée.

Permettre au compte de service d'accéder à l'API Traffic Director

Lorsque vous configurez votre plan de données et que vous le connectez à Cloud Service Mesh, vos clients xDS (par exemple, les proxys Envoy) se connectent au serveur xDS trafficdirector.googleapis.com. Ces clients xDS présentent au serveur xDS une identité de compte de service afin de garantir que les communications entre le plan de données et le plan de contrôle disposent des autorisations appropriées :

  • Pour une VM Compute Engine, le client xDS utilise le compte de service attribué à la VM.
  • Pour GKE, si Workload Identity n'est pas activé, le client xDS utilise le compte de service attribué au nœud GKE sous-jacent.
  • Si Workload Identity est activé, le client xDS utilise le compte de service Google lié au compte de service Kubernetes attribué au pod.

Vous avez besoin des autorisations suivantes, en fonction de la version du client xDS que vous utilisez pour configurer Envoy. Nous vous recommandons vivement de configurer vos nouveaux déploiements Envoy avec xDS v3 ou de migrer vers xDS v3 si un déploiement existant utilise xDS v2.

  • Lorsque vous utilisez xDS v3, le compte de service utilisé par vos clients doit disposer des autorisations trafficdirector.networks.reportMetrics et trafficdirector.networks.getConfigs. Vous pouvez utiliser le rôle Client Cloud Service Mesh IAM (roles/trafficdirector.client), qui encapsule les deux autorisations.

  • Lorsque vous utilisez xDS v2, le compte de service utilisé par vos clients doit disposer de l'autorisation IAM compute.globalForwardingRules.get au niveau du projet. Vous pouvez également accorder cette autorisation en attribuant le rôle Lecteur de réseau Compute (roles/compute.networkViewer) au compte de service.

Console

  1. Dans la console Google Cloud, accédez à la page IAM et administration.

    Accéder à IAM et administration

  2. Sélectionnez votre projet.

  3. Identifiez le compte de service auquel vous souhaitez ajouter un rôle :

    • Si ce compte de service ne figure pas déjà sur la liste des membres, cela signifie qu'aucun rôle ne lui a encore été attribué. Cliquez sur Ajouter, puis saisissez l'adresse e-mail du compte de service.
    • Si le compte de service figure déjà sur la liste des membres, il possède des rôles. Sélectionnez le compte de service, puis cliquez sur l'onglet Rôles.
  4. Développez le rôle. Pour le compte de service que vous souhaitez modifier, cliquez sur Modifier.

  5. Sélectionnez le rôle Autre > Client Cloud Service Mesh.

  6. Pour appliquer le rôle au compte de service, cliquez sur Enregistrer.

gcloud

Exécutez la commande ci-dessous.

gcloud projects add-iam-policy-binding PROJECT \
    --member serviceAccount:SERVICE_ACCOUNT_EMAIL \
    --role=roles/trafficdirector.client

Remplacez les éléments suivants :

  • PROJECT : saisissez gcloud config get-value project
  • SERVICE_ACCOUNT_EMAIL : adresse e-mail associée au compte de service

Poursuivre la configuration

Maintenant que vous avez terminé les étapes préalables, vous pouvez commencer à configurer votre maillage de services.