Préparer la configuration de Traffic Director

La configuration de Traffic Director comprend les phases suivantes :

  1. Attribution des autorisations et activation de l'API Traffic Director
  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 comment effectuer la première phase. Les deuxième et troisième phases sont décrites dans des guides spécifiques pour les plates-formes suivantes :

Avant de lire le présent guide, familiarisez-vous avec les concepts liés à Traffic Director.

Prérequis

Que vous envisagiez d'utiliser Traffic Director pour configurer des proxys Envoy s'exécutant parallèlement à des applications hébergées sur des machines virtuelles, dans des conteneurs ou dans une combinaison des deux, vous devez commencer par 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. 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

Traffic Director facilite l'installation de proxys Envoy et gère 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 à Traffic Director et configure le réseau de votre VM.

  • Sur GKE, vous pouvez ajouter automatiquement des proxys side-car Envoy aux pods de vos services. Vous installez un injecteur side-car Envoy sur votre cluster, qui ajoute les proxys side-car Envoy, les connecte à Traffic Director et configure le réseau de votre conteneur.

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

À propos de la gestion des versions Envoy

Vous devez utiliser Envoy version 1.9.1 ou ultérieure pour fonctionner avec Traffic Director. En outre, nous vous recommandons de toujours utiliser la version la plus récente d'Envoy, afin de vous assurer que les risques de failles de sécurité connues sont atténués.

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 Envoy installée est une version que nous avons validée pour fonctionner avec Traffic Director. Lorsqu'une VM est créée à l'aide du modèle d'instance, elle reçoit la dernière version que nous avons 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 side-car Envoy avec GKE, l'injecteur est configuré pour utiliser une version récente d'Envoy que nous avons validée pour fonctionner avec Traffic Director. 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

Configurer Traffic Director nécessite que vous disposiez d'autorisations suffisantes pour créer des instances de VM et modifier un réseau. Si vous disposez du rôle de propriétaire ou d'éditeur pour le projet dans lequel vous activez Traffic Director, vous disposez automatiquement des autorisations appropriées.

Sinon, vous devez posséder tous les rôles IAM Compute Engine suivants. 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 de gestion de l'authentification et des accès (IAM) pour un compte de service Administrateur de compte de service
Obtenir la ressource de règle de transfert globale Lecteur de réseau Compute
Activer Traffic Director Administrateur Service Usage
Créer des réseaux, des sous-réseaux et des composants de l'équilibreur de charge Administrateur réseau
Ajouter et supprimer des règles de pare-feu Administrateur de sécurité
Créer des instances Administrateur d'instances Compute

De plus, les pools de nœuds GKE ou les VM Compute Engine doivent posséder le champ d'application https://www.googleapis.com/auth/cloud-platform.

Activer l'API Traffic Director

Console

  1. Dans Cloud Console, accédez à la page "API et services" de votre projet.
    Accéder à la page "Bibliothèque d'API"
  2. Recherchez l'API Traffic Director à l'aide du champ de recherche. 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.
  3. Cliquez sur l'API Traffic Director.
  4. Dans la page qui affiche les informations relatives à l'API, cliquez sur Activer.

gcloud

gcloud services enable trafficdirector.googleapis.com

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 à Traffic Director, vos clients xDS (par exemple, les proxys Envoy) se connectent au serveur xDS trafficdirector.googleapis.com. Ces clients xDS se présentent au serveur à l'aide d'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 :

  • Dans le cas d'une VM Compute Engine, le client xDS utilise le compte de service attribué à la VM.
  • Dans le cas de 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, selon la version du client xDS que vous utilisez pour configurer Envoy. Nous vous recommandons de configurer vos nouveaux déploiements Envoy à l'aide de xDS v3 ou de migrer vers xDS v3 si vous avez un déploiement existant qui 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 IAM 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 compute.networkViewer au compte de service.

Console

  1. Accédez à la page IAM et administration de Cloud Console.

    Accéder à la page "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. Cliquez sur le bouton Modifier correspondant au compte de service que vous souhaitez modifier.

  5. Sélectionnez le rôle Autre > Client Traffic Director.

  6. Cliquez sur Enregistrer pour appliquer le rôle au compte de service.

gcloud

Remplacez la variable ${SERVICE_ACCOUNT_EMAIL} par la valeur correcte.

PROJECT=`gcloud config get-value project`
gcloud projects add-iam-policy-binding ${PROJECT} \
--member serviceAccount:${SERVICE_ACCOUNT_EMAIL} \
--role roles/trafficdirector.client

Poursuivre la configuration

Maintenant que vous avez terminé les étapes préalables, vous pouvez commencer à configurer votre maillage de services. Les guides suivants fournissent des instructions spécifiques aux plates-formes respectives Compute Engine et GKE :

Bien que ces guides guident chacun sur le déploiement de proxys side-car Envoy sur une seule plate-forme Compute (Compute Engine ou GKE), Traffic Director est flexible et accepte les déploiements qui couvrent à la fois Compute Engine et GKE.