Neste documento, mostramos duas configurações de amostra para configurar um balanceador de carga de aplicativo externo em um ambiente de VPC compartilhada:
- O primeiro exemplo cria todos os componentes e back-ends do balanceador de carga no projeto de serviço.
- O segundo exemplo cria os componentes de front-end e o mapa de URL do balanceador de carga em um projeto de serviço, enquanto o serviço de back-end e os back-ends do balanceador de carga são criados em um projeto de serviço diferente. Esse tipo de implantação, em que o mapa de URL faz referência a um serviço de back-end em outro projeto, é chamado de Referência de serviço entre projetos.
Os dois exemplos exigem a mesma configuração inicial para conceder permissões e definir a VPC compartilhada antes de começar a criar balanceadores de carga.
Essas não são as únicas configurações de VPC compartilhada compatíveis com o balanceador de carga de aplicativo regional externo. Para outras arquiteturas de VPC compartilhada válidas, consulte Arquiteturas de VPC compartilhada.
Se você não quiser usar uma rede VPC compartilhada, consulte Configurar um balanceador de carga de aplicativo externo regional com back-ends de grupos de instâncias de VM.
Antes de começar
- Leia Visão geral da VPC compartilhada.
- Leia a Visão geral do balanceador de carga de aplicativo externo, incluindo a seção Arquiteturas de VPC compartilhada.
Permissões necessárias
A configuração de um balanceador de carga em uma rede VPC compartilhada requer algumas configurações e provisionamento iniciais de um administrador. Após a configuração inicial, o proprietário de um projeto de serviço pode realizar uma das seguintes ações:
- Implantar todos os componentes e os back-ends do balanceador de carga em um projeto de serviço.
- Implante os componentes do back-end do balanceador de carga (serviço de back-end e back-ends) em projetos de serviço que podem ser referenciados por um mapa de URL em outro serviço ou projeto de host.
Esta seção resume as permissões necessárias para seguir este guia para configurar um balanceador de carga em uma rede VPC compartilhada.
Configurar VPC compartilhada
Os seguintes papéis são necessários para as seguintes tarefas:
- Executar tarefas administrativas únicas, como configurar a VPC compartilhada e ativar um projeto host.
- Executar tarefas administrativas que precisam ser repetidas sempre que você quiser integrar um novo projeto de serviço. Isso inclui anexar o projeto de serviço, provisionar e configurar recursos de rede e conceder acesso ao administrador do projeto de serviço.
Essas tarefas precisam ser executadas no projeto host da VPC compartilhada. Recomendamos que o administrador da VPC compartilhada também seja o proprietário do projeto host da VPC compartilhada. Isso concede automaticamente os papéis de administrador de rede e administrador de segurança.
Tarefa | Papel necessário |
---|---|
Configurar a VPC compartilhada, ativar o projeto host e conceder acesso aos administradores do projeto de serviço | Administrador de VPC compartilhada |
Criar sub-redes no projeto host da VPC compartilhada e conceder acesso aos administradores do projeto de serviço | Administrador de rede |
Adicionar e remover regras de firewall | Administrador de segurança |
Depois que as sub-redes são provisionadas, o proprietário do projeto de host precisa conceder o papel do usuário de rede no projeto de hosta qualquer pessoa (normalmente desenvolvedores, contas de serviço ou administradores do projeto de serviço) que precisa usar esses recursos.
Tarefa | Papel necessário |
---|---|
Usar redes e sub-redes VPC pertencentes ao projeto host | Usuário de rede |
Esse papel pode ser concedido no nível do projeto ou para sub-redes individuais. Recomendamos que você conceda o papel em sub-redes individuais. Conceder o papel no projeto fornece acesso a todas as sub-redes atuais e futuras na VPC do projeto host.
Implantar balanceador de carga e back-ends
Os administradores do projeto de serviço precisam dos seguintes papéis no projeto de serviço para criar recursos e back-ends de balanceamento de carga. Essas permissões são concedidas automaticamente ao proprietário ou editor do projeto de serviço.
Tarefa | Papel necessário |
---|---|
Criar componentes do balanceador de carga | Administrador de rede |
Criar instâncias | Administrador de instâncias |
Criar e modificar certificados SSL | Administrador de segurança |
Pré-requisitos
Nesta seção, você precisa executar as seguintes etapas:
- Como configurar a rede e as sub-redes no projeto host.
- Configure a VPC compartilhada no projeto host.
As etapas nesta seção não precisam ser realizadas sempre que você quiser criar um novo balanceador de carga. No entanto, é preciso garantir que você tenha acesso aos recursos descritos aqui antes de continuar criando o balanceador de carga.
Como configurar a rede e as sub-redes no projeto host
Você precisa de uma rede VPC compartilhada com duas sub-redes: uma para o front-end e os back-ends do balanceador de carga e outra para os proxies do balanceador de carga.Este exemplo usa a seguinte rede, região e sub-redes:
Rede: o nome da rede é
lb-network
.Sub-rede para o front-end e os back-ends do balanceador de carga. uma sub-rede chamada
lb-frontend-and-backend-subnet
na regiãous-west1
usa10.1.2.0/24
para o intervalo de IP primário.Sub-rede para proxies: uma sub-rede chamada
proxy-only-subnet
na regiãous-west1
usa10.129.0.0/23
como o intervalo de IP primário.
Configurar a sub-rede para o front-end e os back-ends do balanceador de carga
Essa etapa não precisa ser realizada sempre que você quiser criar um novo balanceador de carga. Você só precisa garantir que o projeto de serviço tenha acesso a uma sub-rede na rede VPC compartilhada (além da sub-rede somente proxy).Todas as etapas nesta seção precisam ser realizadas no projeto host.
Console
- No Console do Google Cloud, acesse a página Redes VPC.
- Clique em Criar rede VPC.
- Em Nome, insira
lb-network
. Na seção Sub-redes:
- Defina o Modo de criação da sub-rede como Personalizado.
Na seção Nova sub-rede, insira as seguintes informações:
- Name:
lb-frontend-and-backend-subnet
Região:
us-west1
Intervalo de endereços IP:
10.1.2.0/24
- Name:
Clique em Concluído.
Clique em Criar.
gcloud
Crie uma rede VPC com o comando
gcloud compute networks create
:gcloud compute networks create lb-network --subnet-mode=custom
Crie uma sub-rede na rede
lb-network
, regiãous-west1
:gcloud compute networks subnets create lb-frontend-and-backend-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-west1
Terraform
Crie uma rede VPC:
Crie uma sub-rede na região
us-west1
:
Configurar a sub-rede somente proxy
A sub-rede somente proxy é usada por todos os balanceadores de carga regionais
baseados no Envoy na
região us-west1
,
na rede VPC lb-network
. Só pode haver uma sub-rede somente proxy ativa por região, por rede.
Não realize esta etapa se já houver uma sub-rede somente proxy reservada na região us-west1
desta rede.
Todas as etapas nesta seção precisam ser realizadas no projeto host.
Console
- No Console do Google Cloud, acesse a página Redes VPC.
- Clique no nome da rede VPC compartilhada:
lb-network
. - Clique em Add subnet.
- Em Nome, insira
proxy-only-subnet
. - Em Região, selecione
us-west1
. - Defina Finalidade como Proxy gerenciado regional.
- Em Intervalo de endereços IP, insira
10.129.0.0/23
. - Clique em Adicionar.
gcloud
Crie a sub-rede somente proxy com o comando gcloud compute networks subnets
create
.
gcloud compute networks subnets create proxy-only-subnet \ --purpose=REGIONAL_MANAGED_PROXY \ --role=ACTIVE \ --region=us-west1 \ --network=lb-network \ --range=10.129.0.0/23
Terraform
Crie a sub-rede somente proxy:
Conceder aos administradores do projeto de serviço acesso à sub-rede de back-end
Os administradores de projetos de serviço exigem acesso à sub-redelb-frontend-and-backend-subnet
para que possam provisionar os back-ends do balanceador de carga.
Um administrador de VPC compartilhada precisa conceder acesso à sub-rede de back-end aos administradores (ou desenvolvedores que implantarão recursos e back-ends que usam a sub-rede) do projeto de serviço. Veja instruções em Administradores de projetos de serviço para algumas sub-redes.
Configurar regras de firewall no projeto host
Neste exemplo, usamos as seguintes regras de firewall:fw-allow-health-check
. uma regra de entrada, aplicável às instâncias cuja carga está sendo balanceada, que permite todo o tráfego TCP dos sistemas de verificação de integridade do Google Cloud (em130.211.0.0/22
e35.191.0.0/16
). Este exemplo usa a tag de destinoload-balanced-backend
para identificar as instâncias às quais ela deve se aplicar.
fw-allow-proxies
. Uma regra de entrada, aplicável às instâncias submetidas a balanceamento de carga, que permite o tráfego TCP em portas80
,443
e8080
dos proxies gerenciados do balanceador de carga. Neste exemplo, usamos a tag de destinoload-balanced-backend
para identificar as instâncias às quais ela deve se aplicar.
Todas as etapas nesta seção precisam ser realizadas no projeto host.
Console
No Console do Google Cloud, acesse a página políticas de Firewall.
- Clique em Criar regra de firewall para criar a regra que permite as verificações de integridade do Google Cloud:
- Name:
fw-allow-health-check
- Rede:
lb-network
- Direção do tráfego: entrada
- Ação na correspondência: permitir
- Destinos: tags de destino especificadas
- Tags de meta:
load-balanced-backend
- Filtro de origem: intervalos IPv4
- Intervalos IPv4 de origem:
130.211.0.0/22
e35.191.0.0/16
- Protocolos e portas:
- Escolha Protocolos e portas especificados.
- Marque TCP e insira
80
como o número da porta.
Como prática recomendada, limite esta regra somente aos protocolos e portas que correspondem aos usados por sua verificação de integridade. Se você usar
tcp:80
para o protocolo e a porta, o Google Cloud poderá usar HTTP na porta80
para entrar em contato com suas VMs, mas não poderá usar HTTPS na porta443
para entrar em contato com elas. - Clique em Criar.
- Clique em Criar regra de firewall para criar a regra que permite as verificações de integridade do Google Cloud:
- Name:
fw-allow-proxies
- Rede:
lb-network
- Direção do tráfego: entrada
- Ação na correspondência: permitir
- Destinos: tags de destino especificadas
- Tags de meta:
load-balanced-backend
- Filtro de origem: intervalos IPv4
- Intervalos IPv4 de origem:
10.129.0.0/23
- Protocolos e portas:
- Escolha Protocolos e portas especificados.
- Marque TCP e insira
80, 443, 8080
como os números de porta.
- Clique em Criar.
gcloud
Crie a regra de firewall
fw-allow-health-check
para permitir verificações de integridade do Google Cloud. Neste exemplo, todo o tráfego TCP de sondagens de verificação de integridade é permitido. No entanto, é possível configurar um conjunto mais restrito de portas para atender às suas necessidades.gcloud compute firewall-rules create fw-allow-health-check \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --target-tags=load-balanced-backend \ --rules=tcp
Crie a regra de firewall
fw-allow-proxies
para permitir que o tráfego da sub-rede somente proxy do Envoy chegue aos seus back-ends.gcloud compute firewall-rules create fw-allow-proxies \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=10.129.0.0/23 \ --target-tags=load-balanced-backend \ --rules=tcp:80,tcp:443,tcp:8080
Terraform
Crie uma regra de firewall para permitir verificações de integridade do Google Cloud.
Crie uma regra de firewall para permitir que o tráfego da sub-rede somente proxy do Envoy chegue aos seus back-ends.
Configurar a VPC compartilhada no projeto host
Esta etapa envolve ativar um projeto host da VPC compartilhada, compartilhar sub-redes do projeto host e anexar projetos de serviço ao projeto host para que os projetos de serviço possam usar a rede VPC compartilhada. Para configurar a VPC compartilhada no projeto host, consulte as seguintes páginas:
O restante das instruções pressupõe que você já configurou a VPC compartilhada. Isso inclui a configuração de políticas do Cloud IAM para sua organização e a designação dos projetos host e de serviço.
Não continue até configurar a VPC compartilhada e ativar os projetos host e de serviço.
Depois de concluir as etapas definidas nesta seção de pré-requisitos, você poderá seguir uma das seguintes configurações:
Configurar um balanceador de carga no projeto de serviço
Este exemplo cria um balanceador de carga de aplicativo externo em que todos os componentes de balanceamento de carga (regra de encaminhamento, proxy de destino, mapa de URLs e serviço de back-end) e os back-ends são criados no projeto de serviço.
Os recursos de rede do balanceador de carga de aplicativo interno, como a sub-rede somente proxy e a sub-rede para as instâncias de back-end, são criados no projeto host. As regras de firewall para as instâncias de back-end também são criadas no projeto host.
Nesta seção, mostramos como configurar o balanceador de carga e os back-ends. Essas etapas devem ser realizadas pelo administrador do projeto de serviço (ou um desenvolvedor que opere nele) e não exigem o envolvimento do administrador do projeto host. As etapas nesta seção são muito semelhantes às etapas padrão para configurar balanceadores de carga de aplicativo externos regionais.
No exemplo desta página, é definido explicitamente um endereço IP externo reservado para a regra de encaminhamento do balanceador de carga de aplicativo externo regional, em vez de um endereço IP externo temporário ser alocado. Como prática recomendada, reserve endereços IP para regras de encaminhamento.
Criar um back-end de grupo gerenciado de instâncias
Nesta seção, mostramos como criar um modelo de instância e um back-end de grupo de instâncias gerenciadas. O tráfego dos clientes tem a carga balanceada para VMs nesses grupos de instâncias.
Console
Crie um modelo de instância. No Console do Google Cloud, acesse a página Modelos de instância.
Acessar "Modelos de instância"
- Clique em Criar modelo de instância.
- Em Nome, insira
l7-xlb-backend-template
. - Verifique se o disco de inicialização está definido como uma imagem Debian. Por exemplo, Debian GNU/Linux 10 (buster). Estas instruções usam comandos que
estão disponíveis apenas no Debian, como
apt-get
. Se você precisar alterar o disco de inicialização, clique em Alterar.- Em Sistema operacional, selecione Debian.
- Em Versão, selecione uma das imagens Debian disponíveis, como Debian GNU/Linux 10 (buster).
- Clique em Selecionar.
- Clique em Opções avançadas e em Rede.
- Insira as seguintes tags de rede:
load-balanced-backend
. - Em Interfaces de rede, selecione Redes compartilhadas comigo (do projeto host: HOST_PROJECT_ID).
- Selecione a sub-rede
lb-frontend-and-backend-subnet
na redelb-network
. Clique em Gerenciamento. Em Gerenciamento, insira o script a seguir no campo Script de inicialização.
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2
Clique em Criar.
Crie um grupo de instâncias gerenciadas. No Console do Google Cloud, acesse a página Grupos de instâncias.
- Clique em Criar grupo de instâncias.
- Escolha Novo grupo gerenciado de instâncias (sem estado). Para mais informações, consulte MIGs sem estado ou com estado.
- Em Nome, insira
l7-xlb-backend-example
. - Em Local, selecione Zona única.
- Em Região, selecione us-west1.
- Em Zona, selecione us-west1-a.
- Em Modelo de instância, selecione
l7-xlb-backend-template
. Especifique o número de instâncias que você quer criar no grupo.
Neste exemplo, especifique as seguintes opções em Escalonamento automático:
- Em Modo de escalonamento automático, selecione
Off:do not autoscale
. - Em Número máximo de instâncias, insira
2
.
Opcionalmente, na seção Escalonamento automático, é possível configurar o grupo de instâncias para adicionar ou remover instâncias automaticamente com base no uso da CPU da instância.
- Em Modo de escalonamento automático, selecione
Clique em Criar.
gcloud
As instruções gcloud
deste guia pressupõem que você está usando o Cloud
Shell ou outro ambiente com o bash instalado.
Crie um modelo de instância de VM com o servidor HTTP usando o comando
gcloud compute instance-templates create
.gcloud compute instance-templates create l7-xlb-backend-template \ --region=us-west1 \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --tags=load-balanced-backend \ --image-family=debian-10 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2' \ --project=SERVICE_PROJECT_ID
Crie um grupo de instâncias gerenciadas na zona com o comando
gcloud compute instance-groups managed create
.gcloud compute instance-groups managed create l7-xlb-backend-example \ --zone=us-west1-a \ --size=2 \ --template=l7-xlb-backend-template \ --project=SERVICE_PROJECT_ID
Reservar o endereço IP do balanceador de carga no projeto de serviço
Reserve um endereço IP externo estático regional para o balanceador de carga no projeto de serviço.
Todas as etapas nesta seção precisam ser realizadas no projeto de serviço.
Console
No console do Google Cloud, acesse a página Reservar um endereço estático.
Insira um nome para o novo endereço.
Em Nível de serviço de rede, selecione Padrão.
Em Versão IP, selecione IPv4. Os endereços IPv6 só podem ser globais. Também só podem ser usados com balanceadores de carga globais.
Em Tipo, selecione Regional.
Em Região, selecione
us-west1
.Deixe a opção Anexado a definida como Nenhum. Depois de criar o balanceador de carga, esse endereço IP será anexado à regra de encaminhamento do balanceador de carga.
Para reservar o endereço IP, clique em Reservar.
gcloud
Para reservar um endereço IP externo estático,
use o comando compute addresses create
.
gcloud compute addresses create IP_ADDRESS_NAME \ --region=us-west1 \ --network-tier=STANDARD \ --project=SERVICE_PROJECT_ID
Substitua:
IP_ADDRESS_NAME
: o nome que você quer atribuir a esse endereço.SERVICE_PROJECT_ID
: o ID do projeto de serviço em que o balanceador de carga está sendo criado.
Configurar o balanceador de carga
Nesta seção, mostramos como criar os seguintes recursos regionais de balanceador de carga de aplicativo externo:
- Verificação de integridade de HTTP
- Serviço de back-end com um grupo de instâncias gerenciadas como o back-end
- Um mapa de URL
- Certificado SSL (obrigatório apenas para HTTPS)
- Proxy de destino
- Regra de encaminhamento
Disponibilidade de proxy
Dependendo do número de projetos de serviço que usam a mesma rede VPC compartilhada, há a possibilidade de atingir cotas ou limites mais rapidamente do que no modelo de implantação de rede em que cada projeto do Google Cloud hospeda a própria rede.
Por exemplo, às vezes, as regiões do Google Cloud não têm capacidade de proxy suficiente para um novo balanceador de carga de aplicativo externo regional. Se isso acontecer, o Console do Google Cloud fornecerá uma mensagem de aviso sobre a disponibilidade de proxy quando você criar o balanceador de carga. Para resolver esse problema, siga um destes procedimentos:
- Aguarde o problema de capacidade ser resolvido.
Entre em contato com sua equipe de vendas do Google Cloud para aumentar esses limites.
Console
Migrar o contexto para o projeto de serviço
- No Console do Google Cloud, abra a página Painel.
- Clique na lista Selecionar de na parte superior da página. Na janela Selecionar de exibida, selecione o projeto de serviço em que você quer criar o balanceador de carga.
Iniciar a configuração
No console do Google Cloud, acesse a página Balanceamento de carga.
- Clique em Criar balanceador de carga.
- Em Tipo de balanceador de carga, selecione Balanceador de carga de aplicativo (HTTP/HTTPS) e clique em Próxima.
- Em Voltado ao público ou interno, selecione Voltado ao público (externo) e clique em Próxima.
- Em Implantação global ou de região única, selecione Melhor para cargas de trabalho regionais e clique em Próxima.
- Clique em Configurar.
Configuração básica
- Em Nome do balanceador de carga, digite
l7-xlb-shared-vpc
. - Em Região, selecione us-west1.
Em Rede, selecione lb-network (do Projeto: HOST_PROJECT_ID).
Se você vir um aviso Sub-rede exclusiva de proxy necessária na rede VPC compartilhada, confirme se o administrador do projeto de host criou o
proxy-only-subnet
na regiãous-west1
na rede VPC compartilhadalb-network
. A criação do balanceador de carga será bem-sucedida mesmo que você não tenha permissão para visualizar a sub-rede exclusiva de proxy nesta página.Mantenha a página aberta para continuar.
Configure o front-end
Para HTTP:
- Clique em Configuração de front-end.
- Clique em Adicionar IP e porta de front-end.
- Defina o Nome como
l7-xlb-forwarding-rule
. - Defina Protocolo como
HTTP
. - Defina a Porta como
80
. Selecione o Endereço IP criado em Como reservar o endereço IP do balanceador de carga.
Clique em Concluído.
Para HTTPS:
Se você usa o HTTPS entre o cliente e o balanceador de carga, um ou mais recursos de certificado SSL serão necessários para configurar o proxy. Saiba mais sobre como criar recursos de certificado SSL em Certificados SSL. No momento, os certificados gerenciados pelo Google não são compatíveis com balanceadores de carga regionais de aplicativos.
- Clique em Configuração de front-end.
- Clique em Adicionar IP e porta de front-end.
- No campo Nome, use
l7-xlb-forwarding-rule
. - No campo Protocolo, selecione
HTTPS (includes HTTP/2)
. - Certifique-se de que Porta esteja definida como
443
, para permitir tráfego HTTPS. - Selecione o Endereço IP criado em Como reservar o endereço IP do balanceador de carga.
- Clique na lista Certificate.
- Se você já tiver um recurso de certificado SSL autogerenciado que você quer usar como o certificado SSL principal, selecione-o no menu.
- Caso contrário, selecione Criar um novo certificado.
- Preencha um Nome para
l7-xlb-cert
. - Nos campos apropriados, faça o upload dos arquivos formatados em PEM:
- Certificado de chave pública
- Cadeia de certificados
- Chave privada
- Clique em Criar.
- Preencha um Nome para
- Para adicionar recursos de certificado além do certificado SSL principal, siga estas etapas:
- Clique em Adicionar certificado.
- Selecione um certificado na lista Certificados ou clique em Criar um novo certificado e siga as instruções acima.
- Clique em Concluído.
Configure o back-end
- Clique em Configuração de back-end.
- No menu Criar ou selecionar serviços de back-end, selecione Criar um serviço de back-end.
- Defina o Nome do serviço de back-end como
l7-xlb-backend-service
. - Defina o Tipo de back-end como Grupos de instâncias.
- Na seção Novo back-end:
- Defina o Grupo de instâncias como
l7-xlb-backend-example
. - Defina os Números de portas como
80
. - Defina o Modo de balanceamento como Utilização.
- Clique em Concluído.
- Defina o Grupo de instâncias como
- Na seção Verificação de integridade, escolha Criar verificação de integridade com
os seguintes parâmetros:
- Name:
l7-xlb-basic-check
- Protocolo:
HTTP
- Porta:
80
- Name:
- Clique em Salvar e continuar.
- Clique em Criar.
Configurar as regras de roteamento
- Clique em Regras de roteamento. Certifique-se de que
l7-xlb-backend-service
seja o único serviço de back-end para qualquer host e qualquer caminho sem correspondência.
Saiba mais sobre gerenciamento de tráfego em Como configurar o gerenciamento de tráfego.
Revise e finalize a configuração
- Clique em Criar
gcloud
Defina a verificação de integridade HTTP com o comando
gcloud compute health-checks create http
.gcloud compute health-checks create http l7-xlb-basic-check \ --region=us-west1 \ --use-serving-port \ --project=SERVICE_PROJECT_ID
Defina o serviço de back-end com o comando
gcloud compute backend-services create
.gcloud compute backend-services create l7-xlb-backend-service \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --health-checks=l7-xlb-basic-check \ --health-checks-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_ID
Adicione back-ends ao serviço de back-end com o comando
gcloud compute backend-services add-backend
.gcloud compute backend-services add-backend l7-xlb-backend-service \ --balancing-mode=UTILIZATION \ --instance-group=l7-xlb-backend-example \ --instance-group-zone=us-west1-a \ --region=us-west1 \ --project=SERVICE_PROJECT_ID
Crie o mapa de URL com o comando
gcloud compute url-maps create
.gcloud compute url-maps create l7-xlb-map \ --default-service=l7-xlb-backend-service \ --region=us-west1 \ --project=SERVICE_PROJECT_ID
Crie o proxy de destino.
Para HTTP:
Para um balanceador de carga HTTP, crie o proxy de destino com o comando
gcloud compute target-http-proxies create
.gcloud compute target-http-proxies create l7-xlb-proxy \ --url-map=l7-xlb-map \ --url-map-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_ID
Para HTTPS:
Saiba mais sobre como criar recursos de certificado SSL em Certificados SSL. No momento, os certificados gerenciados pelo Google não são compatíveis com balanceadores de carga regionais de aplicativos.
Atribua os caminhos de arquivo aos nomes de variáveis.
export LB_CERT=path to PEM-formatted file
export LB_PRIVATE_KEY=path to PEM-formatted file
Crie um certificado SSL regional usando o comando
gcloud compute ssl-certificates create
.gcloud compute ssl-certificates create l7-xlb-cert \ --certificate=$LB_CERT \ --private-key=$LB_PRIVATE_KEY \ --region=us-west1
Use o certificado SSL regional para criar um proxy de destino com o comando
gcloud compute target-https-proxies create
.gcloud compute target-https-proxies create l7-xlb-proxy \ --url-map=l7-xlb-map \ --region=us-west1 \ --ssl-certificates=l7-xlb-cert \ --project=SERVICE_PROJECT_ID
Crie a regra de encaminhamento.
Para redes personalizadas, referencie a sub-rede na regra de encaminhamento.
Como endereço IP da regra de encaminhamento, use o
lb-frontend-and-backend-subnet
. Se você tentar usar a sub-rede somente proxy, a criação da regra de encaminhamento falhará.Para HTTP:
Use o comando
gcloud compute forwarding-rules create
com as sinalizações corretas.gcloud compute forwarding-rules create l7-xlb-forwarding-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --address=IP_ADDRESS_NAME \ --ports=80 \ --region=us-west1 \ --target-http-proxy=l7-xlb-proxy \ --target-http-proxy-region=us-west1 \ --network-tier=STANDARD \ --project=SERVICE_PROJECT_ID
Para HTTPS:
Crie a regra de encaminhamento usando o comando
gcloud compute forwarding-rules create
com as sinalizações corretas.gcloud compute forwarding-rules create l7-xlb-forwarding-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --address=IP_ADDRESS_NAME \ --ports=443 \ --region=us-west1 \ --target-https-proxy=l7-xlb-proxy \ --target-https-proxy-region=us-west1 \ --network-tier=STANDARD \ --project=SERVICE_PROJECT_ID
Testar o balanceador de carga
Agora que o serviço de balanceamento de carga está em execução, é possível enviar o tráfego para a regra de encaminhamento e observar como ele será distribuído em várias instâncias.
Console
No Console do Google Cloud, acesse a página Balanceamento de carga.
- Clique no balanceador de carga que você acabou de criar.
- Anote o endereço IP do balanceador de carga. Esse endereço IP é chamado de
LB_IP_ADDRESS
nas etapas a seguir. - Na seção Back-end, confirme se as VMs estão íntegras. A coluna Integridade deve estar preenchida, indicando que ambas as VMs estão íntegras (
2/2
). Caso contrário, primeiro tente recarregar a página. Pode levar alguns instantes para o console do Google Cloud indicar que as VMs estão íntegras. Se os back-ends não forem exibidos depois de alguns minutos, analise a configuração do firewall e a tag de rede atribuída às suas VMs de back-end. - Depois que o console do Google Cloud mostrar que as instâncias de back-end estão
íntegras, teste o balanceador de carga com um navegador da Web acessando
https://LB_IP_ADDRESS
(ouhttp://LB_IP_ADDRESS
). SubstituaLB_IP_ADDRESS
pelo endereço IP do balanceador de carga. - Caso você tenha usado um certificado autoassinado durante o teste, o navegador exibirá um aviso. Você precisa permitir que o navegador aceite um certificado autoassinado.
- Seu navegador deve renderizar uma página que mostre o nome da instância que a exibiu e a zona dela (por exemplo,
Page served from: lb-backend-example-xxxx
). Caso seu navegador não renderize essa página, revise as configuração mostradas neste guia.
gcloud
Anote o endereço IP que foi reservado:
gcloud compute addresses describe IP_ADDRESS_NAME \ --format="get(address)" \ --region=us-west1
É possível testar o balanceador de carga usando um navegador da Web acessando
https://IP_ADDRESS_NAME
(ou
http://IP_ADDRESS_NAME
). Substitua
IP_ADDRESS_NAME
pelo
endereço IP do balanceador de carga.
Caso você tenha usado um certificado autoassinado durante o teste de HTTPS, o navegador exibirá um aviso. Você precisa permitir que o navegador aceite um certificado autoassinado.
O navegador precisa renderizar uma página com informações mínimas sobre a instância de back-end. Se o navegador não renderizar a página, revise as configurações neste guia.
Configurar um balanceador de carga com um serviço de back-end entre projetos
O exemplo anterior nesta página mostra como configurar uma implantação de VPC compartilhada em que todos os componentes do balanceador de carga e os back-ends dele são criados no projeto de serviço.
O balanceamento de carga de aplicativo externo regional também permite configurar implantações de VPC compartilhada em que um mapa de URL em um projeto host ou de serviço pode referenciar serviços de back-end (e back-ends) localizados em vários projetos de serviço em ambientes de VPC compartilhada. Isso é chamado de referência de serviço entre projetos.
Use as etapas desta seção como referência para configurar qualquer uma das combinações compatíveis listadas aqui:
- Regra de encaminhamento, proxy de destino e mapa de URL no projeto host, com serviço de back-end em um projeto de serviço.
- Regra de encaminhamento, proxy de destino e mapa de URL em um projeto de serviço, com serviço de back-end em outro projeto de serviço.
A referência de serviços entre projetos pode ser usada com grupos de instâncias, NEGs sem servidor ou qualquer outro tipo de back-end com suporte. Se estiver usando NEGs sem servidor, crie uma VM na rede VPC em que você pretende criar o front-end do balanceador de carga. Por exemplo, consulte Criar uma instância de VM em uma sub-rede específica em Configurar um balanceador de carga de aplicativo externo regional com o Cloud Run.
Requisitos para criação
Este exemplo configura um balanceador de carga de amostra com o front-end e o back-end em dois projetos de serviço diferentes.
Se você ainda não tiver feito isso, conclua todas as etapas de pré-requisito para configurar a VPC compartilhada e configurar a rede, as sub-redes e as regras de firewall necessárias para este exemplo. Para instruções, consulte as seguintes seções no início desta página:
Reservar o endereço IP do balanceador de carga no projeto de serviço A
Reserve um endereço IP externo estático regional para o balanceador de carga no projeto de serviço A.
Todas as etapas nesta seção precisam ser realizadas no projeto de serviço A.
Console
No console do Google Cloud, acesse a página Reservar um endereço estático.
Para o nome do novo endereço, digite
cross-ref-ip-address
.Em Nível de serviço de rede, selecione Padrão.
Em Versão IP, selecione IPv4. Os endereços IPv6 só podem ser globais. Também só podem ser usados com balanceadores de carga globais.
Em Tipo, selecione Regional.
Em Região, selecione
us-west1
.Deixe a opção Anexado a definida como Nenhum. Depois de criar o balanceador de carga, esse endereço IP será anexado à regra de encaminhamento do balanceador de carga.
Para reservar o endereço IP, clique em Reservar.
gcloud
Para reservar um endereço IP externo estático,
use o comando compute addresses create
.
gcloud compute addresses create IP_ADDRESS_CROSS_REF \ --region=us-west1 \ --network-tier=STANDARD \ --project=SERVICE_PROJECT_A_ID
Substitua:
IP_ADDRESS_CROSS_REF
: o nome que você quer atribuir a esse endereço.SERVICE_PROJECT_A_ID
: o ID do projeto de serviço A em que o front-end do balanceador de carga está sendo criado.
Crie os back-ends e o serviço de back-end no projeto de serviço B
Todas as etapas nesta seção precisam ser realizadas no projeto de serviço B.
Console
Crie um modelo de instância. No Console do Google Cloud, acesse a página Modelos de instância.
Acessar "Modelos de instância"
- Clique em Criar modelo de instância.
- Digite um Nome para o modelo de instância:
cross-ref-backend-template
. - Verifique se o disco de inicialização está definido como uma imagem Debian. Por exemplo, Debian GNU/Linux 10 (buster). Estas instruções usam comandos que
estão disponíveis apenas no Debian, como
apt-get
. Se você precisar alterar o disco de inicialização, clique em Alterar.- Em Sistema operacional, selecione Debian.
- Em Versão, selecione uma das imagens Debian disponíveis, como Debian GNU/Linux 10 (buster).
- Clique em Selecionar.
- Clique em Opções avançadas e em Rede.
- Insira as seguintes tags de rede:
load-balanced-backend
. - Em Interfaces de rede, selecione Redes compartilhadas comigo (do projeto host: HOST_PROJECT_ID).
- Selecione a sub-rede
lb-frontend-and-backend-subnet
na redelb-network
. Clique em Gerenciamento. Em Gerenciamento, insira o script a seguir no campo Script de inicialização:
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2
Clique em Criar.
Crie um grupo de instâncias gerenciadas. No Console do Google Cloud, acesse a página Grupos de instâncias.
- Clique em Criar grupo de instâncias.
- Escolha Novo grupo gerenciado de instâncias (sem estado). Para mais informações, consulte MIGs sem estado ou com estado.
- Digite um Nome para o grupo de instâncias:
cross-ref-ig-backend
. - Em Local, selecione Zona única.
- Em Região, selecione us-west1.
- Em Zona, selecione us-west1-a.
- Em Modelo de instância, selecione cross-ref-backend-template.
Especifique o número de instâncias que você quer criar no grupo.
Neste exemplo, especifique as seguintes opções em Escalonamento automático:
- Em Modo de escalonamento automático, selecione
Off:do not autoscale
. - Em Número máximo de instâncias, insira
2
.
Opcionalmente, na seção Escalonamento automático, é possível configurar o grupo de instâncias para adicionar ou remover instâncias automaticamente com base no uso da CPU da instância.
- Em Modo de escalonamento automático, selecione
Clique em Criar.
Criar um serviço de back-end regional Como parte desta etapa, também criamos a verificação de integridade e adicionamos back-ends ao serviço de back-end. No console do Google Cloud, abra a página Back-ends.
- Clique em Criar serviço de back-end regional.
- Digite um Nome para o serviço de back-end:
cross-ref-backend-service
. - Em Região, selecione us-west1.
- Em Tipo de balanceador de carga, selecione Balanceador de carga de aplicativo externo regional (EXTERNAL_MANAGED).
- Defina o Tipo de back-end como Grupos de instâncias.
- Na seção Back-ends, defina Rede como lb-network.
- Clique em Adicionar back-end e defina os seguintes campos:
- Defina o Grupo de instâncias como cross-ref-ig-backend.
- Defina Números de portas como
80
. - Defina Modo de balanceamento como Utilização.
- Clique em Concluído.
- Na seção Verificação de integridade, escolha Criar verificação de integridade com
os seguintes parâmetros:
- Name:
cross-ref-http-health-check
- Protocolo:
HTTP
- Porta:
80
- Clique em Save.
- Name:
Opcional: na seção Adicionar permissões, insira os principais do IAM (geralmente um endereço de e-mail) de administradores do balanceador de carga de outros projetos para que eles possam usar esse serviço de back-end balanceadores de carga nos próprios projetos. Sem essa permissão, não é possível usar a referência de serviços entre projetos.
Se você não tiver permissão para definir políticas de controle de acesso para serviços de back-end neste projeto, ainda será possível criar o serviço de back-end agora, e um usuário autorizado poderá executar essa etapa mais tarde, conforme descrito na seção Conceda permissões ao administrador do balanceador de carga para usar o serviço de back-end. Essa seção também descreve como conceder acesso a todos os serviços de back-end neste projeto para que você não precise conceder acesso sempre que criar um novo serviço de back-end.
Clique em Criar.
gcloud
Crie um modelo de instância de VM com o servidor HTTP usando o comando
gcloud compute instance-templates create
.gcloud compute instance-templates create BACKEND_IG_TEMPLATE \ --region=us-west1 \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --tags=load-balanced-backend \ --image-family=debian-10 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2' \ --project=SERVICE_PROJECT_B_ID
Substitua:
BACKEND_IG_TEMPLATE
: o nome do modelo do grupo de instâncias.SERVICE_PROJECT_B_ID
: o ID do projeto de serviço B, em que os back-ends do balanceador de carga e o serviço de back-end estão sendo criados.HOST_PROJECT_ID
: o ID do projeto host da VPC compartilhada.
Crie um grupo de instâncias gerenciadas na zona com o comando
gcloud compute instance-groups managed create
.gcloud compute instance-groups managed create BACKEND_MIG \ --zone=us-west1-a \ --size=2 \ --template=BACKEND_IG_TEMPLATE \ --project=SERVICE_PROJECT_B_ID
Substitua:
BACKEND_MIG
: o nome do grupo de instâncias de back-end.
Defina a verificação de integridade HTTP com o comando
gcloud compute health-checks create http
.gcloud compute health-checks create http HTTP_HEALTH_CHECK_NAME \ --region=us-west1 \ --use-serving-port \ --project=SERVICE_PROJECT_B_ID
Substitua:
HTTP_HEALTH_CHECK_NAME
: o nome da verificação de integridade HTTP.
Defina o serviço de back-end com o comando
gcloud compute backend-services create
.gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --health-checks=HTTP_HEALTH_CHECK_NAME \ --health-checks-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_B_ID
Substitua:
BACKEND_SERVICE_NAME
: o nome do serviço de back-end criado no projeto de serviço B.
Adicione back-ends ao serviço de back-end com o comando
gcloud compute backend-services add-backend
.gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --balancing-mode=UTILIZATION \ --instance-group=BACKEND_MIG \ --instance-group-zone=us-west1-a \ --region=us-west1 \ --project=SERVICE_PROJECT_B_ID
Crie o front-end do balanceador de carga e o mapa de URL no projeto de serviço A
Todas as etapas nesta seção precisam ser realizadas no projeto de serviço A.
Console
Iniciar a configuração
No console do Google Cloud, acesse a página Balanceamento de carga.
- Clique em Criar balanceador de carga.
- Em Tipo de balanceador de carga, selecione Balanceador de carga de aplicativo (HTTP/HTTPS) e clique em Próxima.
- Em Voltado ao público ou interno, selecione Voltado ao público (externo) e clique em Próxima.
- Em Implantação global ou de região única, selecione Melhor para cargas de trabalho regionais e clique em Próxima.
- Clique em Configurar.
Preparar o balanceador de carga
- Insira o Nome do balanceador de carga:
cross-ref-l7-xlb-shared-vpc
. - Em Região, selecione us-west1.
Em Rede, selecione lb-network (do Projeto: HOST_PROJECT_ID).
Se você vir um aviso Sub-rede exclusiva de proxy necessária na rede VPC compartilhada, confirme se o administrador do projeto de host criou o
proxy-only-subnet
na regiãous-west1
na rede VPC compartilhadalb-network
. A criação do balanceador de carga será bem-sucedida mesmo que você não tenha permissão para visualizar a sub-rede somente proxy nesta página.Mantenha a página aberta para continuar.
Configure o front-end
Para que o serviço de projetos cruzados faça referência, o front-end precisa usar
a mesma rede (lb-network
) do projeto host da VPC compartilhada
que foi usada para criar o serviço de back-end.
Para HTTP:
- Clique em Configuração de front-end.
- Insira um nome para a regra de encaminhamento:
cross-ref-http-forwarding-rule
. - Defina Protocolo como
HTTP
. Defina o Sub-rede para
lb-frontend-and-backend-subnet
.Não selecione a sub-rede exclusiva de proxy para o front-end, mesmo que seja uma opção na lista.
Selecione aEndereço IP criado em Como reservar o endereço IP do balanceador de carga, chamado cross-ref-ip-address.
Defina a Porta como
80
.Clique em Concluído.
Para HTTPS:
Se você usa o HTTPS entre o cliente e o balanceador de carga, um ou mais recursos de certificado SSL serão necessários para configurar o proxy. Saiba mais sobre como criar recursos de certificado SSL em Certificados SSL. No momento, os certificados gerenciados pelo Google não são compatíveis com balanceadores de carga regionais de aplicativos.
- Clique em Configuração de front-end.
- Insira um nome para a regra de encaminhamento:
cross-ref-https-forwarding-rule
. - No campo Protocolo, selecione
HTTPS (includes HTTP/2)
. Defina o Sub-rede para
lb-frontend-and-backend-subnet
.Não selecione a sub-rede exclusiva de proxy para o front-end, mesmo que seja uma opção na lista.
Selecione o Endereço IP criado em Como reservar o endereço IP do balanceador de carga, chamado cross-ref-ip-address.
Certifique-se de que Porta esteja definida como
443
, para permitir tráfego HTTPS.Clique na lista Certificate.
- Se você já tiver um recurso de certificado SSL autogerenciado que você quer usar como o certificado SSL principal, selecione-o no menu.
- Caso contrário, selecione Criar um novo certificado.
- Digite um Nome para o certificado SSL.
- Nos campos apropriados, faça o upload dos arquivos formatados em PEM:
- Certificado de chave pública
- Cadeia de certificados
- Chave privada
- Clique em Criar.
Para adicionar recursos de certificado além do certificado SSL principal:
- Clique em Adicionar certificado.
- Selecione um certificado na lista Certificados ou clique em Criar um novo certificado e siga as instruções anteriores.
Clique em Concluído.
Configure o back-end
- Clique em Configuração de back-end.
- Clique em Serviços de back-end entre projetos.
- Em ID do projeto, insira o ID do projeto para o projeto de serviço B.
- Em Nome do serviço de back-end, insira o nome do serviço de back-end do
projeto de serviço B que você quer usar. Para este exemplo, digite
cross-ref-backend-service
. - Clique em Adicionar serviço de back-end.
Configurar as regras de roteamento
- Clique em Regras de roteamento. Certifique-se de que cross-ref-backend-service seja o único serviço de back-end para qualquer host e qualquer caminho sem correspondência.
Saiba mais sobre gerenciamento de tráfego em Como configurar o gerenciamento de tráfego.
Revise e finalize a configuração
- Clique em Criar.
Testar o balanceador de carga
Após a criação do balanceador de carga, teste o balanceador usando as etapas descritas em Testar o balanceador de carga.
gcloud
Crie o mapa de URL e defina o serviço padrão como o serviço de back-end criado no projeto de serviço B.
gcloud compute url-maps create URL_MAP_NAME \ --default-service=projects/SERVICE_PROJECT_B_ID/regions/us-west1/backendServices/BACKEND_SERVICE_NAME \ --region=us-west1 \ --project=SERVICE_PROJECT_A_ID
Substitua:
URL_MAP_NAME
: o nome do mapa de URL.BACKEND_SERVICE_NAME
: o nome do serviço de back-end criado no projeto de serviço B.SERVICE_PROJECT_B_ID
: o ID do projeto de serviço B, em que os back-ends do balanceador de carga e o serviço de back-end são criados.SERVICE_PROJECT_A_ID
: o ID do projeto de serviço A em que o front-end do balanceador de carga está sendo criado.
A criação de mapas de URL falhará se você não tiver a permissão
compute.backendServices.use
para o serviço de back-end no projeto de serviço B.Crie o proxy de destino.
Para HTTP:
gcloud compute target-http-proxies create HTTP_TARGET_PROXY_NAME \ --url-map=URL_MAP_NAME \ --url-map-region=us-west1 \ --region=us-west1 \ --project=SERVICE_PROJECT_A_ID
Substitua:
HTTP_TARGET_PROXY_NAME
: o nome do proxy HTTP de destino.
Para HTTPS:
Crie um certificado SSL regional usando o comando
gcloud compute ssl-certificates create
.gcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \ --certificate=PATH_TO_CERTIFICATE \ --private-key=PATH_TO_PRIVATE_KEY \ --region=us-west1 \ --project=SERVICE_PROJECT_A_ID
Substitua:
SSL_CERTIFICATE_NAME
: o nome do recurso de certificado SSL.PATH_TO_CERTIFICATE
: o caminho para o arquivo de certificado SSL local no formato PEM.PATH_TO_PRIVATE_KEY
: o caminho para a chave privada do certificado SSL local no formato PEM.
Use o certificado SSL regional para criar um proxy de destino com o comando
gcloud compute target-https-proxies create
.gcloud compute target-https-proxies create HTTPS_TARGET_PROXY_NAME \ --url-map=URL_MAP_NAME \ --region=us-west1 \ --ssl-certificates=SSL_CERTIFICATE_NAME \ --project=SERVICE_PROJECT_A_ID
Substitua:
HTTPS_TARGET_PROXY_NAME
: um nome para o proxy HTTPS de destino.
Crie a regra de encaminhamento. Para que o serviço de projetos cruzados faça referência, a regra de encaminhamento precisa usar a mesma rede (
lb-network
) do projeto host da VPC compartilhada que foi usada para criar o serviço de back-end.Para HTTP:
gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --address=IP_ADDRESS_CROSS_REF \ --ports=80 \ --region=us-west1 \ --target-http-proxy=HTTP_TARGET_PROXY_NAME \ --target-http-proxy-region=us-west1 \ --network-tier=STANDARD \ --project=SERVICE_PROJECT_A_ID
Substitua:
HTTP_FORWARDING_RULE_NAME
: o nome da regra de encaminhamento usada para processar o tráfego HTTP.
Para HTTPS:
gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --address=IP_ADDRESS_CROSS_REF \ --ports=443 \ --region=us-west1 \ --target-https-proxy=HTTPS_TARGET_PROXY_NAME \ --target-https-proxy-region=us-west1 \ --network-tier=STANDARD \ --project=SERVICE_PROJECT_A_ID
Substitua:
HTTPS_FORWARDING_RULE_NAME
: o nome da regra de encaminhamento usada para processar o tráfego HTTPS.
Para testar o balanceador de carga, use as etapas descritas em Testar o balanceador de carga.
Conceder permissões ao administrador do balanceador de carga para usar o serviço de back-end
Se você quiser que os balanceadores de carga façam referência a serviços de back-end em outros projetos
de serviço, o administrador do balanceador de carga precisará ter a permissão
compute.backendServices.use
. Para conceder essa permissão, use o papel predefinido do IAM chamado Usuário de serviços do balanceador de carga do Compute (roles/compute.loadBalancerServiceUser
). Esse papel precisa ser concedido pelo Administrador do projeto de serviço e pode ser aplicado no nível do projeto ou no nível do serviço de back-end individual.
Esta etapa não será necessária se você já tiver concedido as permissões necessárias no nível do serviço de back-end ao criá-lo. Você pode pular esta seção ou continuar a ler para saber como conceder acesso a todos os serviços de back-end neste projeto para que não precise conceder acesso sempre que criar um novo back-end serviço.
Neste exemplo, um administrador de projeto de serviço do projeto B precisa executar um dos
comandos a seguir para conceder a permissão compute.backendServices.use
a um
administrador do balanceador de carga do projeto de serviço A. Isso pode ser feito no
nível do projeto (para todos os serviços de back-end no projeto) ou por serviço de back-end.
Console
Permissões de nível de projeto
Use as etapas a seguir para conceder permissões a todos os serviços de back-end no projeto.
Você precisa das permissões compute.regionBackendServices.setIamPolicy
e resourcemanager.projects.setIamPolicy
para
concluir esta etapa.
No console do Google Cloud, acesse a página Serviços de balanceamento de carga compartilhados.
Na seção Todas as permissões de serviço de back-end (permissões no nível do projeto), selecione seu projeto.
Se o painel de permissões não estiver visível, clique em Mostrar painel de permissões. O painel Permissões no nível do projeto é aberto à direita.
Clique em
adicionar conta principal.Em Novos principais, insira o endereço de e-mail do principal ou outro identificador.
Em Papel, selecione o papel Usuário de serviços do balanceador de carga do Compute na lista suspensa.
Opcional: adicione uma condição ao papel.
Clique em Save.
Permissões no nível do recurso para serviços de back-end individuais
Use as etapas a seguir para conceder permissões a serviços de back-end individuais no projeto.
A permissão compute.regionBackendServices.setIamPolicy
é necessária para concluir esta etapa.
gcloud
Permissões de nível de projeto
Use as etapas a seguir para conceder permissões a todos os serviços de back-end no projeto.
Você precisa das permissões compute.regionBackendServices.setIamPolicy
e resourcemanager.projects.setIamPolicy
para
concluir esta etapa.
gcloud projects add-iam-policy-binding SERVICE_PROJECT_B_ID \ --member="user:LOAD_BALANCER_ADMIN" \ --role="roles/compute.loadBalancerServiceUser"
Permissões no nível do recurso para serviços de back-end individuais
No nível de serviço de back-end, os administradores do projeto de serviço podem usar um dos comandos a seguir para conceder o papel de usuário de serviços do balanceador de carga do Compute (roles/compute.loadBalancerServiceUser
).
A permissão compute.regionBackendServices.setIamPolicy
é necessária para concluir esta etapa.
gcloud projects add-iam-policy-binding SERVICE_PROJECT_B_ID \ --member="user:LOAD_BALANCER_ADMIN" \ --role="roles/compute.loadBalancerServiceUser" \ --condition='expression=resource.name=="projects/SERVICE_PROJECT_B_ID/regions/us-west1/backend-services/BACKEND_SERVICE_NAME",title=Shared VPC condition'
ou
gcloud compute backend-services add-iam-policy-binding BACKEND_SERVICE_NAME \ --member="user:LOAD_BALANCER_ADMIN" \ --role="roles/compute.loadBalancerServiceUser" \ --project=SERVICE_PROJECT_B_ID \ --region=us-west1
Para usar esses comandos, substitua LOAD_BALANCER_ADMIN
pelo
principal do usuário, por
exemplo, test-user@gmail.com
.
Também é possível configurar permissões do IAM para que elas se apliquem apenas a um subconjunto de serviços de back-end regionais usando condições e especificando atributos de condição.
A seguir
- É possível restringir como os recursos da VPC compartilhada, como a referência de serviço entre projetos, são usados no seu projeto usando restrições de política da organização. Para mais informações, consulte Restrições da política da organização para o Cloud Load Balancing.
- Para gerenciar o recurso de sub-rede somente proxy exigido por balanceadores de carga de aplicativo externos regionais, consulte Sub-rede somente proxy para balanceadores de carga de aplicativo externos regionais.
- Para saber como resolver problemas com um balanceador de carga de aplicativo externo regional, consulte esta página.
- Limpe a configuração do balanceador de carga.