Wenn Sie den Load Balancer erstellen, können Sie ihn als Endpunkt in einem vorhandenen Service Directory-Namespace und -Dienst Ihrer Wahl registrieren. Clientanwendungen können dann Service Directory (mit HTTP oder gRPC) verwenden, um die Adresse des externen Passthrough-Network-Load-Balancer-Dienstes aufzulösen und eine direkte Verbindung zu ihm herzustellen.
Erforderliche Berechtigungen für diese Aufgabe
Zum Ausführen dieser Aufgabe müssen Sie die folgenden Berechtigungen und IAM-Rollen haben.
Berechtigungen
servicedirectory.endpoints.create
servicedirectory.endpoints.delete
Rollen
roles/compute.networkAdmin
roles/compute.securityAdmin
roles/compute.instanceAdmin
Beschränkungen
Die Integration von Service Directory mit externen Passthrough-Network Load Balancern hat die folgenden Einschränkungen:
Die automatische Registrierung wird nur für externe Layer 4-Load Balancer unterstützt. Sie können Google Kubernetes Engine-Load Balancing-Dienste mithilfe der GKE-Integration registrieren. Sie können andere externe Load Balancer, globale Load Balancer sowie Google Kubernetes Engine-Eingänge und ‑Gateways registrieren, indem Sie die Service Directory API aufrufen.
Die automatische Registrierung kann nur beim Erstellen der Weiterleitungsregel verwendet werden. Die automatische Registrierung mit der Google Cloud CLI-Aktualisierung für eine bereits vorhandene Weiterleitungsregel ist nicht verfügbar.
Service Directory stellt keine Konnektivität bereit. Das bedeutet, dass zwar die virtuelle IP-Adresse des externen Passthrough-Network Load Balancers in Service Directory gespeichert wird, aber das Auffinden des externen Passthrough-Network Load Balancers in Service Directory nicht garantiert, dass Sie eine Verbindung zur virtuellen IP-Adresse herstellen können.
Hinweis
Für diese Anleitung sind folgende Voraussetzungen erforderlich:
Sie benötigen bereits einen Service Directory-Namespace und -Dienst.
Falls nicht, erstellen Sie einen Namespace und einen Dienst mithilfe der Anleitung unter Service Directory konfigurieren.
Der Service Directory-Namespace und der Dienst müssen sich im selben Projekt und in derselben Region wie die externe Passthrough-Network Load Balancer-Weiterleitungsregel befinden, die Sie erstellen.
Sie müssen bereits die erforderlichen Ressourcen eingerichtet haben, um eine Weiterleitungsregel für einen externen Passthrough-Network Load Balancer zu erstellen.
Weiterleitungsregeln einrichten, um einen externen Passthrough-Network Load Balancer in Service Directory zu registrieren
Sie müssen eine Weiterleitungsregel einrichten, um den externen Passthrough-Network Load Balancer in Service Directory zu registrieren. Informationen zum Registrieren eines externen Passthrough-Network Load Balancers finden Sie im folgenden Abschnitt.
Führen Sie zum Registrieren eines externen Passthrough-Network Load Balancers den Befehl gcloud compute forwarding-rules
create aus und legen Sie das Flag service-directory-registration fest:
FORWARDING_RULE_NAME: ein Name für die Weiterleitungsregel, die Sie erstellen möchten
REGION: ist die Region, in der die Weiterleitungsregel erstellt werden soll.
RESERVED_IP_ADDRESS: ist die IP-Adresse, für die die Weiterleitungsregel gilt.
PROTOCOL_TYPE: das IP-Protokoll, das von der Regel bereitgestellt werden soll.
PORT_NUMBER: ist eine Liste durch Kommas getrennter Ports.
BACKEND_SERVICE_NAME: der Ziel-Backend-Dienst, der den Traffic empfängt.
SD_SERVICE_NAME: der vollständig qualifizierte Name des Service Directory-Dienstes, in dem Sie den Endpunkt registrieren möchten. Dieser Dienst muss sich im selben Projekt und in derselben Region wie die zu erstellende Weiterleitungsregel befinden.
Beispiel: projects/PROJECT/locations/REGION/namespaces/NAMESPACE_NAME/services/SERVICE_NAME.
Endpunkt prüfen
Die Service Directory-Endpunkte, die beim Registrieren eines externen Passthrough-Network Load Balancers erstellt werden, haben die folgenden Eigenschaften:
Der Endpunkt hat denselben Namen wie die Weiterleitungsregel mit der angegebenen Portnummer (<forwarding rule name>-<port>). Wenn Sie beispielsweise eine Weiterleitungsregel RULE mit --port=8080 erstellen, erhalten Sie einen Endpunkt namens RULE-8080. Wenn Sie für dieselbe Regel zwei Ports angeben, --port=8080, 8081, erhalten Sie zwei Endpunkte, RULE-8080 und RULE-8081. Wenn Sie --port=ALL angeben, wird der Service Directory-Endpunkt mit dem Port 0 registriert. Wenn Sie der Inhaber des externen Passthrough-Network-Load-Balancers sind, müssen Sie dafür sorgen, dass der API-Caller weiß, über welchen Port er eine Verbindung herstellen soll.
Sie können den Endpunkt nicht über die öffentliche Service Directory API ändern oder löschen. Der Endpunkt wird nur dann automatisch gelöscht, wenn Sie die Weiterleitungsregel löschen. Das bedeutet, dass Sie den Dienst und den Namensraum, in dem sich der Endpunkt befindet, nicht löschen können, solange die Weiterleitungsregel vorhanden ist.
Der Endpunkt selbst wird nicht in Rechnung gestellt. Für alle API-Aufrufe an den Endpunkt gelten jedoch die normalen Preisdetails.
Um zu prüfen, ob der Endpunkt erstellt wurde, lösen Sie den Dienst in der Service Directory auf.
Es sollte ein Endpunkt mit demselben Namen wie der Name der Weiterleitungsregel mit der angegebenen Portnummer angezeigt werden.
SD_SERVICE_NAME: der Name des zu aufzulösenden Service Directory-Dienstes. Er muss im Namespace-Namen des Serviceverzeichnisses enthalten sein.
SD_NAMESPACE_NAME: Der Name, den Sie dem Namespace mit Ihrem Dienst gegeben haben.
REGION: die Google Cloud Region, die den Namespace enthält. Dieser muss mit der Region übereinstimmen, in der Sie die Weiterleitungsregel erstellt haben.
Bereinigen
So löschen Sie die von Ihnen erstellten Ressourcen:
Um zu prüfen, ob der Endpunkt durch das Löschen der Weiterleitungsregel automatisch aus Service Directory gelöscht wurde, führen Sie den Befehl gcloud service-directory
services resolve für Ihren Service Directory-Dienst aus, der im Abschnitt Endpunkt prüfen beschrieben ist.
Informationen zum Löschen des Service Directory-Namespaces und ‑Dienstes finden Sie unter Ressourcen löschen.
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Schwer verständlich","hardToUnderstand","thumb-down"],["Informationen oder Beispielcode falsch","incorrectInformationOrSampleCode","thumb-down"],["Benötigte Informationen/Beispiele nicht gefunden","missingTheInformationSamplesINeed","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-09-04 (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)."]]