Um balanceador de carga de rede de proxy externo regional é um balanceador de carga regional de camada 4 baseado em proxy que lhe permite executar e dimensionar o tráfego de serviço TCP numa única região por detrás de um endereço IP regional externo. Estes balanceadores de carga distribuem o tráfego TCP externo da Internet para back-ends na mesma região.
Este guia contém instruções para configurar um balanceador de carga de rede de proxy externo regional com um back-end de grupo de pontos finais de rede (NEG) zonal.
Antes de começar, reveja os seguintes documentos:
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 A. Para efeitos do exemplo, o serviço é um conjunto de servidores Apache configurados para responder na porta 80
.
Neste exemplo, configura a implementação apresentada no diagrama seguinte.
Este é um balanceador de carga regional. Todos os componentes do balanceador de carga (grupo 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 funções do IAM do Compute Engine seguintes.
Tarefa | Função necessária |
---|---|
Crie redes, sub-redes e componentes do balanceador de carga | Administrador de rede de Calcular
(roles/compute.networkAdmin ) |
Adicione e remova regras de firewall | Administrador de segurança da computação
(roles/compute.securityAdmin ) |
Crie instâncias | Administrador de instância de computação
(roles/compute.instanceAdmin ) |
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 equilibrador de carga e outra para os proxies do equilibrador de carga. Este é um balanceador de carga regional. O tráfego na rede da 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: uma rede VPC no modo personalizado denominada
lb-network
Sub-rede para back-ends: uma sub-rede denominada
backend-subnet
na região A que usa10.1.2.0/24
para o respetivo intervalo de endereços IP principalSub-rede para proxies: uma sub-rede denominada
proxy-only-subnet
na região A que usa10.129.0.0/23
para o respetivo intervalo de endereços IP principal
Crie a rede e a sub-rede para back-ends
Consola
Na Cloud de Confiance consola, aceda à página Redes VPC.
Clique em Criar rede de VPC.
Em Nome, introduza
lb-network
.Na secção Sub-redes, faça o seguinte:
- 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
Para criar a rede VPC personalizada, use o comando
gcloud compute networks create
:gcloud compute networks create lb-network --subnet-mode=custom
Para criar uma sub-rede na rede
lb-network
na regiãoREGION_A
, use 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 região A da rede VPC lb-network
.
Consola
Se estiver a usar a Cloud de Confiance 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 Cloud de Confiance consola, aceda à página Redes VPC.
Clique no nome da rede VPC partilhada:
lb-network
.Clique em Adicionar sub-rede.
Em Nome, introduza
proxy-only-subnet
.Para 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
Para criar a sub-rede só de proxy, use 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. Cloud de ConfianceCloud de Confiancefw-allow-ssh
. Uma regra de entrada que permite a conetividade SSH de entrada na porta TCP22
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 inicia 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
. Uma regra de firewall deallow
entrada para a sub-rede só de proxy que permite que o balanceador de carga comunique com as instâncias de back-end na porta TCP80
. Este exemplo usa a etiqueta targetallow-proxy-only-subnet
para identificar as VMs de back-end às quais deve aplicar-se.
Consola
Na Cloud de Confiance consola, aceda à página Políticas de firewall.
Clique em Criar regra de firewall e, de seguida, preencha os seguintes campos:
- Nome:
fw-allow-health-check
- Rede:
lb-network
- Objetivos: etiquetas de destino especificadas
- Etiquetas de segmentação:
allow-health-check
- Filtro de origem: intervalos IPv4
- Intervalos de IPv4 de origem:
130.211.0.0/22
e35.191.0.0/16
- Protocolos e portas:
- Escolha Protocolos e portas especificados.
- Selecione a caixa de verificação TCP e, de seguida, introduza
80
para o número da porta.
- Nome:
Clique em Criar.
Clique em Criar regra de firewall uma segunda vez para criar a regra para permitir 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 destino 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.
- Selecione a caixa de verificação TCP e, de seguida, introduza
22
para o número da porta.
- Nome:
Clique em Criar.
Clique em Criar regra de firewall pela terceira vez para criar a regra que permite ligações recebidas da sub-rede só de proxy aos back-ends: Cloud de Confiance
- 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 destino 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.
- Selecione a caixa de verificação TCP e, de seguida, introduza
80
para o número da porta.
- 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 na porta TCP80
: Cloud de Confiancegcloud 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
, Cloud de Confiance 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
Consola
Na Cloud de Confiance consola, aceda à página Reserve um endereço estático.
Escolha um nome para a nova morada.
Para Nível de serviço de rede, selecione Padrão.
Para Versão do IP, selecione IPv4. Os endereços IPv6 não são suportados.
Para Tipo, selecione Regional.
Para Região, selecione
REGION_A
.Deixe a opção Anexado a definida como Nenhum. Depois de criar o balanceador de carga, este endereço IP é anexado à regra de encaminhamento do balanceador de carga.
Clique em Reservar para reservar o endereço IP.
gcloud
Para reservar um endereço IP externo estático, use o comando
gcloud compute addresses create
:gcloud compute addresses create ADDRESS_NAME \ --region=REGION_A \ --network-tier=STANDARD
Substitua
ADDRESS_NAME
pelo nome que quer dar a este endereço.Para ver o resultado, use o comando
gcloud compute addresses describe
:gcloud compute addresses describe ADDRESS_NAME
Configure o NEG zonal
Configure um NEG zonal com pontos finais do tipo GCE_VM_IP_PORT
na região A. Primeiro, crie as VMs e, em seguida,
crie um NEG zonal e adicione os pontos finais de rede das VMs ao NEG.
Crie VMs
Consola
Na Cloud de Confiance consola, aceda à página Instâncias de VM.
Clique em Criar instância.
Defina Nome como
vm-a1
.Para Região, selecione
REGION_A
.Para Zona, selecione
ZONE_A
.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, de seguida, 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 anteriores para criar mais três VMs. Use as seguintes combinações de nomes e zonas:
- Nome:
vm-a2
| Zona:ZONE_A
- Nome:
vm-b1
| Zona:ZONE_B
- Nome:
vm-b2
| Zona:ZONE_B
- Nome:
gcloud
Para criar as VMs, use o comando gcloud compute instances create
duas vezes. Use as seguintes combinações para VM_NAME
e ZONE
. Os conteúdos do script são idênticos para ambas as VMs:
VM_NAME
:vm-a1
eZONE
:ZONE_A
VM_NAME
:vm-a2
eZONE
:ZONE_A
VM_NAME
:vm-b1
eZONE
:ZONE_B
VM_NAME
:vm-b2
eZONE
:ZONE_B
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
Crie um grupo de pontos finais de rede zonal
Na Cloud de Confiance 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_A
.Para Porta predefinida, introduza
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-b
- Zona:
ZONE_B
- Nome:
Adicione pontos finais aos NEGs zonais
Na Cloud de Confiance consola, aceda à página Grupos de pontos finais de rede.
Clique no nome do grupo de pontos finais de rede que criou no passo anterior (por exemplo,
zonal-neg-a
).Na 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.
Selecione uma instância de VM (por exemplo,
vm-a1
).Na secção Interface de rede, são apresentados o nome, a zona e a sub-rede da VM.
- Para Endereço IP, introduza o endereço IP do novo ponto final de rede. Para obter o endereço IP, clique em Verificar endereços IP principais e intervalo de IP alternativo em nic0.
- 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 em Adicionar ponto final de rede. Selecione a segunda instância de VM,
vm-a2
, e repita os passos anteriores para adicionar os respetivos pontos finais azonal-neg-a
.Repita todos os passos nesta secção para adicionar pontos finais de
vm-b1
evm-b2
azonal-neg-b
.
gcloud
Crie um NEG zonal na zona
ZONE_A
comGCE_VM_IP_PORT
pontos finais:gcloud compute network-endpoint-groups create zonal-neg-a \ --network-endpoint-type=GCE_VM_IP_PORT \ --zone=ZONE_A \ --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_A \ --add-endpoint='instance=vm-a1,port=80' \ --add-endpoint='instance=vm-a2,port=80'
Crie um NEG zonal na zona
ZONE_B
comGCE_VM_IP_PORT
pontos finais:gcloud compute network-endpoint-groups create zonal-neg-b \ --network-endpoint-type=GCE_VM_IP_PORT \ --zone=ZONE_B \ --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-b \ --zone=ZONE_B \ --add-endpoint='instance=vm-b1,port=80' \ --add-endpoint='instance=vm-b2,port=80'
Configure o balanceador de carga
Consola
Inicie a configuração
Na Cloud de Confiance 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 Público (externo) e clique em Seguinte.
- Para a Implementação global ou de região única, selecione Melhor para cargas de trabalho regionais e clique em Seguinte.
- Clique em Configurar.
Configuração básica
- Em Nome, introduza
my-ext-tcp-lb
. - Para Região, selecione
REGION_A
. - Para Rede, selecione
lb-network
.
Reserve 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.
Configure os back-ends
- Clique em Configuração de back-end.
- Na lista Tipo de back-end, selecione Grupo de pontos finais de rede zonal.
- Na lista Protocolo, selecione TCP.
- Configure a verificação de estado:
- Na lista Verificação de funcionamento, selecione Criar uma verificação de funcionamento.
- No campo Nome, introduza
tcp-health-check
. - Na lista Protocolo, selecione TCP.
- No campo Porta, introduza
80
. - Clique em Criar.
- Configure o primeiro back-end:
- Para Novo back-end, selecione NEG zonal
zonal-neg-a
. - Mantenha os restantes valores predefinidos e, de seguida, clique em Concluído.
- Para Novo back-end, selecione NEG zonal
- Configure o segundo back-end:
- Clique em Adicionar back-end.
- Para Novo back-end, selecione o grupo de instâncias
zonal-neg-b
. - Mantenha os restantes valores predefinidos e, de seguida, clique em Concluído.
- Mantenha os restantes valores predefinidos e, de seguida, clique em Guardar.
- Na Cloud de Confiance 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.
Configure a interface
- Clique em Configuração do front-end.
- Em Nome, introduza
ext-tcp-forwarding-rule
. - Para Nível de serviço de rede, selecione Padrão.
- Para Endereço IP, selecione
ext-tcp-ip-address
. - Em Número da porta, introduza
9090
. A regra de encaminhamento apenas encaminha pacotes com uma porta de destino correspondente. - Para o protocolo PROXY, selecione Desativado porque o protocolo PROXY não funciona com o software Apache HTTP Server. Para mais informações, consulte o protocolo PROXY.
- Clique em Concluído.
- Na Cloud de Confiance 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 external-tcp-proxy-bs \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=TCP \ --region=REGION_A \ --health-checks=tcp-health-check \ --health-checks-region=REGION_A
Adicione o NEG zonal na zona
ZONE_A
ao serviço de back-end:gcloud compute backend-services add-backend external-tcp-proxy-bs \ --network-endpoint-group=zonal-neg-a \ --network-endpoint-group-zone=ZONE_A \ --balancing-mode=CONNECTION \ --max-connections-per-endpoint=50 \ --region=REGION_A
Adicione o NEG zonal na zona
ZONE_B
ao serviço de back-end:gcloud compute backend-services add-backend external-tcp-proxy-bs \ --network-endpoint-group=zonal-neg-b \ --network-endpoint-group-zone=ZONE_B \ --balancing-mode=CONNECTION \ --max-connections-per-endpoint=50 \ --region=REGION_A
Crie o proxy TCP de destino:
gcloud compute target-tcp-proxies create ext-tcp-target-proxy \ --backend-service=external-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 ext-tcp-forwarding-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network=lb-network \ --network-tier=STANDARD \ --address=ext-tcp-ip-address \ --ports=9090 \ --region=REGION_A \ --target-tcp-proxy=ext-tcp-target-proxy \ --target-tcp-proxy-region=REGION_A
Teste 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.
Obtenha o endereço IP do balanceador de carga.
Para obter o endereço IPv4, execute o seguinte comando:
gcloud compute addresses describe ADDRESS_NAME
Envie tráfego para o balanceador de carga executando o seguinte comando. Substitua
LB_IP_ADDRESS
pela morada IPv4 do seu equilibrador de carga.curl -m1 LB_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 externo.
- Registo e monitorização do balanceador de carga de rede por proxy.
- Adicione um Private Service Connect.
- Limpe a configuração do balanceador de carga.