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 balanceador de carga de rede de proxy interno regional com um back-end de grupo de instâncias gerido (MIG).
Antes de começar, leia a vista geral do balanceador de carga de rede de proxy interno regional.
Vista geral
Neste exemplo, vamos usar o balanceador de carga para distribuir o tráfego TCP por VMs de back-end em dois grupos de instâncias geridos zonais na região REGION_A
. Para efeitos do exemplo, o serviço é um conjunto de servidores Apache configurados para responder na porta 110
.
Muitos navegadores não permitem a porta 110
, pelo que a secção de testes usa curl
.
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 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. 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.
Para demonstrar o acesso
global, este exemplo
também cria uma segunda VM de cliente de teste numa região diferente (REGION_B)
e uma sub-rede com o intervalo de endereços IP principal 10.3.4.0/24
.
Crie a rede e as sub-redes
Consola
Na Google Cloud consola, aceda à página Redes VPC.
Clique em Criar rede de VPC.
Em Nome, introduza
lb-network
.Na secção Sub-redes, defina o Modo de criação de sub-redes como Personalizado.
Crie uma sub-rede para os back-ends do balanceador de carga. 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 Adicionar sub-rede.
Crie uma sub-rede para demonstrar o acesso global. Na secção Nova sub-rede, introduza as seguintes informações:
- Nome:
test-global-access-subnet
- Região:
REGION_B
- Intervalo de endereços IP:
10.3.4.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
Substitua REGION_A pelo nome da região Google Cloud de destino.
Crie uma sub-rede na rede
lb-network
na regiãoREGION_B
com o comandogcloud compute networks subnets create
:gcloud compute networks subnets create test-global-access-subnet \ --network=lb-network \ --range=10.3.4.0/24 \ --region=REGION_B
Substitua REGION_B pelo nome da Google Cloud região onde quer criar a segunda sub-rede para testar o acesso global.
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 Google 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 Google Cloud consola, aceda à página Redes VPC.
Aceda a redes de 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
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
Este exemplo requer as seguintes regras de firewall:
fw-allow-ssh
. Uma regra de entrada, aplicável às instâncias com balanceamento de carga, 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 do sistema a partir do qual inicia sessões SSH. Este exemplo usa a etiqueta de destinoallow-ssh
.fw-allow-health-check
. Uma regra de entrada, aplicável às instâncias com balanceamento de carga, que permite todo o tráfego TCP dos sistemas de verificação de funcionamento (em130.211.0.0/22
e35.191.0.0/16
). Este exemplo usa a etiqueta de destinoallow-health-check
. Google Cloudfw-allow-proxy-only-subnet
. Uma regra de entrada que permite que as ligações da sub-rede só de proxy alcancem os back-ends.
Sem estas regras de firewall, a regra de negação predefinida de entrada bloqueia o tráfego de entrada para as instâncias de back-end.
As etiquetas de destino definem as instâncias de back-end. Sem as etiquetas de destino, as regras da firewall aplicam-se a todas as instâncias de back-end na rede VPC. Quando criar as VMs de back-end, certifique-se de que inclui as etiquetas de destino especificadas, conforme mostrado em Criar um grupo de instâncias gerido.
Consola
- Na Google Cloud consola, aceda à página Políticas de firewall.
Aceder a Políticas de firewall - Clique em Criar regra de firewall para criar a regra que permite ligações SSH
recebidas:
- Nome:
fw-allow-ssh
- Rede:
lb-network
- 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 uma segunda vez para criar a regra que permite
Google Cloud verificações de funcionamento:
- Nome:
fw-allow-health-check
- Rede:
lb-network
- Direção do tráfego: entrada
- Ação na correspondência: Permitir
- 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.
Como prática recomendada, limite esta regra apenas aos protocolos e às portas que correspondem aos usados pela sua verificação de estado. Se usartcp:80
para o protocolo e a porta, Google Cloud pode usar o HTTP na porta80
para contactar as suas VMs, mas não pode usar o HTTPS na porta443
para as contactar.
- Nome:
- Clique em Criar.
- Clique em Criar regra de firewall pela terceira vez para criar a regra que permite que os servidores proxy do balanceador de carga se liguem aos back-ends:
- Nome:
fw-allow-proxy-only-subnet
- Rede:
lb-network
- 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 os números de porta.
- Nome:
- Clique em Criar.
gcloud
Crie a regra de firewall
fw-allow-ssh
para permitir a conetividade SSH a VMs com a etiqueta de redeallow-ssh
. Quando omitesource-ranges
, Google 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 a regra
fw-allow-health-check
para permitir Google Cloud verificações de funcionamento. Este exemplo permite todo o tráfego TCP de sondas de verificação de estado. No entanto, pode configurar um conjunto mais restrito de portas para satisfazer as 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=allow-health-check \ --rules=tcp:80
Crie a regra
fw-allow-proxy-only-subnet
para permitir que os proxies do Envoy da região se liguem aos seus back-ends. Defina--source-ranges
para os intervalos atribuídos da sua sub-rede só de proxy. Neste exemplo,10.129.0.0/23
.gcloud compute firewall-rules create fw-allow-proxy-only-subnet \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=10.129.0.0/23 \ --target-tags=allow-proxy-only-subnet \ --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.
Crie um grupo de instâncias geridas
Esta secção mostra como criar dois backends de grupo de instâncias gerido (MIG) na região REGION_A
para o balanceador de carga. O MIG fornece instâncias de VM
que executam os servidores Apache de back-end para este exemplo de balanceador de carga de rede de proxy interno regional.
Normalmente, um balanceador de carga de rede de proxy interno regional não é usado para tráfego HTTP, mas o software Apache é usado frequentemente para testes.
Consola
Crie um modelo de instância. Na Google Cloud consola, aceda à página Modelos de instâncias.
- Clique em Criar modelo de instância.
- Em Nome, introduza
int-tcp-proxy-backend-template
. - Certifique-se de que o Disco de arranque está definido para uma imagem Debian, como
Debian GNU/Linux 12 (bookworm). Estas instruções usam comandos que só estão disponíveis no Debian, como
apt-get
. - 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.
Crie um grupo de instâncias gerido. Na Google Cloud consola, aceda à página Grupos de instâncias.
- Clique em Criar grupo de instâncias.
- Selecione Novo grupo de instâncias gerido (sem estado). Para mais informações, consulte o artigo Grupos de instâncias geridos sem estado ou com estado.
- Em Nome, introduza
mig-a
. - Em Localização, selecione Zona única.
- Para Região, selecione
REGION_A
. - Para Zona, selecione
ZONE_A1
. - Em Modelo de instância, selecione
int-tcp-proxy-backend-template
. Especifique o número de instâncias que quer criar no grupo.
Para este exemplo, especifique as seguintes opções em Ajuste automático de escala:
- Para o Modo de ajuste automático de escala, selecione
Off:do not autoscale
. - Para Número máximo de instâncias, introduza
2
.
- Para o Modo de ajuste automático de escala, selecione
Para Mapeamento de portas, clique em Adicionar porta.
- Em Nome da portabilidade, introduza
tcp80
. - Em Número da porta, introduza
80
.
- Em Nome da portabilidade, introduza
Clique em Criar.
Repita o passo 2 para criar um segundo grupo de instâncias gerido com as seguintes definições:
- Nome:
mig-c
- Zona:
ZONE_A2
mantenha todas as outras definições inalteradas.
- Nome:
gcloud
As instruções gcloud
neste guia pressupõem que está a usar o Cloud Shell ou outro ambiente com o bash instalado.
Crie um modelo de instância de VM com um servidor HTTP com o comando
gcloud compute instance-templates create
.gcloud compute instance-templates create int-tcp-proxy-backend-template \ --region=REGION_A \ --network=lb-network \ --subnet=backend-subnet \ --tags=allow-ssh,allow-health-check,allow-proxy-only-subnet \ --image-family=debian-12 \ --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'
Crie um grupo de instâncias gerido na zona
ZONE_A1
.gcloud compute instance-groups managed create mig-a \ --zone=ZONE_A1 \ --size=2 \ --template=int-tcp-proxy-backend-template
Substitua ZONE_A1 pelo nome da zona na região Google Cloud de destino.
Crie um grupo de instâncias gerido na zona
ZONE_A2
.gcloud compute instance-groups managed create mig-c \ --zone=ZONE_A2 \ --size=2 \ --template=int-tcp-proxy-backend-template
Substitua ZONE_A2 pelo nome de outra zona na região Google Cloud de destino.
Configure o balanceador de carga
Consola
Inicie a configuração
Na Google 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 instâncias.
- Em Protocolo, selecione TCP.
- Em Porta com nome, introduza
tcp80
. - 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 o grupo de instâncias
mig-a
. - Para Transferir números, introduza
80
. - Mantenha os restantes valores predefinidos e clique em Concluído.
- Em Novo back-end, selecione o grupo de instâncias
- Configure o segundo back-end:
- Clique em Adicionar back-end.
- Em Novo back-end, selecione o grupo de instâncias
mig-c
. - Para Transferir números, introduza
80
. - Mantenha os restantes valores predefinidos e clique em Concluído.
- Na Google 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 o endereço IP reservado anteriormente: LB_IP_ADDRESS
- Em Número da porta, introduza
110
. 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 Google 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.
- Reveja as definições de configuração do equilibrador de carga.
- Opcional: clique em Código equivalente para ver o pedido da API REST que vai ser usado para criar o equilibrador de carga.
- Clique em Criar.
gcloud
Crie uma verificação de funcionamento regional.
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 grupos de instâncias ao seu serviço de back-end.
gcloud compute backend-services add-backend internal-tcp-proxy-bs \ --region=REGION_A \ --instance-group=mig-a \ --instance-group-zone=ZONE_A1 \ --balancing-mode=UTILIZATION \ --max-utilization=0.8
gcloud compute backend-services add-backend internal-tcp-proxy-bs \ --region=REGION_A \ --instance-group=mig-c \ --instance-group-zone=ZONE_A2 \ --balancing-mode=UTILIZATION \ --max-utilization=0.8
Crie um proxy TCP de destino interno.
gcloud compute target-tcp-proxies create int-tcp-target-proxy \ --backend-service=internal-tcp-proxy-bs \ --proxy-header=NONE \ --region=REGION_A
Se quiser ativar o cabeçalho proxy, defina-o como
PROXY_V1
em vez deNONE
. 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.Crie a regra de encaminhamento. Para
--ports
, especifique um único número de porta entre 1 e 65535. Este exemplo usa a porta110
. 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 \ --region=REGION_A \ --target-tcp-proxy=int-tcp-target-proxy \ --target-tcp-proxy-region=REGION_A \ --address=int-tcp-ip-address \ --ports=110
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 Google 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:110
Opções de configuração adicionais
Esta secção expande o exemplo de configuração para oferecer opções de configuração alternativas e adicionais. Todas as tarefas são opcionais. Pode realizá-las por qualquer ordem.
Ative o acesso global
Pode ativar o acesso global para o equilibrador de carga para o tornar acessível a clientes em todas as regiões. Os back-ends do seu balanceador de carga de exemplo têm de estar localizados numa região (REGION_A
).
Não pode modificar uma regra de encaminhamento regional existente para ativar o acesso global. Tem de criar uma nova regra de encaminhamento para este fim. Além disso, depois de criar uma regra de encaminhamento com o acesso global ativado, não é possível modificá-la. Para desativar o acesso global, tem de criar uma nova regra de encaminhamento de acesso regional e eliminar a regra de encaminhamento de acesso global anterior.
Para configurar o acesso global, faça as seguintes alterações de configuração.
Consola
Crie uma nova regra de encaminhamento para o balanceador de carga:
Na Google Cloud consola, aceda à página Equilíbrio de carga.
Na coluna Nome, clique no equilibrador de carga.
Clique em Configuração do front-end.
Clique em Adicionar IP e porta do front-end.
Introduza o nome e os detalhes da sub-rede para a nova regra de encaminhamento.
Para Sub-rede, selecione backend-subnet.
Para o Endereço IP, pode selecionar o mesmo endereço IP que uma regra de encaminhamento existente, reservar um novo endereço IP ou usar um endereço IP efémero. A partilha do mesmo endereço IP em várias regras de encaminhamento só é possível se definir a flag
--purpose
do endereço IP comoSHARED_LOADBALANCER_VIP
ao criar o endereço IP.Em Número da porta, introduza
110
.Para Acesso global, selecione Ativar.
Clique em Concluído.
Clique em Atualizar.
gcloud
Crie uma nova regra de encaminhamento para o balanceador de carga com a flag
--allow-global-access
.gcloud compute forwarding-rules create int-tcp-forwarding-rule-global-access \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=backend-subnet \ --region=REGION_A \ --target-tcp-proxy=int-tcp-target-proxy \ --target-tcp-proxy-region=REGION_A \ --address=int-tcp-ip-address \ --ports=110 \ --allow-global-access
Pode usar o comando
gcloud compute forwarding-rules describe
para determinar se uma regra de encaminhamento tem o acesso global ativado. Por exemplo:gcloud compute forwarding-rules describe int-tcp-forwarding-rule-global-access \ --region=REGION_A \ --format="get(name,region,allowGlobalAccess)"
Quando o acesso global está ativado, a palavra
True
aparece no resultado após o nome e a região da regra de encaminhamento.
Crie uma VM cliente para testar o acesso global
Consola
Na Google Cloud consola, aceda à página Instâncias de VM.
Clique em Criar instância.
Defina Nome como
test-global-access-vm
.Defina a zona como
ZONE_B1
.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:
test-global-access-subnet
- Rede:
- Para etiquetas de rede, introduza
Clique em Criar.
gcloud
Crie uma VM de cliente na zona ZONE_B1
.
gcloud compute instances create test-global-access-vm \ --zone=ZONE_B1 \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh \ --subnet=test-global-access-subnet
Substitua ZONE_B1 pelo nome da zona na região REGION_B.
Estabeleça ligação à VM do cliente e teste a conetividade
Use
ssh
para estabelecer ligação à instância do cliente:gcloud compute ssh test-global-access-vm \ --zone=ZONE_B1
Use o comando
gcloud compute addresses describe
para obter o endereço IP do equilibrador 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:110
Protocolo PROXY para reter informações de ligação do cliente
O Network Load Balancer de proxy termina as ligações TCP do cliente e cria novas ligações às instâncias. Por predefinição, as informações de porta e IP do cliente original não são preservadas.
Para preservar e enviar as informações de ligação originais para as suas instâncias, ative o protocolo PROXY versão 1. Este protocolo envia um cabeçalho adicional que contém o endereço IP de origem, o endereço IP de destino e os números das portas para a instância como parte do pedido.
Certifique-se de que as instâncias de back-end do balanceador de carga de rede do proxy estão a executar servidores que suportam cabeçalhos do protocolo PROXY. Se os servidores não estiverem configurados para suportar cabeçalhos do protocolo PROXY, as instâncias de back-end devolvem respostas vazias.
Se definir o protocolo PROXY para o tráfego de utilizadores, também o pode definir para as verificações de funcionamento. Se estiver a verificar o estado de funcionamento e a publicar conteúdo na mesma porta, defina o --proxy-header
da verificação de funcionamento de modo a corresponder à definição do balanceador de carga.
Normalmente, o cabeçalho do protocolo PROXY é uma única linha de texto legível pelo utilizador no seguinte formato:
PROXY TCP4 <client IP> <load balancing IP> <source port> <dest port>\r\n
O exemplo seguinte mostra um protocolo PROXY:
PROXY TCP4 192.0.2.1 198.51.100.1 15221 110\r\n
No exemplo anterior, o IP do cliente é 192.0.2.1
, o IP de equilíbrio de carga é 198.51.100.1
, a porta do cliente é 15221
e a porta de destino é 110
.
Quando o IP do cliente não é conhecido, o balanceador de carga gera um cabeçalho do protocolo PROXY no seguinte formato:
PROXY UNKNOWN\r\n
Atualize o cabeçalho do protocolo PROXY para o proxy de destino
Não pode atualizar o cabeçalho do protocolo PROXY no proxy de destino existente. Tem de criar um novo proxy de destino com a definição necessária para o cabeçalho do protocolo PROXY. Siga estes passos para criar um novo front-end com as definições necessárias:
Consola
Na Google Cloud consola, aceda à página Equilíbrio de carga.
- Clique no nome do equilibrador de carga que quer editar.
- Clique em Editar para o equilibrador de carga.
- Clique em Configuração do front-end.
- Elimine o IP e a porta do front-end antigos.
- Clique em Adicionar IP e porta do front-end.
- Em Nome, introduza
int-tcp-forwarding-rule
. - Para Sub-rede, selecione backend-subnet.
- Para Endereço IP, selecione o endereço IP reservado anteriormente: LB_IP_ADDRESS
- Em Número da porta, introduza
110
. A regra de encaminhamento apenas encaminha pacotes com uma porta de destino correspondente. - Altere o valor do campo Protocolo proxy para Ativado.
- Clique em Concluído.
- Em Nome, introduza
- Clique em Atualizar para guardar as alterações.
gcloud
No comando seguinte, edite o campo
--proxy-header
e defina-o comoNONE
ouPROXY_V1
, consoante o seu requisito.gcloud compute target-tcp-proxies create TARGET_PROXY_NAME \ --backend-service=BACKEND_SERVICE \ --proxy-header=[NONE | PROXY_V1] \ --region=REGION
Elimine a regra de encaminhamento existente.
gcloud compute forwarding-rules delete int-tcp-forwarding-rule \ --region=REGION
Crie uma nova regra de encaminhamento e associe-a ao proxy de destino.
gcloud compute forwarding-rules create int-tcp-forwarding-rule \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=lb-network \ --subnet=backend-subnet \ --region=REGION \ --target-tcp-proxy=TARGET_PROXY_NAME \ --target-tcp-proxy-region=REGION \ --address=LB_IP_ADDRESS \ --ports=110
Ative a afinidade de sessão
A configuração de exemplo cria um serviço de back-end sem afinidade de sessão.
Estes procedimentos mostram como atualizar um serviço de back-end para o exemplo do Network Load Balancer do proxy interno regional, de modo que o serviço de back-end use a afinidade de IP do cliente ou a afinidade de cookies gerados.
Quando a afinidade de IP do cliente está ativada, o balanceador de carga direciona os pedidos de um cliente específico para a mesma VM de back-end com base num hash criado a partir do endereço IP do cliente e do endereço IP do balanceador de carga (o endereço IP interno de uma regra de encaminhamento interno).
Consola
Para ativar a afinidade de sessão de IP do cliente:
- Na Google Cloud consola, aceda à página Equilíbrio de carga.
Aceda a Balanceamento de carga - Clique em Back-ends.
- Clique em internal-tcp-proxy-bs (o nome do serviço de back-end que criou para este exemplo) e clique em Editar.
- Na página Detalhes do serviço de back-end, clique em Configuração avançada.
- Em Afinidade de sessão, selecione IP do cliente no menu.
- Clique em Atualizar.
gcloud
Use o seguinte comando da CLI Google Cloud para atualizar o serviço de back-end, especificando a afinidade da sessão do IP do cliente:internal-tcp-proxy-bs
gcloud compute backend-services update internal-tcp-proxy-bs \ --region=REGION_A \ --session-affinity=CLIENT_IP
Ative a drenagem de ligações
Pode ativar a drenagem de ligações nos serviços de back-end para garantir uma interrupção mínima para os seus utilizadores quando uma instância que está a servir tráfego é terminada, removida manualmente ou removida por um escalador automático. Para saber mais sobre a drenagem de ligações, leia a documentação Ativar a drenagem de ligações.
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
- Usar a monitorização
- Limpe a configuração do equilibrador de carga