Ce guide contient des instructions visant à préparer la configuration de Traffic Director dans le cadre d'applications gRPC sans proxy.
Avant de commencer
Assurez-vous de bien maîtriser les concepts généraux liés à Traffic Director. Consultez les documents suivants :
- Présentation de Traffic Director
- Présentation de Traffic Director avec des applications gRPC sans proxy
Ces documents présentent l'utilisation de Traffic Director avec des applications gRPC sans proxy.
Préparation générale
Avant toute chose, préparez votre environnement en effectuant les tâches décrites dans les sections suivantes.
Accorder les autorisations 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 IAM d'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 VM Compute Engine doivent posséder le champ d'application https://www.googleapis.com/auth/cloud-platform
.
Activer l'API Traffic Director
Console
- Dans Cloud Console, accédez à la page "API et services" de votre projet.
Accéder à la page "Bibliothèque d'API" - 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.
- Cliquez sur l'API Traffic Director.
- Dans la page qui affiche les informations relatives à l'API, cliquez sur Activer.
gcloud
gcloud services enable trafficdirector.googleapis.com
Activer le compte de service pour accéder à l'API Traffic Director
Lorsque vous configurez votre plan de données et que vous le connectez à Traffic Director, vos clients xDS 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.
Pour une VM Compute Engine, le client xDS utilise le compte de service attribué à la VM.
Le compte de service utilisé par vos clients xDS 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
Ouvrez la page IAM et administration dans Cloud Console.
Sélectionnez votre projet.
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.
Cliquez sur le bouton Modifier
correspondant au compte de service que vous souhaitez modifier.Sélectionnez le rôle Compute Engine > Lecteur de réseau Compute.
Cliquez sur Enregistrer pour appliquer le rôle au compte de service.
gcloud
Remplacez la variable ${SERVICE_ACCOUNT_EMAIL} par la valeur appropriée.
PROJECT=`gcloud config get-value project` gcloud projects add-iam-policy-binding ${PROJECT} \ --member serviceAccount:${SERVICE_ACCOUNT_EMAIL} \ --role roles/compute.networkViewer
Ensuite, suivez cette procédure globale pour configurer des applications gRPC sans proxy au sein d'un maillage :
- Mettez à jour vos clients gRPC vers la version 1.30.0 ou une version ultérieure, avec le correctif le plus récent.
- Mettez à jour le schéma de résolution des noms gRPC de vos clients lorsque vous créez un canal et spécifiez un fichier d'amorçage Traffic Director.
- Configurez Traffic Director et les ressources Cloud Load Balancing.
Ce guide contient des informations permettant de réaliser les deux premières étapes. Le processus de configuration que vous utilisez à l'étape 3 varie selon que votre déploiement utilise des VM Compute Engine ou des NEG Google Kubernetes Engine.
Mettre à jour vos clients gRPC
Tout d'abord, vous devez mettre à jour vos clients gRPC vers la version 1.30.0 ou une version ultérieure, avec le correctif le plus récent. La plupart des versions de serveur gRPC sont capables d'interagir avec les clients gRPC utilisant la version 1.30.0 ou ultérieure, avec le correctif le plus récent. Vous n'avez donc pas besoin de mettre à jour simultanément tous vos serveurs gRPC.
Langages compatibles et versions de gRPC
Vos clients gRPC doivent utiliser gRPC en version 1.30.0 ou ultérieure, avec le correctif le plus récent. Les langages C++, Java, Go, Python, PHP et Ruby offrent une compatibilité xDSv2 et sont tous compatibles avec Traffic Director. Ajoutez le résolveur de noms xDS en tant que dépendance à vos applications gRPC. Les exigences spécifiques aux langages Java et Go sont présentées ci-dessous. Les autres langages ne présentent aucune exigence supplémentaire.
Exigences pour Java
Avec Java, si vous utilisez Gradle, ajoutez le dépôt d'instantanés et la dépendance grpc-xds
au fichier build.gradle :
repositories { mavenLocal() } dependencies { runtimeOnly 'io.grpc:grpc-xds:1.30.0-SNAPSHOT' }
Si vous utilisez Maven, ajoutez les éléments suivants à la section <dependencies>
du fichier pom.xml :
<dependency> <groupId>io.grpc</groupId> <artifactId>grpc-xds</artifactId> <version>1.30.0-SNAPSHOT</version> <scope>runtime</scope> </dependency>
Exigences pour Go
Si vous utilisez le langage Go, vous devez importer le package xds pour Go.
Le résolveur de noms gRPC doit être xds
.
Configurez ou modifiez vos applications gRPC pour qu'elles fassent appel au schéma de résolution de noms xds
dans l'URI cible au lieu d'utiliser le DNS ou tout autre schéma de résolution. Pour ce faire, utilisez le préfixe xds:///
dans le nom de la cible lorsque vous créez un canal gRPC.
L'équilibrage de charge pour les clients gRPC s'effectue par canal.
Vous devez également inclure le nom du service utilisé dans l'URI cible dans la configuration Traffic Director. Par exemple, en Java, vous créez le canal à l'aide de la structure suivante, dans laquelle le nom du service est helloworld
:
ManagedChannelBuilder.forTarget("xds:///helloworld[:PORT_NUMBER]")
Fichier d'amorçage
Le schéma de résolution xds
indique à l'application gRPC de se connecter à Traffic Director pour obtenir des informations de configuration concernant le service cible. Par conséquent, procédez comme suit :
- Créez un fichier d'amorçage comme illustré ci-dessous. Ce fichier indique à gRPC de se connecter à un serveur xDS (Traffic Director) pour obtenir la configuration de services spécifiques.
- Définissez une variable d'environnement nommée
GRPC_XDS_BOOTSTRAP
, avec comme valeur le nom du fichier d'amorçage.
Les instructions de configuration incluent des exemples illustrant comment générer ce fichier d'amorçage.
Un fichier d'amorçage contenant les informations nécessaires pour se connecter à Traffic Director doit être inclus avec l'application. Voici un exemple de fichier d'amorçage :
{ "xds_servers": [ { "server_uri": "trafficdirector.googleapis.com:443", "channel_creds": [ { "type": "google_default" } ] } ], "node": { "id": "b7f9c818-fb46-43ca-8662-d3bdbcf7ec18~10.0.0.1", "metadata": { "TRAFFICDIRECTOR_GCP_PROJECT_NUMBER": "123456789012", "TRAFFICDIRECTOR_NETWORK_NAME": "default" }, "locality": { "zone": "us-central1-a" } } }
Le tableau suivant décrit les champs du fichier d'amorçage.
Champ | Valeur et description |
---|---|
xds_servers |
Liste de serveurs xDS. gRPC n'utilise que le premier serveur de cette liste. |
server_uri |
Vous devez renseigner au moins un serveur. gRPC tente de se connecter uniquement au premier serveur xDS de la liste "xds_servers". La valeur par défaut est trafficdirector.googleapis.com:443 . |
channel_creds |
Identifiants à utiliser auprès du serveur xDS. |
type |
Utilisez la valeur google_default . Pour en savoir plus sur l'obtention des identifiants, consultez la page Premiers pas avec l'authentification. |
node |
Informations concernant le client qui se connecte au serveur xDS. |
id |
Saisissez une chaîne unique dans le champ id . Elle vous permet d'identifier le client gRPC qui se connecte à Traffic Director. |
metadata |
Informations spécifiques au serveur xDS. |
TRAFFICDIRECTOR_GCP_PROJECT_NUMBER |
Numéro du projet dans lequel s'exécute Traffic Director. |
TRAFFICDIRECTOR_NETWORK_NAME |
Si ce champ est vide ou n'est pas spécifié, la valeur est définie sur default . |
locality |
Zone GCP dans laquelle s'exécute le client gRPC. |
Étapes suivantes
Une fois que vous avez mis en œuvre la préparation décrite dans le présent document, continuez avec les instructions de l'un des documents suivants :
- Configurer des services gRPC sans proxy basés sur des VM
- Configurer des services gRPC sans proxy GKE