Configurer le routage du trafic TCP
Ce guide explique comment utiliser Cloud Service Mesh pour acheminer le trafic vers des services qui gèrent le trafic TCP. Ces services incluent des bases de données, des services VOIP et des plates-formes de gestion, qui s'attendent à recevoir du trafic TCP sur des ports ou des plages de ports spécifiques.
Ce guide s'applique au déploiement avec les anciennes API. Si vous utilisez les nouvelles API de routage de services, qui sont en version bêta, consultez la page Configuration de Cloud Service Mesh pour les services TCP avec une ressource TCPRoute
.
Utilisez ce guide pour effectuer les opérations suivantes:
- Configurez un service qui représente une collection de backends ou de points de terminaison identiques qui acceptent les requêtes TCP des clients.
- Configurez une carte des règles de routage afin que Envoy transmette les proxys de Cloud Service Mesh peuvent envoyer des requêtes TCP.
Les schémas suivants montrent le fonctionnement du routage TCP pour les instances de machine virtuelle (VM) et les groupes de points de terminaison du réseau (NEG).
Préparation
- Ce guide s'appuie sur le guide de préparation Envoy pour le maillage de services, nous partons du principe que vous avez déjà acquis les connaissances de base sur le fonctionnement de Cloud Service Mesh.
- Ce guide se concentre sur des aspects de la configuration de Cloud Service Mesh différents lorsque vous configurez vos services et le routage pour le trafic TCP.
- Dans ce guide, nous partons du principe que vous avez déjà configuré un groupe d'instances géré (MIG) ou un NEG.
Configurer les ressources d'équilibrage de charge
Pour configurer des ressources d'équilibrage de charge, procédez comme ci-après.
Créer une vérification d'état TCP
Configuration avec des VM
Si vous configurez des MIG, utilisez la commande suivante pour créer une vérification d'état globale. Remplacez PORT
par le numéro de port TCP surveillé par cette vérification d'état:
gcloud compute health-checks create tcp td-vm-health-check \ --global \ --port=PORT
Configuration avec des NEG
Si vous configurez des NEG, utilisez la commande suivante pour créer une vérification d'état:
gcloud compute health-checks create tcp td-gke-health-check \ --use-serving-port
Pour en savoir plus sur les vérifications d'état, consultez les pages suivantes:
- Créer des vérifications d'état dans la documentation de Cloud Load Balancing
gcloud compute health-checks create tcp
dans la documentation de référence de la commandegcloud
Créez une règle de pare-feu pour votre vérification d'état.
Cette règle permet aux vérifications d'état des vérificateurs d'état Google Cloud d'atteindre vos backends.
gcloud
gcloud compute firewall-rules create fw-allow-health-checks \ --action=ALLOW \ --direction=INGRESS \ --source-ranges=35.191.0.0/16,130.211.0.0/22 \ --target-tags=TAGS \ --rules=tcp:80
Pour en savoir plus sur les règles de pare-feu pour les vérifications d'état, consultez les articles suivants:
- Règles de pare-feu pour les vérifications d'état dans la documentation de Cloud Load Balancing
gcloud compute firewall-rules create
dans la documentation de référence de la commandegcloud
(inclut des instructions pourTAGS
)
Créer un service de backend pour vos backends TCP
La configuration d'un service de backend pour TCP avec Cloud Service Mesh diffère légèrement de la configuration pour HTTP. Les étapes suivantes permettent de capturer ces différences.
Configuration avec des VM
Si vous configurez des MIG, utilisez la commande suivante pour créer un service de backend et ajouter la vérification de l'état:
gcloud compute backend-services create td-vm-service \ --global \ --load-balancing-scheme=INTERNAL_SELF_MANAGED \ --health-checks=td-vm-health-check \ --protocol=TCP \ --global-health-checks
La dernière étape de configuration de votre service de backend consiste à ajouter vos backends. Comme il s'agit d'une configuration standard de Cloud Service Mesh (dans d'autres sans aucune indication spécifique pour les services basés sur TCP), elle n'est pas présentée ici. Pour en savoir plus, consultez la section Créer le service de backend du guide de configuration des VM Compute Engine avec déploiement Envoy automatique.
Configuration avec des NEG
Si vous configurez des NEG, utilisez les commandes suivantes pour créer un service de backend et associer la vérification d'état au service de backend:
gcloud compute backend-services create td-gke-service \ --global \ --health-checks=td-gke-health-check \ --protocol=TCP \ --load-balancing-scheme=INTERNAL_SELF_MANAGED
La dernière étape de configuration du service de backend consiste à ajouter votre groupe de backends. Étant donné que cette étape est une configuration standard de Cloud Service Mesh (c'est-à-dire qu'elle n'est pas spécifique aux services basés sur TCP), elle n'est pas présentée ici. Pour en savoir plus, consultez la section Créer le service de backend du guide de configuration des pods GKE avec injection Envoy automatique.
Configurer le routage pour votre service de backend basé sur TCP
Dans cette section, vous allez créer un proxy TCP cible global et une règle de transfert globale. Ces ressources permettent à vos applications d'envoyer du trafic aux backends avec les services de backend que vous venez de créer.
Réfléchissez aux éléments suivants :
- Votre règle de transfert doit avoir le schéma d'équilibrage de charge
INTERNAL_SELF_MANAGED
. L'adresse IP virtuelle et le port que vous configurez dans la règle de transfert sont l'adresse IP virtuelle et le port que vos applications utilisent lors de l'envoi de trafic à vos services TCP. Vous pouvez choisir l'adresse IP virtuelle de l'un de vos sous-réseaux. Cloud Service Mesh utilise cette adresse IP virtuelle et ce port pour mettre en correspondance les requêtes des clients avec un service de backend particulier.
Pour en savoir plus sur la mise en correspondance des requêtes client avec les services de backend, consultez la page Détection de services.
gcloud
Utilisez la commande suivante pour créer le proxy TCP cible : Remplacez
BACKEND_SERVICE
par le nom du service de backend créé à l'étape précédente. Dans l'exemple suivant, nous utilisonstd-tcp-proxy
comme nom du proxy TCP cible, mais vous pouvez choisir un nom correspondant à vos besoins.gcloud compute target-tcp-proxies create td-tcp-proxy \ --backend-service=BACKEND_SERVICE
Créez la règle de transfert. La règle de transfert spécifie l'adresse IP virtuelle et le port utilisés lors de la mise en correspondance des requêtes des clients avec un service de backend particulier. Pour en savoir plus, consultez la section
gcloud compute forwarding-rules create
dans la documentation de référence de la commandegcloud
.gcloud compute forwarding-rules create td-tcp-forwarding-rule \ --global \ --load-balancing-scheme=INTERNAL_SELF_MANAGED \ --address=VIP\ --target-tcp-proxy=td-tcp-proxy \ --ports=PORT \ --network=default
À ce stade, Cloud Service Mesh est configuré pour équilibrer la charge du trafic à l'adresse IP virtuelle spécifiée dans la règle de transfert sur vos backends.
Dépannage
Si vos applications tentent d'envoyer des requêtes à vos services basés sur TCP, procédez comme suit:
- Vérifiez que le port de vérification d'état TCP correspond au port sur lequel l'application TCP s'attend à recevoir le trafic de vérification d'état.
- Confirmez que le nom de port du service de backend correspond à celui spécifié dans le groupe d'instances.
Étape suivante
- Pour afficher les autres étapes du processus de configuration, consultez Préparez la configuration de Cloud Service Mesh avec Envoy.
- Pour obtenir des informations générales sur le dépannage de Cloud Service Mesh, consultez Explorez la résolution des problèmes liés aux déploiements qui utilisent Envoy.