Proxys cibles pour Cloud Service Mesh

Ce document ne s'applique qu'à Cloud Service Mesh avec les API d'équilibrage de charge. Nous vous recommandons vivement d'utiliser les API de routage de services pour déployer Cloud Service Mesh.

Lorsque vous configurez Cloud Service Mesh, l'une des ressources que vous configurez est le proxy cible. Dans le contexte de Cloud Service Mesh, les proxys cibles ont deux objectifs principaux:

  • Définir le protocole utilisé par les clients Cloud Service Mesh lorsqu'ils ouvrent une connexion aux backends ou aux points de terminaison associés à un service.

  • Utiliser des règles de transfert et des mappages d'URL pour créer une carte des règles de routage La carte des règles de routage offre des fonctionnalités supplémentaires (telles que des règles de routage), en fonction du type de proxy cible. Les sélections non valides sont généralement masquées dans l'interface utilisateur ou rejetées par l'API.

Types de proxys cibles et protocoles de requête

Cloud Service Mesh génère différentes configurations pour ses clients en fonction du type de proxy cible que vous configurez. Lorsque vous configurez un type de proxy cible, le client Cloud Service Mesh utilise un protocole de requête spécifique.

Proxy cible Protocole de la requête
HTTPS Les clients initient des connexions HTTPS
HTTP Les clients initient des connexions HTTP
gRPC Les clients initient des connexions gRPC.
TCP Les clients initient des connexions TCP.

Vous n'êtes pas obligé de sélectionner un seul type. Par exemple, votre application peut vouloir utiliser HTTP pour s'adresser à certains services, mais TCP pour s'adresser à d'autres services. Dans ce cas, vous devez créer à la fois un proxy HTTP cible et un proxy TCP cible.

Combinaisons de ressources valides dans une carte des règles de routage

Pour éviter les erreurs de configuration, Cloud Service Mesh ne vous permet de créer que des cartes de règles de routage semblables à ce qui suit:

  • Règle de transfert > proxy HTTPS cible global > Mappage d'URL > un ou plusieurs services de backend
  • Règle de transfert > Proxy HTTP cible global > Mappage d'URL > (un ou plusieurs services de backend)
  • Règle de transfert -> Proxy gRPC cible global -> Mappage d'URL -> (un ou plusieurs services de backend)
  • Règle de transfert -> Proxy TCP cible global -> (un service de backend)

Si vous utilisez Google Cloud Console pour configurer un proxy HTTP cible, le proxy cible est configuré implicitement lors de la configuration du mappage des règles de routage. La configuration du proxy TCP n'est pas encore disponible dans la console Google Cloud.

Si vous utilisez Google Cloud CLI ou les API, vous devez configurer explicitement le proxy cible.

Gestion du trafic

Les sections suivantes décrivent les différentes manières de gérer le trafic en fonction du type de proxy cible que vous utilisez.

Utiliser un proxy HTTP ou HTTPS cible

Lorsque vous configurez des services basés sur HTTP ou HTTPS, chaque instance de service dispose généralement d'un proxy Envoy déployé avec celui-ci. Cloud Service Mesh configure ce proxy Envoy. Il fait partie de votre plan de données du maillage de services et gère le trafic comme suit.

Le proxy Envoy reçoit la requête sortante. Il compare ensuite l'adresse IP et le port de destination de la requête à l'adresse IP et au port configurés dans chaque règle de transfert faisant référence à un proxy HTTP ou HTTPS cible. Si une correspondance est trouvée, le proxy Envoy évalue la requête en fonction du mappage d'URL correspondant du proxy cible.

Utiliser un proxy TCP cible

Lorsque vous configurez des services basés sur TCP, un proxy Envoy est généralement déployé avec chaque instance de service. Cloud Service Mesh configure ce proxy Envoy. Il fait partie de votre plan de données du maillage de services et gère le trafic comme suit.

Le proxy Envoy reçoit la requête sortante. Il compare ensuite l'adresse IP et le port de destination de la requête à l'adresse IP et au port configurés dans chaque règle de transfert faisant référence à un proxy TCP cible. Chaque règle de transfert achemine le trafic TCP vers un proxy cible qui pointe vers un service de backend par défaut. Le service de backend spécifie une vérification d'état et détermine le backend approprié.

Utiliser un proxy gRPC cible

Lorsque vous configurez des services basés sur gRPC, aucun proxy Envoy n'est généralement déployé avec vos instances de service. À la place, Cloud Service Mesh configure la bibliothèque gRPC. La bibliothèque fait partie du plan de données de votre maillage de services et gère le trafic comme suit.

La bibliothèque gRPC compare le hostname[:port] spécifié dans l'URI aux règles d'hôte dans tous les mappages d'URL auxquels un proxy gRPC cible fait référence. En cas de correspondance, la bibliothèque gRPC évalue la requête en fonction des règles de chemin d'accès associées à la règle d'hôte correspondante.

Ressources de proxy cible

Pour ajouter, supprimer, lister et obtenir des informations sur les proxys cibles, vous pouvez utiliser l'API REST ou gcloud CLI.

En outre, pour obtenir des informations sur un proxy cible, vous pouvez utiliser les commandes gcloud suivantes :

gcloud compute [target-http-proxies | target-tcp-proxies | target-grpc-proxies] list
gcloud compute [target-http-proxies | target-tcp-proxies | target-grpc-proxies] describe TARGET_PROXY_NAME

API

Pour obtenir une description des propriétés et des méthodes disponibles lorsque vous utilisez des proxys cibles via l'API REST, consultez les ressources suivantes compatibles avec Cloud Service Mesh:

gcloud CLI

Pour Google Cloud CLI, consultez les ressources suivantes :

Étapes suivantes