O Network Load Balancer interno regional é um equilibrador de carga regional da camada 4 baseado em proxy que lhe permite executar e dimensionar o tráfego de serviços TCP atrás de um endereço IP interno acessível apenas a clientes na mesma rede VPC ou a clientes ligados à sua rede VPC.
Este guia contém instruções para configurar um Network Load Balancer de proxy interno regional com um back-end de grupo de pontos finais da rede (NEG) zonal. Antes de começar:
- Leia a vista geral do balanceador de carga de rede de proxy interno regional
- Leia a vista geral dos NEGs zonais
Vista geral
Neste exemplo, vamos usar o balanceador de carga para distribuir o tráfego TCP por VMs de back-end em dois NEGs zonais na região REGION_A
. Para efeitos do exemplo, o serviço é um conjunto de servidores Apache configurados para responder na porta 80
.
Neste exemplo, configura a seguinte implementação:
O balanceador de carga de rede de proxy interno regional é um balanceador de carga regional. Todos os componentes do balanceador de carga (grupos de instâncias de back-end, serviço de back-end, proxy de destino e regra de encaminhamento) têm de estar na mesma região.
Autorizações
Para seguir este guia, tem de conseguir criar instâncias e modificar uma rede num projeto. Tem de ser proprietário ou editor do projeto, ou ter todas as seguintes funções do IAM do Compute Engine:
Tarefa | Função necessária |
---|---|
Crie redes, sub-redes e componentes do balanceador de carga | Administrador da rede |
Adicione e remova regras de firewall | Administrador de segurança |
Crie instâncias | Administrador de instâncias do Compute |
Para mais informações, consulte os seguintes guias:
Configure a rede e as sub-redes
Precisa de uma rede VPC com duas sub-redes: uma para os back-ends do balanceador de carga e outra para os proxies do balanceador de carga. Os balanceadores de carga de rede de proxy interno regionais são regionais. O tráfego na rede VPC é encaminhado para o balanceador de carga se a origem do tráfego estiver numa sub-rede na mesma região que o balanceador de carga.
Este exemplo usa a seguinte rede de VPC, região e sub-redes:
Rede. A rede é uma rede VPC no modo personalizado denominada
lb-network
.Sub-rede para back-ends. Uma sub-rede denominada
backend-subnet
na regiãoREGION_A
usa10.1.2.0/24
para o respetivo intervalo de IP principal.Sub-rede para proxies. Uma sub-rede denominada
proxy-only-subnet
na regiãoREGION_A
usa10.129.0.0/23
para o respetivo intervalo de IP principal.
Crie a rede e a sub-rede para back-ends
Consola
Na Trusted Cloud consola, aceda à página Redes VPC.
Clique em Criar rede de VPC.
No campo Nome, introduza
lb-network
.Na secção Subnets (Sub-redes):
- Defina o Subnet creation mode (Modo de criação de sub-rede) como Custom (Personalizado).
- Na secção Nova sub-rede, introduza as seguintes informações:
- Nome:
backend-subnet
- Região:
REGION_A
- Intervalo de endereços IP:
10.1.2.0/24
- Nome:
- Clique em Concluído.
Clique em Criar.
gcloud
Crie a rede VPC personalizada com o comando
gcloud compute networks create
:gcloud compute networks create lb-network --subnet-mode=custom
Crie uma sub-rede na rede
lb-network
na regiãoREGION_A
com o comandogcloud compute networks subnets create
:gcloud compute networks subnets create backend-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=REGION_A
Crie a sub-rede só de proxy
Uma sub-rede apenas de proxy fornece um conjunto de endereços IP que a Google usa para executar proxies do Envoy em seu nome. Os proxies terminam as ligações do cliente e criam novas ligações aos backends.
Esta sub-rede apenas de proxy é usada por todos os equilibradores de carga baseados no Envoy na REGION_A
regiãolb-network
da rede VPC.
Consola
Se estiver a usar a Trusted Cloud consola, pode aguardar e criar a sub-rede apenas de proxy mais tarde na página Equilíbrio de carga.
Se quiser criar a sub-rede apenas de proxy agora, siga estes passos:
Na Trusted Cloud consola, aceda à página Redes VPC.
Clique no nome da rede VPC partilhada:
lb-network
.Clique em Adicionar sub-rede.
No campo Nome, introduza
proxy-only-subnet
.Para a Região, selecione
REGION_A
.Defina Purpose como Regional Managed Proxy.
Para o intervalo de endereços IP, introduza
10.129.0.0/23
.Clique em Adicionar.
gcloud
Crie a sub-rede só de proxy com o comando gcloud compute networks subnets
create
.
gcloud compute networks subnets create proxy-only-subnet \ --purpose=REGIONAL_MANAGED_PROXY \ --role=ACTIVE \ --region=REGION_A \ --network=lb-network \ --range=10.129.0.0/23
Crie regras de firewall
Neste exemplo, cria as seguintes regras de firewall:
fw-allow-health-check
: uma regra de entrada, aplicável às instâncias com balanceamento de carga, que permite o tráfego do balanceador de carga e dos sistemas de verificação de funcionamento (130.211.0.0/22
e35.191.0.0/16
). Este exemplo usa a etiqueta de destinoallow-health-check
para identificar as VMs de back-end às quais deve ser aplicada. Trusted CloudTrusted Cloudfw-allow-ssh
: Uma regra de entrada que permite a conetividade SSH de entrada na porta TCP 22 a partir de qualquer endereço. Pode escolher um intervalo de IPs de origem mais restritivo para esta regra. Por exemplo, pode especificar apenas os intervalos de IPs dos sistemas a partir dos quais vai iniciar sessões SSH. Este exemplo usa a etiqueta de destinoallow-ssh
para identificar as VMs às quais deve ser aplicada.fw-allow-proxy-only-subnet
: crie uma regra de firewall de permissão de entrada para a sub-rede só de proxy para permitir que o balanceador de carga comunique com as instâncias de back-end na porta TCP80
. Este exemplo usa a etiqueta de destinoallow-proxy-only-subnet
para identificar as VMs de back-end às quais deve aplicar-se.
Consola
Na Trusted Cloud consola, aceda à página Políticas de firewall.
Clique em Criar regra de firewall:
- Introduza um Nome de
fw-allow-health-check
. - Em Rede, selecione
lb-network
. - Em Segmentações, selecione Etiquetas de segmentação especificadas.
- Preencha o campo Etiquetas alvo com
allow-health-check
. - Defina o Filtro de origem como Intervalos IPv4.
- Defina os Intervalos IPv4 de origem como
130.211.0.0/22
e35.191.0.0/16
. - Em Protocolos e portas, selecione Protocolos e portas especificados.
- Selecione a caixa de verificação TCP e introduza
80
para os números das portas. - Clique em Criar.
- Introduza um Nome de
Clique novamente em Criar regra de firewall para criar a regra que permite ligações SSH de entrada:
- Nome:
fw-allow-ssh
- Rede:
lb-network
- Prioridade:
1000
- Direção do tráfego: entrada
- Ação na correspondência: permitir
- Objetivos: etiquetas de objetivo especificadas
- Etiquetas de segmentação:
allow-ssh
- Filtro de origem: intervalos IPv4
- Intervalos IPv4 de origem:
0.0.0.0/0
- Protocolos e portas: escolha Protocolos e portas especificados e, em seguida,
escreva:
tcp:22
- Nome:
Clique em Criar.
Clique novamente em Criar regra de firewall para criar a regra que permite ligações de entrada da sub-rede só de proxy aos Trusted Cloud backends:
- Nome:
fw-allow-proxy-only-subnet
- Rede:
lb-network
- Prioridade:
1000
- Direção do tráfego: entrada
- Ação na correspondência: permitir
- Objetivos: etiquetas de objetivo especificadas
- Etiquetas de segmentação:
allow-proxy-only-subnet
- Filtro de origem: intervalos IPv4
- Intervalos IPv4 de origem:
10.129.0.0/23
- Protocolos e portas: escolha Protocolos e portas especificados e, em seguida,
escreva:
tcp:80
- Nome:
Clique em Criar.
gcloud
Crie a regra
fw-allow-health-check
para permitir que as verificações de funcionamento alcancem as instâncias de back-end numa porta TCP80
: Trusted Cloudgcloud compute firewall-rules create fw-allow-health-check \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-health-check \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --rules=tcp:80
Crie a regra de firewall
fw-allow-ssh
para permitir a conetividade SSH a VMs com a etiqueta de redeallow-ssh
. Quando omitesource-ranges
, Trusted Cloud interpreta a regra como qualquer origem.gcloud compute firewall-rules create fw-allow-ssh \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22
Crie uma regra de firewall de permissão de entrada para a sub-rede só de proxy para permitir que o balanceador de carga comunique com instâncias de back-end na porta TCP
80
:gcloud compute firewall-rules create fw-allow-proxy-only-subnet \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-proxy-only-subnet \ --source-ranges=10.129.0.0/23 \ --rules=tcp:80
Reserve o endereço IP do balanceador de carga
Para reservar um endereço IP interno estático para o seu equilibrador de carga, consulte o artigo Reserve um novo endereço IPv4 ou IPv6 interno estático.
Configure o NEG zonal
Configure um NEG zonal (com pontos finais do tipo GCE_VM_IP_PORT
) na região REGION_A
. Primeiro, crie as VMs. Em seguida, crie um NEG zonal e adicione os pontos finais de rede das VMs ao NEG.
Crie VMs
Consola
Na Trusted Cloud consola, aceda à página Instâncias de VM.
Clique em Criar instância.
Defina o Nome como
vm-a1
.Para a Região, selecione
REGION_A
.Para a zona, consulte
ZONE_A1
.Na secção Disco de arranque, certifique-se de que a opção Debian GNU/Linux 12 (bookworm) está selecionada para as opções do disco de arranque. Clique em Escolher para alterar a imagem, se necessário.
Clique em Opções avançadas.
Clique em Rede e configure os seguintes campos:
- Para Etiquetas de rede, introduza
allow-ssh
,allow-health-check
eallow-proxy-only-subnet
. - Para Interfaces de rede, selecione o seguinte:
- Rede:
lb-network
- Subnet:
backend-subnet
- Rede:
- Para Etiquetas de rede, introduza
Clique em Gestão. Introduza o seguinte script no campo Script de arranque.
#! /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.
Repita os passos seguintes para criar mais 3 VMs, usando as seguintes combinações de nomes e zonas:
- Nome:
vm-a2
, zona:ZONE_A1
- Nome:
vm-c1
, zona:ZONE_A2
- Nome:
vm-c2
, zona:ZONE_A2
- Nome:
gcloud
Crie as VMs executando o seguinte comando duas vezes, usando estas combinações para VM_NAME e ZONE. Os conteúdos do script são idênticos para ambas as VMs.
- VM_NAME:
vm-a1
e ZONE:ZONE_A1
- VM_NAME:
vm-a2
e ZONE:ZONE_A1
- VM_NAME:
vm-c1
e ZONE:ZONE_A2
VM_NAME:
vm-c2
e ZONE:ZONE_A2
gcloud compute instances create VM_NAME \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh,allow-health-check,allow-proxy-only-subnet \ --subnet=backend-subnet \ --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'
Crie os NEGs zonais
Consola
Para criar um grupo de pontos finais de rede zonal:
Na Trusted Cloud consola, aceda à página Grupos de pontos finais de rede.
Clique em Criar grupo de pontos finais de rede.
Em Nome, introduza
zonal-neg-a
.Para o Tipo de grupo de pontos finais da rede, selecione Grupo de pontos finais da rede (zonal).
Para Rede, selecione
lb-network
.Para Sub-rede, selecione
backend-subnet
.Para Zona, selecione
ZONE_A1
.Introduza a Porta predefinida:
80
.Clique em Criar.
Repita todos os passos nesta secção para criar um segundo NEG zonal com as seguintes alterações nas definições:
- Nome:
zonal-neg-c
- Zona:
ZONE_A2
- Nome:
Adicione pontos finais aos NEGs zonais:
Na Trusted Cloud consola, aceda à página Grupos de pontos finais de rede.
Clique no Nome do grupo de pontos finais de rede criado no passo anterior (por exemplo,
zonal-neg-a
). É apresentada a página Detalhes do grupo de pontos finais de rede.Na secção Pontos finais de rede neste grupo, clique em Adicionar ponto final de rede. É apresentada a página Adicionar ponto final de rede.
Selecione uma instância de VM (por exemplo,
vm-a1
). Na secção Interface de rede, é apresentado o nome, a zona e a sub-rede da VM.- Introduza o endereço IP do novo ponto final de rede. Pode clicar em Verificar endereços IP principais e intervalo de IP de alias em nic0 para ver o endereço IP.
- Para Tipo de porta, selecione Predefinição. O ponto final usa a porta predefinida
80
para todos os pontos finais no grupo de pontos finais da rede. Isto é suficiente para o nosso exemplo porque o servidor Apache está a processar pedidos na porta80
. - Clique em Criar.
Clique novamente em Adicionar ponto final de rede. Selecione a segunda instância de VM,
vm-a2
, e repita estes passos para adicionar os respetivos pontos finais azonal-neg-a
.Repita todos os passos nesta secção para adicionar pontos finais de
vm-c1
evm-c2
azonal-neg-c
.
gcloud
Crie um NEG zonal na zona
ZONE_A1
comGCE_VM_IP_PORT
pontos finais.gcloud compute network-endpoint-groups create zonal-neg-a \ --network-endpoint-type=GCE_VM_IP_PORT \ --zone=ZONE_A1 \ --network=lb-network \ --subnet=backend-subnet
Pode especificar o
--default-port
ao criar o NEG ou especificar um número de porta para cada ponto final conforme mostrado no passo seguinte.Adicione pontos finais ao NEG zonal.
gcloud compute network-endpoint-groups update zonal-neg-a \ --zone=ZONE_A1 \ --add-endpoint='instance=vm-a1,port=80' \ --add-endpoint='instance=vm-a2,port=80'
Crie um NEG zonal na zona
ZONE_A2
comGCE_VM_IP_PORT
pontos finais.gcloud compute network-endpoint-groups create zonal-neg-c \ --network-endpoint-type=GCE_VM_IP_PORT \ --zone=ZONE_A2 \ --network=lb-network \ --subnet=backend-subnet
Pode especificar o
--default-port
ao criar o NEG ou especificar um número de porta para cada ponto final conforme mostrado no passo seguinte.Adicione pontos finais ao NEG zonal.
gcloud compute network-endpoint-groups update zonal-neg-c \ --zone=ZONE_A2 \ --add-endpoint='instance=vm-c1,port=80' \ --add-endpoint='instance=vm-c2,port=80'
Configure o balanceador de carga
Consola
Inicie a configuração
Na Trusted Cloud consola, aceda à página Equilíbrio de carga.
- Clique em Criar equilibrador de carga.
- Para Tipo de balanceador de carga, selecione Balanceador de carga de rede (TCP/UDP/SSL) e clique em Seguinte.
- Para Proxy ou passagem, selecione Proxy de balanceamento de carga e clique em Seguinte.
- Para Público ou interno, selecione Interno e clique em Seguinte.
- Para a Implementação em várias regiões ou numa única região, selecione Melhor para cargas de trabalho regionais e clique em Seguinte.
- Clique em Configurar.
Configuração básica
- Em Nome, introduza
my-int-tcp-lb
. - Para Região, selecione
REGION_A
. - Para Rede, selecione
lb-network
.
Reserve uma sub-rede só de proxy
Para reservar uma sub-rede só de proxy:
- Clique em Reservar sub-rede.
- Em Nome, introduza
proxy-only-subnet
. - Para o Intervalo de endereços IP, introduza
10.129.0.0/23
. - Clique em Adicionar.
Configuração do back-end
- Clique em Configuração de back-end.
- Para Tipo de back-end, selecione Grupo de pontos finais da rede zonal.
- Em Protocolo, selecione TCP.
- Na lista Verificação de funcionamento, clique em Criar uma verificação de funcionamento e, de seguida,
introduza as seguintes informações:
- Nome:
tcp-health-check
- Protocolo: TCP
- Porta:
80
- Nome:
- Clique em Criar.
- Configure o primeiro back-end:
- Em Novo back-end, selecione NEG zonal
zonal-neg-a
. - Mantenha os restantes valores predefinidos e clique em Concluído.
- Em Novo back-end, selecione NEG zonal
Configure o segundo back-end:
- Clique em Adicionar back-end.
- Em Novo back-end, selecione o grupo de instâncias
zonal-neg-c
. - Mantenha os restantes valores predefinidos e clique em Concluído.
Na Trusted Cloud consola, verifique se existe uma marca de verificação junto a Configuração de back-end. Caso contrário, verifique novamente se concluiu todos os passos.
Configuração da interface
- Clique em Configuração do front-end.
- Em Nome, introduza
int-tcp-forwarding-rule
. - Para Sub-rede, selecione backend-subnet.
- Para Endereço IP, selecione int-tcp-ip-address.
- Em Número da porta, introduza
9090
. A regra de encaminhamento apenas encaminha pacotes com uma porta de destino correspondente. - Neste exemplo, não ative o protocolo proxy porque não funciona com o software do servidor HTTP Apache. Para mais informações, consulte o artigo Protocolo de proxy.
- Clique em Concluído.
- Na Trusted Cloud consola, verifique se existe uma marca de verificação junto a Configuração do front-end. Caso contrário, verifique novamente se concluiu todos os passos anteriores.
Reveja e finalize
- Clique em Rever e finalizar.
- Verifique as definições.
- Clique em Criar.
gcloud
Crie uma verificação de funcionamento regional para os back-ends.
gcloud compute health-checks create tcp tcp-health-check \ --region=REGION_A \ --use-serving-port
Crie um serviço de back-end.
gcloud compute backend-services create internal-tcp-proxy-bs \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=TCP \ --region=REGION_A \ --health-checks=tcp-health-check \ --health-checks-region=REGION_A
Adicione o NEG zonal na zona
ZONE_A1
ao serviço de back-end.gcloud compute backend-services add-backend internal-tcp-proxy-bs \ --network-endpoint-group=zonal-neg-a \ --network-endpoint-group-zone=ZONE_A1 \ --balancing-mode=CONNECTION \ --max-connections-per-endpoint=50 \ --region=REGION_A
Adicione o NEG zonal na zona
ZONE_A2
ao serviço de back-end.gcloud compute backend-services add-backend internal-tcp-proxy-bs \ --network-endpoint-group=zonal-neg-c \ --network-endpoint-group-zone=ZONE_A2 \ --balancing-mode=CONNECTION \ --max-connections-per-endpoint=50 \ --region=REGION_A
Crie o proxy TCP de destino.
gcloud compute target-tcp-proxies create int-tcp-target-proxy \ --backend-service=internal-tcp-proxy-bs \ --region=REGION_A
Crie a regra de encaminhamento. Para
--ports
, especifique um único número de porta entre 1 e 65535. Este exemplo usa a porta9090
. A regra de encaminhamento apenas encaminha pacotes com uma porta de destino correspondente.gcloud compute forwarding-rules create int-tcp-forwarding-rule \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=backend-subnet \ --address=int-tcp-ip-address \ --ports=9090 \ --region=REGION_A \ --target-tcp-proxy=int-tcp-target-proxy \ --target-tcp-proxy-region=REGION_A
Teste o balanceador de carga
Para testar o balanceador de carga, crie uma VM cliente na mesma região que o balanceador de carga. Em seguida, envie tráfego do cliente para o balanceador de carga.
Crie uma VM de cliente
Crie uma VM cliente (client-vm
) na mesma região que o balanceador de carga.
Consola
Na Trusted Cloud consola, aceda à página Instâncias de VM.
Clique em Criar instância.
Defina Nome como
client-vm
.Defina a zona como
ZONE_A1
.Clique em Opções avançadas.
Clique em Rede e configure os seguintes campos:
- Para etiquetas de rede, introduza
allow-ssh
. - Para Interfaces de rede, selecione o seguinte:
- Rede:
lb-network
- Subnet:
backend-subnet
- Rede:
- Para etiquetas de rede, introduza
Clique em Criar.
gcloud
A VM do cliente tem de estar na mesma rede de VPC e região que o balanceador de carga. Não tem de estar na mesma sub-rede ou zona. O cliente usa a mesma sub-rede que as VMs de back-end.
gcloud compute instances create client-vm \ --zone=ZONE_A1 \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh \ --subnet=backend-subnet
Envie tráfego para o balanceador de carga
Agora que configurou o equilibrador de carga, pode testar o envio de tráfego para o endereço IP do equilibrador de carga.
Use o SSH para estabelecer ligação à instância do cliente.
gcloud compute ssh client-vm \ --zone=ZONE_A1
Verifique se o balanceador de carga está a publicar nomes de anfitriões de back-end conforme esperado.
Use o
compute addresses describe
comando para ver o endereço IP do balanceador de carga:gcloud compute addresses describe int-tcp-ip-address \ --region=REGION_A
Tome nota do endereço IP.
Envie tráfego para o balanceador de carga. Substitua IP_ADDRESS pelo endereço IP do balanceador de carga.
curl IP_ADDRESS:9090
O que se segue?
- Converta o Network Load Balancer de proxy para IPv6
- Vista geral do balanceador de carga de rede de proxy interno regional.
- Para configurar a monitorização do seu Network Load Balancer de proxy interno regional, consulte o artigo Usar a monitorização.
- Limpe a configuração do balanceador de carga.