Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
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.
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 de sorte que les proxys Envoy configurés par Cloud Service Mesh puissent 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).
Configurer Cloud Service Mesh pour TCP, backends Compute Engine (cliquez pour agrandir)
Configurer Cloud Service Mesh pour TCP, backends NEG (cliquez pour agrandir)
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 les aspects de la configuration de Cloud Service Mesh qui sont différents lorsque vous configurez vos services et votre 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:
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:
La dernière étape de configuration de votre service de backend consiste à ajouter vos 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 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:
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 utilisons td-tcp-proxy comme nom du proxy TCP cible, mais vous pouvez choisir un nom correspondant à vos besoins.
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 commande gcloud.
À ce stade, Cloud Service Mesh est configuré pour équilibrer la charge du trafic de l'adresse IP virtuelle spécifiée dans la règle de transfert entre vos backends.
Limites
Vous ne pouvez pas configurer de stratégie de sécurité Google Cloud Armor si vous utilisez le routage du trafic TCP.
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.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/04 (UTC)."],[],[],null,["# Set up TCP traffic routing\n==========================\n\nThis guide demonstrates how you can use Cloud Service Mesh to route traffic to services\nthat handle TCP traffic. These services include databases, VOIP services, and\nmanagement platforms, which expect to receive TCP traffic on specific ports or\nport ranges.\n| **Note:** This guide only supports Cloud Service Mesh with Google Cloud APIs and does not support Istio APIs. For more information see, [Cloud Service Mesh overview](/service-mesh/docs/overview).\n\nThis guide applies to deployment with the older APIs. If you are using the new\nservice routing APIs, which are in preview, see\n[Cloud Service Mesh setup for TCP services with a `TCPRoute` resource](/service-mesh/docs/service-routing/set-up-tcp-route).\n\nUse this guide to do the following:\n\n- Set up a service that represents a collection of identical backends or endpoints that accept TCP requests from clients.\n- Set up a routing rule map so that Envoy proxies that Cloud Service Mesh configures can send TCP requests.\n\nThe following diagrams show how TCP routing works for virtual machine (VM)\ninstances and network endpoint groups (NEGs), respectively.\n[](/static/service-mesh/docs/images/td-tcp-gce.svg) Setting up Cloud Service Mesh for TCP, Compute Engine backends (click to enlarge)\n\n\u003cbr /\u003e\n\n\n[](/static/service-mesh/docs/images/td-tcp-neg.svg) Setting up Cloud Service Mesh for TCP, NEG backends (click to enlarge)\n\n\u003cbr /\u003e\n\nPreparation\n-----------\n\n- This guide builds on the [Envoy for service mesh](/service-mesh/docs/service-routing/prepare-for-envoy-setup) preparation guide, and assumes that you already have a basic understanding of how Cloud Service Mesh works.\n- The guide focuses on aspects of Cloud Service Mesh setup that are different when you configure your services and routing for TCP traffic.\n- The guide assumes that you have already set up a managed instance group (MIG) or NEG.\n\nConfigure load-balancing resources\n----------------------------------\n\nUse the following steps to configure the load-balancing resources.\n\n### Create a TCP health check\n\n### Setup with VMs\n\nIf you are configuring MIGs, use the following command to create a global\nhealth check; replace \u003cvar translate=\"no\"\u003ePORT\u003c/var\u003e with the TCP port\nnumber that this health check monitors: \n\n```\ngcloud compute health-checks create tcp td-vm-health-check \\\n --global \\\n --port=PORT\n```\n\n### Setup with NEGs\n\nIf you are configuring NEGs, use the following command to create a health\ncheck: \n\n```\ngcloud compute health-checks create tcp td-gke-health-check \\\n --use-serving-port\n```\n\nFor more information about health checks, see the following:\n\n- [Creating health checks](/load-balancing/docs/health-checks) in the Cloud Load Balancing documentation\n- [`gcloud compute health-checks create tcp`](/sdk/gcloud/reference/compute/health-checks/create/tcp) in the `gcloud` command reference\n\n### Create a firewall rule for your health check\n\nThis rule enables health checks from Google Cloud's health checkers to reach\nyour backends. \n\n### gcloud\n\n```\ngcloud compute firewall-rules create fw-allow-health-checks \\\n --action=ALLOW \\\n --direction=INGRESS \\\n --source-ranges=35.191.0.0/16,130.211.0.0/22 \\\n --target-tags=TAGS \\\n --rules=tcp:80\n```\n\nFor more information about firewall rules for health checks, see the following:\n\n- [Firewall rules for health checks](/load-balancing/docs/health-checks#fw-rule) in the Cloud Load Balancing documentation\n- [`gcloud compute firewall-rules create`](/sdk/gcloud/reference/compute/firewall-rules/create) in the `gcloud` command reference (includes guidance for \u003cvar translate=\"no\"\u003eTAGS\u003c/var\u003e)\n\n### Create a backend service for your TCP backends\n\nThe backend service setup for TCP with Cloud Service Mesh differs slightly\nfrom the setup for HTTP. The following steps capture those differences. \n\n### Setup with VMs\n\nIf you are configuring MIGs, use the following\ncommand to create a backend service and add the health check: \n\n```\n gcloud compute backend-services create td-vm-service \\\n --global \\\n --load-balancing-scheme=INTERNAL_SELF_MANAGED \\\n --health-checks=td-vm-health-check \\\n --protocol=TCP \\\n --global-health-checks\n```\n\nThe final step for setting up your backend service is to add your backends.\nBecause this step is standard Cloud Service Mesh setup (in other\nwords, nothing specific for TCP-based services), it is not shown here.\nFor more information, see\n[Create the backend service](/service-mesh/docs/service-routing/set-up-gce-vms-auto#creating_the_backend_service)\nin the setup guide for Compute Engine VMs with automatic Envoy\ndeployment.\n\n### Setup with NEGs\n\nIf you are configuring NEGs, use the following commands to create a\nbackend service and associate the health check with the backend service: \n\n```\ngcloud compute backend-services create td-gke-service \\\n --global \\\n --health-checks=td-gke-health-check \\\n --protocol=TCP \\\n --load-balancing-scheme=INTERNAL_SELF_MANAGED\n```\n\nThe final step for setting up your backend service is to add your backend\ngroup. Because this step is standard Cloud Service Mesh setup (in other\nwords, nothing specific for TCP-based services), it is not shown here.\nFor more information, see\n[Create the backend service](/service-mesh/legacy/load-balancing-apis/set-up-gke-pods-auto#creating_the_backend_service)\nin the setup guide for GKE Pods with automatic Envoy injection.\n\n### Set up routing for your TCP-based backend service\n\nIn this section, you create a global\n[target TCP proxy](/load-balancing/docs/tcp)\nand a global [forwarding rule](/load-balancing/docs/forwarding-rule-concepts).\nThese resources enable your applications to send traffic to the backends with\nyour newly created backend services.\n\nConsider the following:\n\n- Your forwarding rule must have the load-balancing scheme `INTERNAL_SELF_MANAGED`.\n- The virtual IP address (VIP) and port that you configure in the forwarding\n rule are the VIP and port that your applications use when sending traffic to\n your TCP services. You can choose the VIP from one of your subnets.\n Cloud Service Mesh uses this VIP and port to match client requests to a\n particular backend service.\n\n For information about how client requests are matched to backend services, see\n [Service discovery](/service-mesh/docs/traffic-management/service-discovery#service_discovery).\n\n### gcloud\n\n1. Use the following command to create the target TCP proxy; replace\n \u003cvar translate=\"no\"\u003eBACKEND_SERVICE\u003c/var\u003e with the name of the backend service\n created in the previous step. In the following example, we use\n `td-tcp-proxy` as the name for the target TCP proxy, but you can choose\n a name that suits your needs.\n\n ```\n gcloud compute target-tcp-proxies create td-tcp-proxy \\\n --backend-service=BACKEND_SERVICE\n ```\n | **Note:** Each service that requires a different VIP address must use a different forwarding rule.\n2. Create the forwarding rule. The forwarding rule specifies the VIP and\n port that are used when matching client requests to a particular backend\n service. For more information, see\n [`gcloud compute forwarding-rules create`](/sdk/gcloud/reference/compute/forwarding-rules/create)\n in the `gcloud` command reference.\n\n ```\n gcloud compute forwarding-rules create td-tcp-forwarding-rule \\\n --global \\\n --load-balancing-scheme=INTERNAL_SELF_MANAGED \\\n --address=VIP\\\n --target-tcp-proxy=td-tcp-proxy \\\n --ports=PORT \\\n --network=default\n ```\n\nAt this point, Cloud Service Mesh is configured to load balance traffic for\nthe VIP specified in the forwarding rule across your backends.\n\nLimitations\n-----------\n\nYou cannot configure a Google Cloud Armor security policy if you are using\nTCP traffic routing.\n\nTroubleshooting\n---------------\n\nIf your applications are attempting to send requests to your TCP-based services,\ndo the following:\n\n- Confirm that the TCP health check port matches the port on which the TCP application expects to receive health check traffic.\n- Confirm that the port name of the backend service matches what is specified in the instance group.\n\nWhat's next\n-----------\n\n- [Prepare to set up Cloud Service Mesh with Envoy](/service-mesh/docs/service-routing/prepare-for-envoy-setup)\n- [Troubleshoot Envoy deployments](/service-mesh/docs/service-routing/troubleshooting)"]]