Présentation des cartes des règles de routage Traffic Director

Ce document décrit les cartes des règles de routage et la manière dont elles gèrent le trafic dans les déploiements Traffic Director.

Une carte des règles de routage comprend les éléments suivants :

  • Une règle de transfert renvoyant à un proxy cible
  • Un proxy cible renvoyant à un mappage d'URL
  • Un mappage d'URL contenant différentes règles de routage

Lorsque vous créez et configurez ces ressources pour Traffic Director, celui-ci utilise ces valeurs pour créer la configuration qu'il envoie à votre plan de données, y compris les clients xDS tels que les proxys Envoy et les applications gRPC sans proxy. Le plan de données gère ensuite le trafic en fonction de cette configuration.

Une règle de transfert renvoie à un proxy cible et possède une adresse IP ainsi qu'un port. Pour les déploiements de Traffic Director, le schéma d'équilibrage de charge de la règle de transfert doit être défini sur INTERNAL_SELF_MANAGED.

Le proxy cible, à son tour, renvoie à un mappage d'URL. Ces trois ressources sont combinées pour former une carte des règles de routage.

L'adresse IP d'une règle de transfert renvoyant à un proxy gRPC cible dont le champ validateForProxyless est défini sur TRUE doit être 0.0.0.0. Lorsque validateForProxyless est défini sur TRUE, les configurations qui spécifient une adresse IP autre que 0.0.0.0 sont refusées.

La carte des règles de routage définit la manière dont le trafic passe des clients aux serveurs au sein d'un maillage de services.

Types de proxys cibles compatibles

Traffic Director est compatible avec les types de proxys cibles suivants :

  • Un proxy HTTP cible, que vous configurez lorsque vos clients et vos serveurs envoient ou reçoivent du trafic HTTP ou HTTP/2.
  • Un proxy gRPC cible, que vous configurez lorsque vos clients et vos serveurs envoient ou reçoivent du trafic gRPC. Les proxys gRPC cibles comportent un champ validateForProxyless généralement défini sur TRUE lorsque vous déployez des services gRPC sans proxy.

Routage du trafic avec Traffic Director

Lorsque vous utilisez Traffic Director avec des proxys side-car Envoy, les requêtes client sont acheminées comme suit :

  • La requête est interceptée par la pile réseau et redirigée vers votre proxy side-car Envoy.
  • Le proxy side-car Envoy examine l'adresse IP et le port de la requête.
  • L'adresse IP et la paire de ports sont comparées à l'adresse IP et au port spécifiés dans toutes les règles de transfert dont le schéma d'équilibrage de charge est défini sur INTERNAL_SELF_MANAGED.
  • Si une règle de transfert dont une adresse IP et un port correspondent est trouvée, Envoy examine le proxy HTTP ou gRPC cible auquel renvoie la règle de transfert.
  • Envoy vérifie le mappage d'URL auquel renvoie le proxy cible.
  • Envoy achemine la requête selon les règles spécifiées dans le mappage d'URL.

Ce comportement est différent pour les applications gRPC sans proxy. Lorsque vous configurez un client gRPC, vous spécifiez l'URI cible du service qu'il doit contacter. Cet URI utilise le schéma de résolution des noms xds et le format hostname:port, par exemple xds:///myservice:8080.

Lorsque le client gRPC sans proxy se connecte à Traffic Director, celui-ci envoie les informations correspondant au service comme suit :

  • Traffic Director recherche des règles de transfert dont le schéma d'équilibrage de charge est défini sur INTERNAL_SELF_MANAGED pour rechercher les règles de transfert dont le port correspond au port spécifié dans l'URI cible.
  • Traffic Director trouve le proxy gRPC ou HTTP cible pour chacune de ces règles de transfert.
  • Traffic Director recherche les mappages d'URL référencés par ces proxys gRPC ou HTTP cibles.
  • Traffic Director vérifie les règles d'hôte du mappage d'URL, qui sont également au format hostname[:port], puis recherche une correspondance.
  • Lorsqu'il existe une correspondance, Traffic Director renvoie les informations de routage et de service au client gRPC.

Notez que si plusieurs correspondances existent, le comportement n'est pas défini et peut entraîner un comportement imprévisible. Cela se produit généralement lorsque les deux conditions suivantes sont remplies :

  • Le même nom d'hôte est utilisé dans plusieurs mappages d'URL.
  • Plusieurs règles de transfert avec le schéma d'équilibrage de charge INTERNAL_SELF_MANAGED spécifient le même port.

Pour cette raison, nous vous recommandons de ne pas réutiliser le même nom d'hôte dans plusieurs mappages d'URL référencés par des règles de transfert spécifiant un même port.

Étapes suivantes