Ao criar o balanceador de carga, é possível registrá-lo como um endpoint em um
namespace e serviço do Diretório de serviços de sua escolha. Os aplicativos
clientes podem usar o Diretório de serviços (usando HTTP ou gRPC) para determinar
o endereço do serviço do balanceador de carga de rede de passagem externa e se conectar a ele
diretamente.
Permissões exigidas para a tarefa
Para executar esta tarefa, são necessárias as permissões e os papéis do IAM a seguir.
Permissões
servicedirectory.endpoints.create
servicedirectory.endpoints.delete
Papéis
roles/compute.networkAdmin
roles/compute.securityAdmin
roles/compute.instanceAdmin
Limitações
A integração do Diretório de serviços com balanceadores de carga de rede de passagem externa tem as seguintes
limitações:
O registro automático só é compatível com balanceadores de carga externos da camada 4. É possível
registrar serviços de balanceamento de carga do Google Kubernetes Engine usando a
integração do GKE. É possível registrar outros balanceadores de carga externos, balanceadores de carga globais e entradas e gateways do Google Kubernetes Engine chamando a API do Diretório de serviços.
O registro automático só pode ser usado no momento da criação da regra de encaminhamento. O registro automático usando a atualização da CLI do Google Cloud para uma regra de encaminhamento já existente não está disponível.
O Diretório de serviços não oferece conectividade, o que significa que, embora
ele armazene o endereço IP virtual do balanceador de carga de rede de passagem externa,
a pesquisa do balanceador de carga de rede de passagem externa no Diretório de serviços não garante
que você possa se conectar ao endereço IP virtual.
Antes de começar
Estas instruções exigem o seguinte:
Você já precisa ter um namespace e um serviço do Diretório de serviços.
Caso contrário, crie um namespace e um serviço usando
o procedimento em Configurar o Diretório de serviços.
O namespace e o serviço do diretório de serviços precisam estar no
mesmo projeto e região que a regra de encaminhamento do balanceador de carga de rede de passagem externa que
você está criando.
Você já deve ter configurado os recursos
necessários para criar uma regra de encaminhamento de balanceador de carga de rede de passagem externa.
Configurar regras de encaminhamento para registrar um balanceador de carga de rede de passagem externa no diretório de serviços
É necessário configurar uma regra de encaminhamento para registrar o balanceador de carga de rede de passagem externa no
Diretório de serviços. Para registrar um balanceador de carga de rede de passagem externa, consulte a próxima seção.
Registrar um balanceador de carga de rede de passagem externa
FORWARDING_RULE_NAME: um nome para a regra de encaminhamento que você quer criar.
REGION: a região onde criar a regra de encaminhamento
RESERVED_IP_ADDRESS: o endereço IP que a regra de encaminhamento
veicula.
PROTOCOL_TYPE: o protocolo IP que a regra disponibilizará
PORT_NUMBER: uma lista de portas separadas por vírgula
BACKEND_SERVICE_NAME: serviço de back-end de destino que
recebe o tráfego.
SD_SERVICE_NAME: o nome totalmente qualificado do serviço de diretório de serviços em que você quer registrar o endpoint. Esse
serviço precisa estar no mesmo projeto e região que a regra de encaminhamento que está sendo
criada.
Por exemplo:
projects/PROJECT/locations/REGION/namespaces/NAMESPACE_NAME/services/SERVICE_NAME.
Verificar o endpoint
Os endpoints do Diretório de serviços que são criados quando você registra
um balanceador de carga de rede de passagem externa têm as seguintes características:
O endpoint tem o mesmo nome da regra de encaminhamento com o número de porta especificado (<forwarding rule name>-<port>). Por exemplo, se você criar uma regra de encaminhamento RULE com --port=8080, vai receber um endpoint chamado RULE-8080. Para a mesma regra, se você especificar duas portas --port=8080, 8081,
terá dois endpoints, RULE-8080 e RULE-8081. Se você especificar --port=ALL,
o endpoint do Diretório de serviços será registrado com a porta 0. Se você for
o proprietário do balanceador de carga de rede de passagem externa, é necessário garantir que o autor da chamada da API saiba
qual porta se conectar.
Não é possível modificar ou excluir o endpoint usando a API pública do
Service Directory. O endpoint só é excluído automaticamente quando você exclui a regra de encaminhamento. Isso significa que não é possível excluir o serviço e
o namespace em que o endpoint está enquanto a regra de encaminhamento existe.
O endpoint em si não é cobrado, mas os detalhes de preços normais se aplicam a
qualquer chamada de API para o endpoint.
Para confirmar que o endpoint foi criado, resolva o serviço no Diretório de serviços.
Você vai encontrar um endpoint com o mesmo nome da regra de encaminhamento e o número de porta especificado.
Para confirmar que a exclusão da regra de encaminhamento excluiu automaticamente o endpoint do Diretório de serviços, execute o comando gcloud service-directory
services resolve descrito na seção Verificar o endpoint do serviço do Diretório de serviços.
Para excluir o namespace e o serviço do Diretório de serviços, consulte Excluir
recursos.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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)."]]