Règles de transfert 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 des services pour déployer Cloud Service Mesh.

Cloud Service Mesh utilise la règle de transfert pour déterminer le proxy cible vers lequel le trafic du maillage est acheminé.

Chaque règle de transfert fournit une seule adresse IPv4 globale pour un service. Vous pouvez utiliser cette adresse pour créer des enregistrements DNS internes pour votre service (par exemple, à l'aide d'une zone privée gérée Cloud DNS). Les filtres de métadonnées de la règle de transfert spécifient les critères pour lesquels un proxy side-car compatible xDS reçoit la configuration.

Pour le plan de contrôle Cloud Service Mesh, la règle de transfert interne, autogérée et globale achemine le trafic par adresse IP, port et protocole vers un proxy cible. Le proxy cible pointe vers un mappage d'URL contenant des règles qui déterminent la destination du trafic. Le mappage d'URL spécifie également le service de backend par défaut. Ce service de backend spécifie une vérification de l'état et détermine le backend approprié, tel qu'un groupe d'instances géré contenant des instances de machine virtuelle ou un groupe de points de terminaison du réseau (NEG). qui contient les pods backend Google Kubernetes Engine (GKE).

Le schéma suivant montre comment une règle de transfert s'intègre à l'architecture Cloud Service Mesh.

Règle de transfert Cloud Service Mesh mise en surbrillance.
Règle de transfert Cloud Service Mesh mise en surbrillance (cliquez pour agrandir)

Propriétés de la règle de transfert

Une ressource de règle de transfert contient les propriétés suivantes qui s'appliquent à Cloud Service Mesh. La règle de transfert gère le trafic correspondant à l'adresse IP, au protocole et au numéro de port de destination.

Une adresse IP 0.0.0.0 dans une règle de transfert est l'une des options disponibles lorsque vous utilisez Cloud Service Mesh. Une adresse IP 0.0.0.0 correspond à n'importe quelle adresse IP.

  • Avec un déploiement de proxy, une adresse IP 0.0.0.0 permet à un proxy de correspondre à tout trafic entrant si aucune autre correspondance spécifique n'est trouvée.

  • Lors d'un déploiement sans proxy, une adresse IP 0.0.0.0 permet de spécifier qu'une adresse IP n'est pas requise. Des informations supplémentaires sont présentées sur l'utilisation des adresses IP 0.0.0.0 avec un proxy gRPC cible.

Le tableau suivant décrit plus en détail les propriétés des règles de transfert.

Propriété Obligatoire Description
name

Nom de la règle de transfert.

Le nom doit être unique au sein du projet, comporter de 1 à 63 caractères et correspondre à l'expression régulière : [a-z]([-a-z0-9]*[a-z0-9])?

Le premier caractère doit être une lettre minuscule et tous les caractères suivants doivent être soit un tiret, soit une lettre minuscule, soit un chiffre, à l'exception du dernier caractère, qui ne peut pas être un tiret.

IPAddress

L'un des éléments suivants: 0.0.0.0, 127.0.0.1 ou n'importe quelle adresse RFC 1918.

Les adresses IP des règles de transfert Cloud Service Mesh n'ont pas besoin de correspondre aux plages d'adresses IP des sous-réseaux du réseau cloud privé virtuel (VPC). Pour un réseau VPC, une adresse IP et un port donnés, vous ne pouvez avoir qu'une seule règle de transfert interne autogérée.

Par exemple, dans le même réseau VPC, vous ne pouvez pas créer deux règles de transfert qui utilisent l'adresse IP 0.0.0.0 et le port 80.

IPAddress avec un proxy gRPC cible

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.

Un client gRPC utilisant le schéma xds n'effectue pas de résolution DNS pour résoudre le nom d'hôte dans l'URI de canal. À la place, un tel client résout le hostname[:port] dans l'URI cible en envoyant une requête de service de détection d'écouteurs (LDS) à Cloud Service Mesh. Cette opération n'implique aucune résolution DNS, et aucune entrée DNS n'est nécessaire pour le nom d'hôte.

Par conséquent, Cloud Service Mesh utilise l'adresse IP 0.0.0.0 et le port (par défaut 80) spécifié dans l'URI pour rechercher la règle de transfert. Ensuite, Cloud Service Mesh recherche une règle d'hôte correspondante dans le mappage d'URL du proxy cible référencé par la règle de transfert.

target

Proxy cible vers lequel cette règle de transfert dirige le trafic. Cloud Service Mesh est compatible avec target-http-proxy, target-https-proxy et target-grpc-proxy.

Lorsque vous utilisez Google Cloud Console pour configurer la règle de transfert, le proxy cible est configuré automatiquement. Lorsque vous utilisez la CLI Google Cloud ou l'API, le proxy cible doit exister avant la création de votre règle de transfert. Vous pouvez utiliser plusieurs règles de transfert avec un proxy donné.

IPProtocol Type de protocole correspondant à cette règle de transfert. La seule valeur acceptée est TCP.
loadBalancingScheme Indique comment la règle de transfert est utilisée. La valeur valide pour Cloud Service Mesh est INTERNAL_SELF_MANAGED.
portRange

Port ou plage de ports liés par un tiret.

Les paquets du protocole spécifié envoyés à ces ports sont transférés au backend approprié. Vous pouvez spécifier un seul nombre dans une plage, par exemple 80 ou 80-8080.

Pour un réseau VPC, une adresse IP et un port donnés, vous ne pouvez avoir qu'une seule règle de transfert interne autogérée. Par exemple, dans le même réseau VPC, vous ne pouvez pas créer deux règles de transfert qui utilisent l'adresse IP 0.0.0.0 et le port 80.

Avec les services gRPC sans proxy, le port de la règle de transfert est mis en correspondance avec le port spécifié dans l'URI utilisé par une application gRPC pour se connecter à un service. Si aucun port n'est spécifié dans l'URI, 80 est le port par défaut.

network

Indique le réseau VPC où se trouvent les VM Google Cloud exécutant les proxys Envoy.

Les proxys Envoy lisent la configuration Cloud Service Mesh que vous définissez pour le même réseau sur lequel les proxys sont déployés. Vous pouvez utiliser le réseau VPC nommé default ou un réseau personnalisé.

Cloud Service Mesh n'accepte l'équilibrage de charge que pour les clients du réseau Google Cloud. Vous spécifiez le nom du réseau dans la règle de transfert. L'appairage de réseau VPC n'est pas accepté.

Ajouter une règle de transfert globale

Pour savoir comment configurer une règle de transfert dans la configuration globale de Cloud Service Mesh avec les API d'équilibrage de charge, consultez les pages suivantes:

Étapes suivantes