Il est possible qu'une partie ou l'ensemble des informations de cette page ne s'appliquent pas au Cloud de confiance S3NS. Pour en savoir plus, consultez
Différences par rapport à Google Cloud.
Enregistrer un équilibreur de charge réseau passthrough externe
Cette page explique comment configurer un équilibreur de charge réseau passthrough externe afin qu'il soit automatiquement enregistré dans l'Annuaire des services.
Lorsque vous créez votre équilibreur de charge, vous pouvez l'enregistrer en tant que point de terminaison dans un espace de noms et un service de l'Annuaire des services existant de votre choix. Les applications clientes peuvent ensuite utiliser l'Annuaire des services (à l'aide de HTTP ou de gRPC) pour résoudre l'adresse du service d'équilibrage de charge réseau passthrough externe et s'y connecter directement.
Autorisations requises pour cette tâche
Pour effectuer cette tâche, vous devez disposer des autorisations et des rôles IAM suivants.
Autorisations
servicedirectory.endpoints.create
servicedirectory.endpoints.delete
Rôles
roles/compute.networkAdmin
roles/compute.securityAdmin
roles/compute.instanceAdmin
Limites
L'intégration de l'Annuaire des services avec des équilibreurs de charge réseau passthrough externes présente les limites suivantes:
- L'enregistrement automatique n'est compatible qu'avec les équilibreurs de charge de couche 4 externes. Vous pouvez enregistrer des services d'équilibrage de charge Google Kubernetes Engine à l'aide de l'intégration GKE. Vous pouvez enregistrer d'autres équilibreurs de charge externes, des équilibreurs de charge globaux, ainsi que des entrées et des passerelles Google Kubernetes Engine en appelant l'API Service Directory.
- Vous ne pouvez utiliser l'enregistrement automatique qu'au moment de la création de la règle de transfert. L'enregistrement automatique à l'aide de la mise à jour de Google Cloud CLI pour une règle de transfert déjà existante n'est pas disponible.
- L'annuaire des services ne fournit pas de connectivité. Par conséquent, même si l'annuaire des services stocke l'adresse IP virtuelle de l'équilibreur de charge réseau passthrough externe, la recherche de l'équilibreur de charge réseau passthrough externe dans l'annuaire des services ne garantit pas que vous pouvez vous connecter à l'adresse IP virtuelle.
Avant de commencer
Ces instructions nécessitent les éléments suivants:
Vous devez déjà disposer d'un espace de noms et d'un service de l'annuaire des services.
Si ce n'est pas le cas, créez un espace de noms et un service en suivant la procédure décrite dans Configurer l'annuaire des services.
Le service et l'espace de noms du répertoire de services doivent se trouver dans le même projet et la même région que la règle de transfert de l'équilibreur de charge réseau passthrough externe que vous créez.
Vous devez déjà avoir configuré les ressources nécessaires pour créer une règle de transfert d'équilibreur de charge réseau passthrough externe.
Pour savoir comment créer un équilibreur de charge réseau passthrough externe, consultez Configurer un équilibreur de charge réseau passthrough externe.
Configurer des règles de transfert pour enregistrer un équilibreur de charge réseau passthrough externe dans l'Annuaire des services
Vous devez configurer une règle de transfert pour enregistrer l'équilibreur de charge réseau passthrough externe dans l'Annuaire des services. Pour enregistrer un équilibreur de charge réseau passthrough externe, consultez la section suivante.
Enregistrer un équilibreur de charge réseau passthrough externe
Pour enregistrer un équilibreur de charge réseau passthrough externe, exécutez la commande gcloud compute forwarding-rules
create
et définissez l'option service-directory-registration
:
gcloud beta compute forwarding-rules create FORWARDING_RULE_NAME \
--region=REGION \
--load-balancing-scheme=EXTERNAL \
--address=RESERVED_IP_ADDRESS \
--ip-protocol=PROTOCOL_TYPE \
--ports=PORT_NUMBER \
--backend-service=BACKEND_SERVICE_NAME \
--backend-service-region=REGION \
--service-directory-registration=SD_SERVICE_NAME
Remplacez les éléments suivants :
FORWARDING_RULE_NAME
: nom de la règle de transfert que vous souhaitez créer
REGION
: région dans laquelle créer la règle de transfert.
RESERVED_IP_ADDRESS
: adresse IP utilisée par la règle de transfert.
PROTOCOL_TYPE
: protocole IP pour lequel la règle doit être diffusée
PORT_NUMBER
: liste de ports séparés par une virgule.
BACKEND_SERVICE_NAME
: service de backend cible qui reçoit le trafic
SD_SERVICE_NAME
: nom complet du service de l'Annuaire des services dans lequel vous souhaitez enregistrer le point de terminaison. Ce service doit se trouver dans le même projet et la même région que la règle de transfert en cours de création.
Par exemple :
projects/PROJECT
/locations/REGION
/namespaces/NAMESPACE_NAME
/services/SERVICE_NAME
.
Valider le point de terminaison
Les points de terminaison de l'annuaire des services créés lorsque vous enregistrez un équilibreur de charge réseau passthrough externe présentent les caractéristiques suivantes:
- Le point de terminaison porte le même nom que celui de la règle de transfert avec le numéro de port spécifié (
<forwarding rule name>-<port>
). Par exemple, si vous créez une règle de transfert RULE
avec --port=8080
, vous obtenez un point de terminaison appelé RULE-8080
. Pour la même règle, si vous avez spécifié deux ports --port=8080, 8081
, vous obtenez deux points de terminaison, RULE-8080
et RULE-8081
. Si vous spécifiez --port=ALL
, le point de terminaison de l'annuaire des services est enregistré avec le port 0
. Si vous êtes le propriétaire de l'équilibreur de charge réseau passthrough externe, vous devez vous assurer que l'appelant de l'API connaît le port auquel se connecter.
- Vous ne pouvez pas modifier ni supprimer le point de terminaison à l'aide de l'API publique du Service Directory. Le point de terminaison n'est automatiquement supprimé que lorsque vous supprimez la règle de transfert. Cela signifie que vous ne pouvez pas supprimer le service et l'espace de noms dans lesquels se trouve le point de terminaison tant que la règle de transfert existe.
- Le point de terminaison lui-même n'est pas facturé, mais les conditions tarifaires standards s'appliquent à tous les appels d'API vers le point de terminaison.
Pour vérifier que le point de terminaison est créé, résolvez le service dans l'annuaire des services.
Un point de terminaison portant le même nom que celui de la règle de transfert avec le numéro de port spécifié devrait s'afficher.
Pour résoudre le service dans Service Directory, exécutez la commande gcloud service-directory
services resolve
:
gcloud service-directory services resolve SD_SERVICE_NAME \
--namespace=SD_NAMESPACE_NAME \
--location=REGION
Remplacez les éléments suivants :
SD_SERVICE_NAME
: nom du service de l'Annuaire des services à résoudre. Il doit résider dans le nom de l'espace de noms de l'Annuaire des services.
SD_NAMESPACE_NAME
: nom que vous avez attribué à l'espace de noms contenant votre service.
REGION
: région contenant l'espace de noms. Trusted Cloud Il doit s'agir de la même région que celle dans laquelle vous avez créé la règle de transfert.
Nettoyage
Pour supprimer les ressources que vous avez créées, procédez comme suit :
Pour supprimer la règle de transfert, exécutez la commande gcloud compute forwarding-rules
delete
:
gcloud compute forwarding-rules delete FORWARDING_RULE_NAME \
--region=REGION
Remplacez les éléments suivants :
FORWARDING_RULE_NAME
: nom de la règle de transfert que vous avez créée
REGION
: région de la règle de transfert.
Pour en savoir plus, consultez Supprimer une règle de transfert.
Pour vérifier que la suppression de la règle de transfert a automatiquement supprimé le point de terminaison de l'annuaire des services, exécutez la commande gcloud service-directory
services resolve
décrite dans la section Vérifier le point de terminaison de votre service d'annuaire des services.
Pour supprimer l'espace de noms et le service de l'Annuaire des services, consultez Supprimer des ressources.
Étape suivante
- Pour obtenir une présentation de l'annuaire des services, consultez la présentation de l'annuaire des services.
- Pour trouver des solutions aux problèmes courants que vous pouvez rencontrer lors de l'utilisation de Service Directory, consultez la page Dépannage.
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/08/11 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/08/11 (UTC)."],[],[],null,["# Register an external passthrough Network Load Balancer\n\nThis page provides information about how to configure an\n[external passthrough Network Load Balancer](/load-balancing/docs/network) so that it is automatically\nregistered in Service Directory.\n\nWhen you create your load balancer, you can register it as an endpoint in an\nexisting Service Directory namespace and service of your choice. Client\napplications can then use Service Directory (using HTTP or gRPC) to resolve\nthe address of the external passthrough Network Load Balancer service and connect to it\ndirectly.\n\n#### Permissions required for this task\n\nTo perform this task, you must have been granted the following permissions\n*and* IAM roles.\n\n**Permissions**\n\n- `servicedirectory.endpoints.create`\n- `servicedirectory.endpoints.delete`\n\n**Roles**\n\n- `roles/compute.networkAdmin`\n- `roles/compute.securityAdmin`\n- `roles/compute.instanceAdmin`\n\nLimitations\n-----------\n\nService Directory integration with external passthrough Network Load Balancers has the following\nlimitations:\n\n- Automatic registration only supports external Layer 4 load balancers. You can register Google Kubernetes Engine load balancing services using the [GKE\n integration](/service-directory/docs/configuring-sd-for-gke). You can register other external load balancers, global load balancers, and Google Kubernetes Engine ingresses and gateways by calling the [Service Directory\n API](/service-directory/docs/apis).\n- You can use automatic registration only at the time of forwarding rule creation. Automatic registration using Google Cloud CLI update for an already existing forwarding rule is not available.\n- Service Directory does not provide connectivity, which means that although Service Directory stores the virtual IP address of the external passthrough Network Load Balancer, looking up the external passthrough Network Load Balancer in Service Directory does not guarantee that you can connect to the virtual IP address.\n\nBefore you begin\n----------------\n\nThese instructions require the following:\n\n- You must already have a Service Directory namespace and service in place.\n If you do not, create a namespace and service using\n the procedure in [Configure Service Directory](/service-directory/docs/configuring-service-directory).\n\n The Service Directory namespace and service must be in the\n same project and region as the external passthrough Network Load Balancer forwarding rule that\n you are creating.\n- You must already have set up the necessary\n resources to create an external passthrough Network Load Balancer forwarding rule.\n\n For information about how to create an external passthrough Network Load Balancer, see [Setting up a\n external passthrough Network Load Balancer](/load-balancing/docs/network/setting-up-network-backend-service).\n\nSet up forwarding rules to register an external passthrough Network Load Balancer in Service Directory\n------------------------------------------------------------------------------------------------------\n\nYou must set up a forwarding rule to register the external passthrough Network Load Balancer in\nService Directory. To register an external passthrough Network Load Balancer, see the following section.\n\n### Register an external passthrough Network Load Balancer\n\nTo register an external passthrough Network Load Balancer, run the [`gcloud compute forwarding-rules\ncreate` command](/sdk/gcloud/reference/compute/forwarding-rules/create) and\nset the `service-directory-registration` flag: \n\n```\ngcloud beta compute forwarding-rules create FORWARDING_RULE_NAME \\\n --region=REGION \\\n --load-balancing-scheme=EXTERNAL \\\n --address=RESERVED_IP_ADDRESS \\\n --ip-protocol=PROTOCOL_TYPE \\\n --ports=PORT_NUMBER \\\n --backend-service=BACKEND_SERVICE_NAME \\\n --backend-service-region=REGION \\\n --service-directory-registration=SD_SERVICE_NAME\n```\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003eFORWARDING_RULE_NAME\u003c/var\u003e: a name for the forwarding rule that you want to create\n- \u003cvar translate=\"no\"\u003eREGION\u003c/var\u003e: the region to create the forwarding rule in\n- \u003cvar translate=\"no\"\u003eRESERVED_IP_ADDRESS\u003c/var\u003e: the IP address that the forwarding rule serves\n- \u003cvar translate=\"no\"\u003ePROTOCOL_TYPE\u003c/var\u003e: the IP protocol that the rule is to serve\n- \u003cvar translate=\"no\"\u003ePORT_NUMBER\u003c/var\u003e: a list of comma-separated ports\n- \u003cvar translate=\"no\"\u003eBACKEND_SERVICE_NAME\u003c/var\u003e: the target backend service that receives the traffic\n- \u003cvar translate=\"no\"\u003eSD_SERVICE_NAME\u003c/var\u003e: the fully qualified name of the Service Directory service where you want to register the endpoint. This service must be in the same project and region as the forwarding rule being created. For example: projects/\u003cvar translate=\"no\"\u003ePROJECT\u003c/var\u003e/locations/\u003cvar translate=\"no\"\u003eREGION\u003c/var\u003e/namespaces/\u003cvar translate=\"no\"\u003eNAMESPACE_NAME\u003c/var\u003e/services/\u003cvar translate=\"no\"\u003eSERVICE_NAME\u003c/var\u003e.\n\n### Verify the endpoint\n\nThe Service Directory endpoints that are created when you register\nan external passthrough Network Load Balancer have the following characteristics:\n\n- The endpoint has the same name as the name of the forwarding rule with the specified port number (`\u003cforwarding rule name\u003e-\u003cport\u003e`). For example, if you create a forwarding rule `RULE` with `--port=8080`, you get an endpoint called `RULE-8080`. For the same rule, if you specified two ports `--port=8080, 8081`, you get two endpoints, `RULE-8080` and `RULE-8081`. If you specify `--port=ALL`, the Service Directory endpoint is registered with port `0`. If you are the owner of the external passthrough Network Load Balancer, you must ensure that the API caller knows what port to connect on.\n- You cannot modify or delete the endpoint using the public Service Directory API. Only when you delete the forwarding rule does the endpoint get automatically deleted. This means that you cannot delete the service and namespace that the endpoint resides in while the forwarding rule exists.\n- The endpoint itself is not billed, although normal pricing details apply to any API calls to the endpoint.\n\nTo confirm that the endpoint is created, resolve the service in Service Directory.\nYou should see an endpoint with the same name as the name of the\nforwarding rule with the specified port number.\n\nTo resolve the service in Service Directory, run the [`gcloud service-directory\nservices resolve`](/sdk/gcloud/reference/service-directory/services/resolve)\ncommand: \n\n```\ngcloud service-directory services resolve SD_SERVICE_NAME \\\n --namespace=SD_NAMESPACE_NAME \\\n --location=REGION\n```\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003eSD_SERVICE_NAME\u003c/var\u003e: the name of the Service Directory service to resolve. It must live in the Service Directory namespace name.\n- \u003cvar translate=\"no\"\u003eSD_NAMESPACE_NAME\u003c/var\u003e: the name that you gave the namespace containing your service.\n- \u003cvar translate=\"no\"\u003eREGION\u003c/var\u003e: the Google Cloud region containing the namespace. This should be the same as the region that you created the forwarding rule in.\n\nCleanup\n-------\n\nTo delete the resources that you created, follow these steps.\n\n1. To delete the forwarding rule, run the [`gcloud compute forwarding-rules\n delete`](/sdk/gcloud/reference/compute/forwarding-rules/delete)\n command:\n\n ```\n gcloud compute forwarding-rules delete FORWARDING_RULE_NAME \\\n --region=REGION\n ```\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eFORWARDING_RULE_NAME\u003c/var\u003e: the name of the forwarding rule that you created\n - \u003cvar translate=\"no\"\u003eREGION\u003c/var\u003e: the region for the forwarding rule\n\n For further details, see [Deleting a forwarding\n rule](/load-balancing/docs/using-forwarding-rules#deleting-fr).\n\n To confirm that deleting the forwarding rule has automatically deleted the\n endpoint from Service Directory, run the [`gcloud service-directory\n services resolve`](/sdk/gcloud/reference/service-directory/services/resolve)\n command described in [Verify the endpoint](#verify-endpoint)\n section on your Service Directory service.\n2. To delete the Service Directory namespace and service, see [Delete\n resources](/service-directory/docs/configuring-service-directory#delete_resources).\n\nWhat's next\n-----------\n\n- To get an overview of Service Directory, see the [Service Directory overview](/service-directory/docs/overview).\n- To find solutions for common issues that you might encounter when using Service Directory, see [Troubleshooting](/service-directory/docs/troubleshooting)."]]