Neste documento, mostramos dois exemplos de como configurar o balanceador de carga de aplicativo interno 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 balanceadores de carga de aplicativo internos. 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 interno.
Antes de começar
- Leia Visão geral da VPC compartilhada.
- Leia a Visão geral do balanceador de carga de aplicativo interno, 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.
fw-allow-ssh
: uma regra de entrada, aplicável às instâncias cuja carga está sendo balanceada, que permite a conectividade SSH de entrada na porta TCP22
proveniente de qualquer endereço. Você pode escolher um intervalo de IP de origem mais restritivo para esta regra. Por exemplo, é possível especificar apenas os intervalos de IP do sistema do qual você inicia sessões SSH. Este exemplo usa a tag de destinoallow-ssh
para identificar as máquinas virtuais (VMs) às quais a regra de firewall se aplica.
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.
- Clique em Criar regra de firewall para criar a regra que permite as verificações de integridade do Google Cloud:
- Name:
fw-allow-ssh
- Rede:
lb-network
- Direção do tráfego: entrada
- Ação na correspondência: permitir
- Destinos: tags de destino especificadas
- Tags de meta:
allow-ssh
- Filtro de origem: intervalos IPv4
- Intervalos IPv4 de origem:
0.0.0.0/0
- Protocolos e portas:
- Escolha Protocolos e portas especificados.
- Marque TCP e insira
22
como o número da 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
Crie a regra de firewall
fw-allow-ssh
que permita a conectividade SSH para VMs com a tag de redeallow-ssh
. Se você omitirsource-ranges
, o Google Cloud interpretará que a regra autoriza a conexão proveniente de qualquer origem.gcloud compute firewall-rules create fw-allow-ssh \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22
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.
Crie uma regra de firewall que permita a conectividade SSH com VMs com a tag de rede
allow-ssh
.
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
Neste exemplo, criamos um balanceador de carga de aplicativo interno em que todos os componentes do balanceamento de carga (regra de encaminhamento, proxy de destino, mapa de URL e serviço de back-end) e 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 um balanceador de carga de aplicativo interno.
No exemplo desta página, definimos explicitamente um endereço IP interno reservado para a regra de encaminhamento do balanceador de carga de aplicativo interno, em vez de deixar um endereço IP interno temporário ser alocado. Como prática recomendada, reserve endereços IP para regras de encaminhamento.
Criar o back-end do grupo de instâncias gerenciadas
Nesta seção, você verá como criar um modelo e um grupo de instâncias gerenciadas. O grupo gerenciado de instâncias fornece instâncias de VM que executam os servidores de back-end de um exemplo de balanceador de carga de aplicativo interno. Para esses servidores de back-end, é feito o balanceamento de carga do tráfego dos clientes. Para fins de demonstração, os back-ends veiculam nomes de host próprios.
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-ilb-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:
allow-ssh
,load-balanced-backend
. - Na seção 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-ilb-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-ilb-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
.
Se preferir, na seção Escalonamento automático da IU, configure o grupo de instâncias para adicionar ou remover instâncias automaticamente com base no uso de 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-ilb-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=allow-ssh,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-ilb-backend-example \ --zone=us-west1-a \ --size=2 \ --template=l7-ilb-backend-template \ --project=SERVICE_PROJECT_ID
Terraform
Crie um modelo de instância de VM.
criar um grupo gerenciado de instâncias.
Para HTTP:
Para HTTPS:
Configurar o balanceador de carga
Nesta seção, mostramos como criar os recursos do balanceador de carga de aplicativo interno:
- 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 interno. 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 Interno e clique em Próxima.
- Em Implantação entre regiões ou 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-ilb-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 janela aberta para continuar.
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-ilb-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-ilb-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-ilb-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-ilb-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.
Configurar o front-end
Para HTTP:
- Clique em Configuração de front-end.
- Defina o Nome como
l7-ilb-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. - Defina a Porta como
80
. - Clique no menu Endereço IP e em Criar endereço IP.
- No painel Reservar um endereço IP interno estático, forneça
os seguintes detalhes:
- Em Nome, insira
ip-address-shared-vpc
. - Em Endereço IP estático, selecione Let me choose. Em Endereço IP personalizado, insira
10.1.2.99
. - (Opcional) Se você quiser compartilhar esse endereço IP com front-ends diferentes, defina Objetivo como Compartilhado.
- Em Nome, insira
- 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. Atualmente, os certificados gerenciados pelo Google não são compatíveis com balanceadores de carga de aplicativo internos.
- Clique em Configuração de front-end.
- No campo Nome, use
l7-ilb-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. - Certifique-se de que Porta esteja definida como
443
, para permitir tráfego HTTPS. - Clique no menu Endereço IP e em Criar endereço IP.
- No painel Reservar um endereço IP interno estático, forneça
os seguintes detalhes:
- Em Nome, insira
ip-address-shared-vpc
. - Em Endereço IP estático, selecione Let me choose. Em Endereço IP personalizado, insira
10.1.2.99
. - (Opcional) Se você quiser compartilhar esse endereço IP com front-ends diferentes, defina Objetivo como Compartilhado.
- Em Nome, insira
- 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-ilb-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 anteriores.
- Clique em Concluído.
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-ilb-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-ilb-backend-service \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTP \ --health-checks=l7-ilb-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-ilb-backend-service \ --balancing-mode=UTILIZATION \ --instance-group=l7-ilb-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-ilb-map \ --default-service=l7-ilb-backend-service \ --region=us-west1 \ --project=SERVICE_PROJECT_ID
Crie o proxy de destino.
Para HTTP:
Para um balanceador de carga HTTP interno, crie o proxy de destino com o comando
gcloud compute target-http-proxies create
.gcloud compute target-http-proxies create l7-ilb-proxy \ --url-map=l7-ilb-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. Atualmente, os certificados gerenciados pelo Google não são compatíveis com balanceadores de carga de aplicativo internos.
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-ilb-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-ilb-proxy \ --url-map=l7-ilb-map \ --region=us-west1 \ --ssl-certificates=l7-ilb-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-ilb-forwarding-rule \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --address=IP_ADDRESS_NAME \ --ports=80 \ --region=us-west1 \ --target-http-proxy=l7-ilb-proxy \ --target-http-proxy-region=us-west1 \ --project=SERVICE_PROJECT_ID
Para HTTPS:
Use o comando
gcloud compute forwarding-rules create
com as sinalizações corretas.gcloud compute forwarding-rules create l7-ilb-forwarding-rule \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --address=IP_ADDRESS_NAME \ --ports=443 \ --region=us-west1 \ --target-https-proxy=l7-ilb-proxy \ --target-https-proxy-region=us-west1 \ --project=SERVICE_PROJECT_ID
Terraform
Defina a verificação de integridade de HTTP.
Para HTTP:
Para HTTPS:
Defina o serviço de back-end.
Crie o mapa de URL.
Crie o proxy de destino.
Para HTTP:
Para HTTPS: crie um certificado SSL regional
Saiba mais sobre como criar recursos de certificado SSL em Certificados SSL. Atualmente, os certificados gerenciados pelo Google não são compatíveis com balanceadores de carga de aplicativo internos.
Como usar o certificado SSL regional para criar um proxy de destino
Crie a regra de encaminhamento.
Para redes personalizadas, referencie a sub-rede na regra de encaminhamento.
Para HTTP:
Para HTTPS:
Testar o balanceador de carga
Para testar o balanceador de carga, primeiro crie uma VM de cliente de amostra. Em seguida, estabeleça uma sessão SSH com a VM e envie o tráfego dessa VM para o balanceador de carga.
Criar uma instância de VM de teste
Os clientes podem estar localizados no projeto host ou em qualquer projeto de serviço conectado. Neste exemplo, você testará se o balanceador de carga está funcionando ao implantar uma VM cliente em um projeto de serviço. O cliente precisa usar a mesma rede VPC compartilhada e estar na mesma região do balanceador de carga.
Console
No console do Google Cloud, acesse a página Instâncias de VMs.
Clique em Criar instância.
Defina o Nome como
client-vm
.Defina a Zona como us-west1-a.
Clique em Opções avançadas e em Rede.
Insira as seguintes tags de rede:
allow-ssh
,load-balanced-backend
.Na seção 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 Criar.
gcloud
Crie uma instância de VM de teste.
gcloud compute instances create client-vm \ --image-family=debian-10 \ --image-project=debian-cloud \ --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --zone=us-west1-a \ --tags=allow-ssh \ --project=SERVICE_PROJECT_ID
Terraform
Crie uma instância de VM de teste.
Enviar tráfego ao balanceador de carga
Use o SSH para se conectar à instância que você acabou de criar e teste se os serviços HTTP(S) nos back-ends podem ser acessados pelo endereço IP da regra de encaminhamento do balanceador de carga de aplicativo interno e se o tráfego está com balanceamento de carga entre as instâncias de back-end.
Conecte-se à instância do cliente com SSH.
gcloud compute ssh client-vm \ --zone=us-west1-a
Verifique se o endereço IP está exibindo o nome do host. Substitua LB_IP_ADDRESS pelo endereço IP do balanceador de carga.
curl LB_IP_ADDRESS
Para fazer teste em HTTPS, substitua
curl
pelo seguinte:curl -k -s 'https://LB_IP_ADDRESS:443'
A sinalização
-k
faz com que o curl ignore a validação do certificado.
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.
Os balanceadores de carga de aplicativo internos também permitem 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 interno 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 ver instruções, consulte os links a seguir:
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:
allow-ssh
,load-balanced-backend
. - Na seção 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
.
Se preferir, na seção Escalonamento automático da IU, configure o grupo de instâncias para adicionar ou remover instâncias automaticamente com base no uso de 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 interno regional (INTERNAL_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.
- Digite os Números de porta:
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 Salvar.
- Name:
- Clique em Continuar.
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=allow-ssh,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=INTERNAL_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
Terraform
criar um modelo de instância.
criar um grupo gerenciado de instâncias.
Para HTTP
Para HTTPS
Crie uma verificação de integridade para back-end.
Para HTTP
Para HTTPS
Criar um serviço de back-end regional
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 Interno e clique em Próxima.
- Em Implantação entre regiões ou região única, selecione Melhor para cargas de trabalho regionais e clique em Próxima.
- Clique em Configurar.
Configuração básica
- Digite um Nome para o balanceador de carga.
- Em Região, selecione
us-west1
. Em Rede, selecione lb-network (do Projeto: HOST_PROJECT_NAME).
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 janela aberta para continuar.
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, é
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.
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. - Defina a Porta como
80
. - Clique no menu Endereço IP e em Criar endereço IP.
- No painel Reservar um endereço IP interno estático, forneça
os seguintes detalhes:
- Em Nome, insira
cross-ref-ip-address
. - Em Endereço IP estático, selecione Let me choose. Em Endereço IP personalizado, insira
10.1.2.98
. - (Opcional) Se você quiser compartilhar esse endereço IP com front-ends diferentes, defina Objetivo como Compartilhado.
- Em Nome, insira
- 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. Atualmente, os certificados gerenciados pelo Google não são compatíveis com balanceadores de carga de aplicativo internos.
- 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. - Certifique-se de que Porta esteja definida como
443
, para permitir tráfego HTTPS. - Clique no menu Endereço IP e em Criar endereço IP.
- No painel Reservar um endereço IP interno estático, forneça
os seguintes detalhes:
- Em Nome, insira
cross-ref-ip-address
. - Em Endereço IP estático, selecione Let me choose. Em Endereço IP personalizado, insira
10.1.2.98
. - (Opcional) Se você quiser compartilhar esse endereço IP com front-ends diferentes, defina Objetivo como Compartilhado.
- Em Nome, insira
- 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, 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 anteriores.
- Clique em Concluído.
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
Opcional: antes de criar um balanceador de carga com serviços de back-end de referência cruzada, descubra se eles podem ser referenciados usando um mapa de URL:
gcloud compute backend-services list-usable \ --region=us-west1 \ --project=SERVICE_PROJECT_B_ID
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=INTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --address=IP_ADDRESS_CROSS_REF \ --ports=80 \ --region=us-west1 \ --target-http-proxy=HTTP_TARGET_PROXY_NAME \ --target-http-proxy-region=us-west1 \ --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=INTERNAL_MANAGED \ --network=projects/HOST_PROJECT_ID/global/networks/lb-network \ --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-frontend-and-backend-subnet \ --address=IP_ADDRESS_CROSS_REF \ --ports=443 \ --region=us-west1 \ --target-https-proxy=HTTPS_TARGET_PROXY_NAME \ --target-https-proxy-region=us-west1 \ --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.
Terraform
Crie o mapa de URL.
Crie o proxy de destino.
Para HTTP
Para HTTPS
Criar um certificado SSL regional
Como usar o certificado SSL regional para criar um proxy de destino
Crie a regra de encaminhamento.
Para HTTP
Para 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 Salvar.
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.
No console do Google Cloud, acesse a página Serviços de balanceamento de carga compartilhados.
Na seção Permissões do serviço de back-end individual (permissões no nível do recurso), selecione o serviço de back-end a que você quer conceder acesso.
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.
Clique em Salvar.
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.
Para acessar mapas de URL que fazem referência a um determinado serviço de back-end de VPC compartilhada, siga estas etapas:
gcloud
Para conferir os recursos que fazem referência a um serviço de back-end regional de VPC compartilhada, execute o seguinte comando:
gcloud compute backend-services describe BACKEND_SERVICE_NAME \ --region REGION
Substitua:
BACKEND_SERVICE_NAME
: o nome do carregamento serviço de back-end de balanceadorREGION
: a região do balanceador de carga
Na resposta ao comando, revise o campo usedBy
, que mostra o
que fazem referência ao serviço de back-end, como mostrado a seguir:
exemplo:
id: '123456789' kind: compute#backendService loadBalancingScheme: INTERNAL_MANAGED ... usedBy: - reference: https://www.googleapis.com/compute/v1/projects/my-project/region/us-central1/urlMaps/my-url-map
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 pelos balanceadores de carga de aplicativo internos, consulte Sub-rede somente proxy para balanceadores de carga de aplicativo internos.
- Para saber como resolver problemas com um balanceador de carga de aplicativo interno, consulte esta página.
- Limpe a configuração do balanceador de carga.