Esta página fornece instruções para criar balanceadores de carga de rede de encaminhamento interno para equilibrar a carga do tráfego para vários protocolos.
Para configurar um balanceador de carga para vários protocolos, incluindo TCP e UDP, crie uma regra de encaminhamento com o protocolo definido como
L3_DEFAULT. Esta regra de encaminhamento aponta para um serviço de back-end com o protocolo definido como
UNSPECIFIED.
Neste exemplo, usamos um Network Load Balancer de passagem interno para distribuir o tráfego por uma VM de back-end na região us-west1. O balanceador de carga tem uma regra de encaminhamento com o protocolo
L3_DEFAULT para processar 
TCP, UDP, ICMP, ICMPv6, SCTP, ESP, AH e GRE
.
Antes de começar
- Instale a CLI do Google Cloud. Para uma vista geral completa da ferramenta,
consulte a vista geral da CLI gcloud. Pode encontrar comandos relacionados com o equilíbrio de carga nas referências da API e da CLI gcloud.
Se não tiver executado a CLI gcloud anteriormente, execute primeiro o comando gcloud initpara fazer a autenticação.
- Saiba mais sobre o bash.
Autorizações
Para receber as autorizações de que precisa para concluir este guia, peça ao seu administrador para lhe conceder as seguintes funções da IAM no projeto:
- 
             Para criar recursos do balanceador de carga:
              
  
  
    
      Compute   Load Balancer Admin  (roles/compute.loadBalancerAdmin)
- 
             Para criar instâncias e grupos de instâncias do Compute Engine:
              
  
  
    
      Administrador de instâncias de computação  (roles/compute.instanceAdmin.v1)
- 
             Para criar componentes de rede:
              
  
  
    
      Administrador de rede de computação    (roles/compute.networkAdmin)
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Configure o balanceador de carga para o tráfego L3_DEFAULT
Os passos nesta secção descrevem as seguintes configurações:
- Um exemplo que usa uma rede VPC no modo personalizado denominada lb-network. Pode usar uma rede no modo automático se quiser processar apenas tráfego IPv4. No entanto, o tráfego IPv6 requer uma sub-rede no modo personalizado.
- Uma sub-rede de pilha única (stack-typedefinida comoIPv4), que é necessária para o tráfego IPv4. Quando cria uma sub-rede de pilha única numa rede VPC de modo personalizado, escolhe um intervalo de sub-rede IPv4 para a sub-rede. Para o tráfego IPv6, precisamos de uma sub-rede de pilha dupla (stack-typedefinida comoIPV4_IPV6). Quando cria uma sub-rede de pilha dupla numa rede VPC de modo personalizado, escolhe um tipo de acesso IPv6 para a sub-rede. Para este exemplo, definimos o parâmetroipv6-access-typeda sub-rede comoINTERNAL. Isto significa que às novas VMs nesta sub-rede podem ser atribuídos endereços IPv4 internos e endereços IPv6 internos.
- Regras de firewall que permitem ligações recebidas a VMs de back-end.
- O grupo de instâncias de back-end e os componentes do equilibrador de carga usados neste exemplo estão localizados nesta região e sub-rede:
- Região: us-west1
- Sub-rede: lb-subnet, com o intervalo de endereços IPv4 principal10.1.2.0/24. Embora escolha o intervalo de endereços IPv4 configurado na sub-rede, o intervalo de endereços IPv6 é atribuído automaticamente. A Google fornece um bloco CIDR IPv6 de tamanho fixo (/64).
 
- Região: 
- Uma VM de back-end num grupo de instâncias geridas na zona us-west1-a.
- Uma VM cliente para testar as ligações aos back-ends.
- Um balanceador de carga de rede de passagem interno com os seguintes componentes:
- Uma verificação de funcionamento do serviço de back-end.
- Um serviço de back-end na região us-west1com o protocolo definido comoUNSPECIFIEDpara gerir a distribuição de ligações ao grupo de instâncias zonais.
- Uma regra de encaminhamento com o protocolo definido como L3_DEFAULTe a porta definida comoALL.
 
Configure uma rede, uma região e uma sub-rede
Para configurar sub-redes com intervalos de IPv6 internos, ative um intervalo de IPv6 interno ULA da rede da nuvem virtual privada (VPC). Os intervalos de sub-redes IPv6 internas são atribuídos a partir deste intervalo. Para criar a rede e a sub-rede de exemplo, siga estes passos:
Consola
Para suportar o tráfego IPv4 e IPv6, siga estes passos:
- Na Google Cloud consola, aceda à página Redes VPC. 
- Clique em Criar rede de VPC. 
- Em Nome, introduza - lb-network.
- Se quiser configurar intervalos de endereços IPv6 internos em sub-redes nesta rede, conclua estes passos: - Para o intervalo IPv6 interno ULA da rede VPC, selecione Ativado.
- Para Atribuir intervalo IPv6 interno, selecione Automaticamente ou Manualmente.
 
- Para o Modo de criação de sub-rede, selecione Personalizado. 
- Na secção Nova sub-rede, especifique os seguintes parâmetros de configuração de uma sub-rede: - Em Nome, introduza lb-subnet.
- Para Região, selecione us-west1.
- Para criar uma sub-rede de pilha dupla, em Tipo de pilha de IP, selecione IPv4 e IPv6 (pilha dupla).
- Para o intervalo de IPv4, introduza 10.1.2.0/24.
- Para o tipo de acesso IPv6, selecione Interno.
 
- Em Nome, introduza 
- Clique em Concluído. 
- Clique em Criar. 
Para suportar o tráfego IPv4, siga estes passos:
- Na Google Cloud consola, aceda à página Redes VPC. 
- Clique em Criar rede de VPC. 
- Em 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: lb-subnet
- Região: us-west1
- Tipo de pilha de IP: IPv4 (pilha única)
- Intervalo de endereços IP: 10.1.2.0/24
 
- Nome: 
- Clique em Concluído.
 
- Clique em Criar. 
gcloud
Para o tráfego IPv4 e IPv6, use os seguintes comandos:
- Para criar uma nova rede VPC no modo personalizado, execute o comando - gcloud compute networks create.- Para configurar intervalos IPv6 internos em quaisquer sub-redes nesta rede, use a flag - --enable-ula-internal-ipv6. Esta opção atribui um- /48prefixo ULA a partir do intervalo- fd20::/20usado pelo Google Cloud para intervalos de sub-redes IPv6 internos.- gcloud compute networks create lb-network \ --subnet-mode=custom \ --enable-ula-internal-ipv6 
- Na - lb-network, crie uma sub-rede para back-ends na região- us-west1.- Para criar as sub-redes, execute o comando - gcloud compute networks subnets create:- gcloud compute networks subnets create lb-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-west1 \ --stack-type=IPV4_IPV6 --ipv6-access-type=INTERNAL 
Para tráfego apenas IPv4, use os seguintes comandos:
- Para criar a rede VPC personalizada, use o comando - gcloud compute networks create:- gcloud compute networks create lb-network --subnet-mode=custom 
- Para criar a sub-rede para back-ends na região - us-west1na rede- lb-network, use o comando- gcloud compute networks subnets create.- gcloud compute networks subnets create lb-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-west1
API
Para o tráfego IPv4 e IPv6, use os seguintes comandos:
- Crie uma nova rede VPC de modo personalizado. Faça um pedido - POSTao método- networks.insert.- Para configurar intervalos IPv6 internos em quaisquer sub-redes nesta rede, defina - enableUlaInternalIpv6como- true. Esta opção atribui um- /48intervalo do intervalo- fd20::/20usado pela Google para intervalos de sub-redes IPv6 internos.- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks { "autoCreateSubnetworks": false, "name": "lb-network", "mtu": MTU, "enableUlaInternalIpv6": true, }- Substitua o seguinte: - PROJECT_ID: o ID do projeto onde a rede VPC é criada.
- MTU: a unidade de transmissão máxima da rede. A MTU pode ser- 1460(predefinição) ou- 1500. Reveja a vista geral da unidade de transmissão máxima antes de definir a MTU como- 1500.
 
- Faça um pedido - POSTao método- subnetworks.insert.- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks { "ipCidrRange": "10.1.2.0/24", "network": "lb-network", "name": "lb-subnet" "stackType": IPV4_IPV6, "ipv6AccessType": Internal }
Para tráfego apenas IPv4, siga estes passos:
- Faça um pedido - POSTao método- networks.insert. Substitua- PROJECT_IDpelo ID do seu projetoGoogle Cloud .- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks { "name": "lb-network", "autoCreateSubnetworks": false }
- Faça dois pedidos - POSTao método- subnetworks.insert:- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks { "name": "lb-subnet", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "ipCidrRange": "10.1.2.0/24", "privateIpGoogleAccess": false }
Configure regras de firewall
Este exemplo usa as seguintes regras de firewall:
- fw-allow-lb-access: uma regra de entrada, aplicável a todos os destinos na rede VPC, que permite o tráfego de origens nos intervalos- 10.1.2.0/24. Esta regra permite o tráfego de entrada de qualquer cliente localizado na sub-rede.
- fw-allow-lb-access-ipv6: Uma regra de entrada, aplicável a todos os destinos na rede VPC, que permite o tráfego de origens no intervalo IPv6 configurado na sub-rede. Esta regra permite o tráfego IPv6 de entrada de qualquer cliente localizado na sub-rede.
- 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 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 do sistema a partir do qual está a iniciar sessões SSH. Este exemplo usa a etiqueta de destino- allow-sshpara identificar as VMs às quais deve ser aplicada.
- fw-allow-health-check: uma regra de entrada, aplicável às instâncias com balanceamento de carga, que permite o tráfego dos sistemas de verificação de estado (- 130.211.0.0/22e- 35.191.0.0/16). Este exemplo usa a etiqueta de destino- allow-health-checkpara identificar as instâncias às quais deve aplicar-se. Google Cloud
- fw-allow-health-check-ipv6: uma regra de entrada, aplicável às instâncias com balanceamento de carga, que permite o tráfego dos sistemas de verificação de estado (- 2600:2d00:1:b029::/64). Este exemplo usa a etiqueta de destino- allow-health-check-ipv6para identificar as instâncias às quais deve ser aplicada. Google Cloud
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.
Consola
- Na Google Cloud consola, aceda à página Políticas de firewall. 
- Para permitir que o tráfego IPv4 TCP, UDP e ICMP alcance o grupo de instâncias de back-end - ig-a:- Clique em Criar regra de firewall.
- Nome: fw-allow-lb-access
- Rede: lb-network
- Prioridade: 1000
- Sentido do tráfego: entrada
- Ação na correspondência: permitir
- Alvos: todas as instâncias na rede
- Filtro de origem: intervalos de IPv4
- Intervalos IPv4 de origem: 10.1.2.0/24
- Protocolos e portas: selecione Protocolos e portas especificados.
- Selecione TCP e introduza ALL.
- Selecione UDP.
- Selecione Outro e introduza ICMP.
 
- Selecione TCP e introduza 
 
- Clique em Criar. 
- Para permitir ligações SSH recebidas: - Clique em Criar regra de firewall.
- Nome: fw-allow-ssh
- Rede: lb-network
- Prioridade: 1000
- Sentido 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 de IPv4
- Intervalos IPv4 de origem: 0.0.0.0/0
- Protocolos e portas: escolha Protocolos e portas especificados e, de seguida, escreva tcp:22.
 
- Clique em Criar. 
- Para permitir que o tráfego IPv6 TCP, UDP e ICMP alcance o grupo de instâncias de back-end - ig-a:- Clique em Criar regra de firewall.
- Nome: fw-allow-lb-access-ipv6
- Rede: lb-network
- Prioridade: 1000
- Sentido do tráfego: entrada
- Ação na correspondência: permitir
- Alvos: todas as instâncias na rede
- Filtro de origem: intervalos IPv6
- Intervalos IPv6 de origem: IPV6_ADDRESS atribuídos no
lb-subnet
- Protocolos e portas: selecione Protocolos e portas especificados.
- Selecione TCP e introduza 0-65535.
- Selecione UDP.
- Selecione Outro e, para o protocolo ICMPv6, introduza 58.
 
- Selecione TCP e introduza 
 
- Clique em Criar. 
- Para permitir Google Cloud verificações de funcionamento de IPv6: - Clique em Criar regra de firewall.
- Nome: fw-allow-health-check-ipv6
- Rede: lb-network
- Prioridade: 1000
- Sentido do tráfego: entrada
- Ação na correspondência: permitir
- Objetivos: etiquetas de objetivo especificadas
- Etiquetas de segmentação: allow-health-check-ipv6
- Filtro de origem: intervalos IPv6
- Intervalos IPv6 de origem: 2600:2d00:1:b029::/64
- Protocolos e portas: permitir tudo
 
- Clique em Criar. 
- Para permitir Google Cloud verificações de funcionamento de IPv4: - Clique em Criar regra de firewall
- Nome: fw-allow-health-check
- Rede: lb-network
- Prioridade: 1000
- Sentido do tráfego: entrada
- Ação na correspondência: permitir
- Objetivos: etiquetas de objetivo especificadas
- Etiquetas de segmentação: allow-health-check
- Filtro de origem: intervalos de IPv4
- Intervalos de IPv4 de origem: 130.211.0.0/22e35.191.0.0/16
- Protocolos e portas: permitir tudo
 
- Clique em Criar. 
gcloud
- Para permitir que o tráfego TCP IPv4 alcance o grupo de instâncias de back-end - ig-a, crie a seguinte regra:- gcloud compute firewall-rules create fw-allow-lb-access \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=10.1.2.0/24 \ --rules=tcp,udp,icmp
- Crie a regra de firewall - fw-allow-sshpara permitir a conetividade SSH às VMs através da etiqueta de rede- allow-ssh. Quando omite- source-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
- Para permitir que o tráfego IPv6 alcance o grupo de instâncias de back-end - ig-a, crie a seguinte regra:- gcloud compute firewall-rules create fw-allow-lb-access-ipv6 \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=IPV6_ADDRESS \ --rules=all- Substitua - IPV6_ADDRESSpelo endereço IPv6 atribuído no- lb-subnet.
- Crie a regra de firewall - fw-allow-health-checkpara permitir Google Cloud verificações de funcionamento.- gcloud 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,udp,icmp
- Crie a regra - fw-allow-health-check-ipv6para permitir Google Cloud verificações de funcionamento de IPv6.- gcloud compute firewall-rules create fw-allow-health-check-ipv6 \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-health-check-ipv6 \ --source-ranges=2600:2d00:1:b029::/64 \ --rules=tcp,udp,icmp 
API
- Para criar a regra de firewall - fw-allow-lb-access, faça um pedido- POSTao método- firewalls.insert. Substitua- PROJECT_IDpelo ID do seu projetoGoogle Cloud .- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "fw-allow-lb-access", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "priority": 1000, "sourceRanges": [ "10.1.2.0/24" ], "allPorts": true, "allowed": [ { "IPProtocol": "tcp" }, { "IPProtocol": "udp" }, { "IPProtocol": "icmp" } ], "direction": "INGRESS", "logConfig": { "enable": false }, "disabled": false }
- Crie a regra de firewall - fw-allow-lb-access-ipv6fazendo um pedido- POSTao método- firewalls.insert.- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "fw-allow-lb-access-ipv6", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "priority": 1000, "sourceRanges": [ "IPV6_ADDRESS" ], "allPorts": true, "allowed": [ { "IPProtocol": "tcp" }, { "IPProtocol": "udp" }, { "IPProtocol": "58" } ], "direction": "INGRESS", "logConfig": { "enable": false }, "disabled": false }- Substitua IPV6_ADDRESS pelo endereço IPv6 atribuído no - lb-subnet.
- Para criar a regra de firewall - fw-allow-ssh, faça um pedido- POSTao método- firewalls.insert:- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "fw-allow-ssh", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "priority": 1000, "sourceRanges": [ "0.0.0.0/0" ], "targetTags": [ "allow-ssh" ], "allowed": [ { "IPProtocol": "tcp", "ports": [ "22" ] } ], "direction": "INGRESS", "logConfig": { "enable": false }, "disabled": false }
- Para criar a regra de firewall - fw-allow-health-check, faça um pedido- POSTao método- firewalls.insert:- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "fw-allow-health-check", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "priority": 1000, "sourceRanges": [ "130.211.0.0/22", "35.191.0.0/16" ], "targetTags": [ "allow-health-check" ], "allowed": [ { "IPProtocol": "tcp" }, { "IPProtocol": "udp" }, { "IPProtocol": "icmp" } ], "direction": "INGRESS", "logConfig": { "enable": false }, "disabled": false }
- Crie a regra de firewall - fw-allow-health-check-ipv6fazendo um pedido- POSTao método- firewalls.insert.- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "fw-allow-health-check-ipv6", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "priority": 1000, "sourceRanges": [ "2600:2d00:1:b029::/64" ], "targetTags": [ "allow-health-check-ipv6" ], "allowed": [ { "IPProtocol": "tcp" }, { "IPProtocol": "udp" } ], "direction": "INGRESS", "logConfig": { "enable": false }, "disabled": false }
Crie VMs de back-end e grupos de instâncias
Para este cenário de equilíbrio de carga, cria um grupo de instâncias geridas zonais do Compute Engine e instala um servidor Web Apache.
Para processar o tráfego IPv4 e IPv6, configure as VMs de back-end para serem de pilha dupla. Defina o stack-type da VM como IPV4_IPV6. As VMs também herdam a definição ipv6-access-type (neste exemplo, INTERNAL) da sub-rede. Para
mais detalhes sobre os requisitos do IPv6, consulte o artigo Vista geral do balanceador de carga de rede de encaminhamento interno: regras de encaminhamento.
Se quiser usar VMs existentes como back-ends, atualize as VMs para serem de pilha dupla usando o comando gcloud compute instances network-interfaces update.
As instâncias que participam como VMs de back-end para equilibradores de carga de rede de passagem interna têm de estar a executar o ambiente convidado do Linux, ambiente convidado do Windows> ou outros processos adequados que ofereçam uma funcionalidade equivalente.
Para simplificar as instruções, as VMs de back-end executam o Debian GNU/Linux 12.
Crie o grupo de instâncias
Consola
Para suportar o tráfego IPv4 e IPv6, siga estes passos:
- Crie um modelo de instância. Na Google Cloud consola, aceda à página Modelos de instâncias. - Clique em Criar modelo de instância.
- No campo Nome, introduza vm-a1.
- Certifique-se de que o disco de arranque está definido para uma imagem Debian, como o Debian GNU/Linux 12 (bookworm). Estas instruções usam comandos que só estão disponíveis no Debian, como apt-get.
- Expanda a secção Opções avançadas.
- Expanda a secção Gestão e, de seguida, copie o seguinte script para o campo Script de arranque. O script de arranque também configura o servidor Apache para escutar na porta - 8080em vez da porta- 80.- #! /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 sed -ire 's/^Listen 80$/Listen 8080/g' /etc/apache2/ports.conf systemctl restart apache2 
- Expanda a secção Redes e, de seguida, especifique o seguinte: - Para etiquetas de rede, adicione allow-ssheallow-health-check-ipv6.
- Para Interfaces de rede, clique na interface predefinida e
configure os seguintes campos:
- Rede: lb-network
- Subnetwork: lb-subnet
- Tipo de pilha de IP: IPv4 e IPv6 (dupla pilha)
 
- Rede: 
 
- Para etiquetas de rede, adicione 
- Clique em Criar. 
 
Para suportar o tráfego IPv4, siga estes passos:
- Crie um modelo de instância. Na Google Cloud consola, aceda à página Modelos de instâncias. 
- Clique em Criar modelo de instância. - No campo Nome, introduza vm-a1.
- Certifique-se de que o disco de arranque está definido para uma imagem Debian, como o Debian GNU/Linux 12 (bookworm). Estas instruções usam comandos que só estão disponíveis no Debian, como apt-get.
- Expanda a secção Opções avançadas.
- Expanda a secção Gestão e, de seguida, copie o seguinte script para o campo Script de arranque. O script de arranque também configura o servidor Apache para escutar na porta - 8080em vez da porta- 80.- #! /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 sed -ire 's/^Listen 80$/Listen 8080/g' /etc/apache2/ports.conf systemctl restart apache2 
- Expanda a secção Redes e, de seguida, especifique o seguinte: - Para etiquetas de rede, adicione allow-ssheallow-health-check.
- Para Interfaces de rede, clique na interface predefinida e
configure os seguintes campos:
- Rede: lb-network
- Subnetwork: lb-subnet
- Tipo de pilha de IP: IPv4 (pilha única)
 
- Rede: 
 
- Para etiquetas de rede, adicione 
- Clique em Criar. 
 
- No campo Nome, introduza 
- Crie um grupo de instâncias gerido. Aceda à página Grupos de instâncias na Google Cloud consola. - Clique em Criar grupo de instâncias.
- Escolha 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.
- No campo Nome, introduza ig-a.
- Para Localização, selecione Zona única.
- Para a Região, selecione us-west1.
- Para a Zona, selecione us-west1-a.
- Para Modelo de instância, selecione vm-a1.
- 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 
- Clique em Criar. 
 
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.- O script de arranque também configura o servidor Apache para escutar na porta - 8080em vez da porta- 80.- Para processar o tráfego IPv4 e IPv6, use o seguinte comando. - gcloud compute instance-templates create vm-a1 \ --region=us-west1 \ --network=lb-network \ --subnet=lb-subnet \ --ipv6-network-tier=PREMIUM \ --stack-type=IPV4_IPV6 \ --tags=allow-ssh \ --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 sed -ire "s/^Listen 80$/Listen 8080/g" /etc/apache2/ports.conf systemctl restart apache2'- Em alternativa, se quiser processar apenas tráfego IPv4, use o seguinte comando. - gcloud compute instance-templates create vm-a1 \ --region=us-west1 \ --network=lb-network \ --subnet=lb-subnet \ --tags=allow-ssh \ --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 sed -ire "s/^Listen 80$/Listen 8080/g" /etc/apache2/ports.conf systemctl restart apache2'
- Crie um grupo de instâncias gerido na zona com o comando - gcloud compute instance-groups managed create.- gcloud compute instance-groups managed create ig-a \ --zone us-west1-a \ --size 2 \ --template vm-a1
api
Para processar o tráfego IPv4 e IPv6, siga estes passos:
- Crie uma VM fazendo - POSTpedidos ao método- instances.insert:- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "vm-a1", "tags": { "items": [ "allow-health-check-ipv6", "allow-ssh" ] }, "machineType": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/machineTypes/e2-standard-2", "canIpForward": false, "networkInterfaces": [ { "stackType": "IPV4_IPV6", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet", "accessConfigs": [ { "type": "ONE_TO_ONE_NAT", "name": "external-nat", "networkTier": "PREMIUM" } ] } ], "disks": [ { "type": "PERSISTENT", "boot": true, "mode": "READ_WRITE", "autoDelete": true, "deviceName": "vm-a1", "initializeParams": { "sourceImage": "projects/debian-cloud/global/images/DEBIAN_IMAGE_NAME", "diskType": "projects/PROJECT_ID/zones/ZONE/diskTypes/pd-standard", "diskSizeGb": "10" } } ], "metadata": { "items": [ { "key": "startup-script", "value": "#! /bin/bash\napt-get update\napt-get install apache2 -y\na2ensite default-ssl\na2enmod ssl\nvm_hostname="$(curl -H "Metadata-Flavor:Google" \\\nhttp://metadata.google.internal/computeMetadata/v1/instance/name)"\necho "Page served from: $vm_hostname" | \\\ntee /var/www/html/index.html\nsed -ire "s/^Listen 80$/Listen 8080/g" /etc/\\napache2/ports.conf\nsystemctl restart apache2" } ] }, "scheduling": { "preemptible": false }, "deletionProtection": false }
Para processar o tráfego IPv4, siga os passos abaixo.
- Crie uma VM fazendo - POSTpedidos ao método- instances.insert:- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "vm-a1", "tags": { "items": [ "allow-health-check", "allow-ssh" ] }, "machineType": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/machineTypes/e2-standard-2", "canIpForward": false, "networkInterfaces": [ { "stackType": "IPV4", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet", "accessConfigs": [ { "type": "ONE_TO_ONE_NAT", "name": "external-nat", "networkTier": "PREMIUM" } ] } ], "disks": [ { "type": "PERSISTENT", "boot": true, "mode": "READ_WRITE", "autoDelete": true, "deviceName": "vm-a1", "initializeParams": { "sourceImage": "projects/debian-cloud/global/images/DEBIAN_IMAGE_NAME", "diskType": "projects/PROJECT_ID/zones/ZONE/diskTypes/pd-standard", "diskSizeGb": "10" } } ], "metadata": { "items": [ { "key": "startup-script", "value": "#! /bin/bash\napt-get update\napt-get install apache2 -y\na2ensite default-ssl\na2enmod ssl\nvm_hostname="$(curl -H "Metadata-Flavor:Google" \\\nhttp://metadata.google.internal/computeMetadata/v1/instance/name)"\necho "Page served from: $vm_hostname" | \\\ntee /var/www/html/index.html\nsed -ire "s/^Listen 80$/Listen 8080/g" /etc/\\napache2/ports.conf\nsystemctl restart apache2" } ] }, "scheduling": { "preemptible": false }, "deletionProtection": false }
- Crie um grupo de instâncias fazendo um pedido - POSTao método- instanceGroups.insert.- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instanceGroups { "name": "ig-a", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet" }
- Adicione instâncias a cada grupo de instâncias fazendo um pedido - POSTao método- instanceGroups.addInstances.- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instanceGroups/ig-a/addInstances { "instances": [ { "instance": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instances/vm-a1" } ] }
Crie uma VM de cliente
Este exemplo cria uma VM de cliente na mesma região que as VMs de back-end (servidor). O cliente é usado para validar a configuração do equilibrador de carga e demonstrar o comportamento esperado, conforme descrito na secção de testes.
Para tráfego IPv4 e IPv6:
Consola
- Na Google Cloud consola, aceda à página Instâncias de VM. 
- Clique em Criar instância. 
- Defina o Nome como - vm-client-ipv6.
- Defina a Zona como - us-west1-a.
- Expanda a secção Opções avançadas e, de seguida, faça as seguintes alterações: - Expanda Redes e, em seguida, adicione o allow-ssha Etiquetas de rede.
- Em Interfaces de rede, clique em Editar, faça as seguintes alterações e, de seguida, clique em Concluído:
- Rede: lb-network
- Subnet: lb-subnet
- Tipo de pilha de IP: IPv4 e IPv6 (dupla pilha)
- IP interno principal: efémero (automático)
- IP externo: efémero
 
- Rede: 
 
- Expanda Redes e, em seguida, adicione o 
- Clique em Criar. 
gcloud
A VM do cliente pode estar em qualquer zona na mesma região que o balanceador de carga e pode usar qualquer sub-rede nessa região. Neste exemplo, o cliente está na zona us-west1-a e usa a mesma sub-rede que as VMs de back-end.
gcloud compute instances create vm-client-ipv6 \
    --zone=us-west1-a \
    --image-family=debian-12 \
    --image-project=debian-cloud \
    --stack-type=IPV4_IPV6 \
    --tags=allow-ssh \
    --subnet=lb-subnet
api
Faça um pedido POST ao
método instances.insert.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instances
{
 "name": "vm-client-ipv6",
 "tags": {
   "items": [
     "allow-ssh"
   ]
 },
 "machineType": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/machineTypes/e2-standard-2",
 "canIpForward": false,
 "networkInterfaces": [
   {
     "stackType": "IPV4_IPV6",
     "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network",
     "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet",
     "accessConfigs": [
       {
         "type": "ONE_TO_ONE_NAT",
         "name": "external-nat",
         "networkTier": "PREMIUM"
       }
     ]
   }
 ],
 "disks": [
   {
     "type": "PERSISTENT",
     "boot": true,
     "mode": "READ_WRITE",
     "autoDelete": true,
     "deviceName": "vm-client",
     "initializeParams": {
       "sourceImage": "projects/debian-cloud/global/images/debian-image-name",
       "diskType": "projects/PROJECT_ID/zones/us-west1-a/diskTypes/pd-standard",
       "diskSizeGb": "10"
     }
   }
 ],
 "scheduling": {
   "preemptible": false
 },
 "deletionProtection": false
}
Para tráfego IPv4:
Consola
- Na Google Cloud consola, aceda à página Instâncias de VM. 
- Clique em Criar instância. 
- Em Nome, introduza - vm-client.
- Para Zone, introduza - us-west1-a.
- Expanda a secção Opções avançadas. 
- Expanda Redes e, em seguida, configure os seguintes campos: - Para etiquetas de rede, introduza allow-ssh.
- Para Interfaces de rede, selecione o seguinte:
- Rede: lb-network
- Subnet: lb-subnet
 
- Rede: 
 
- Para etiquetas de rede, introduza 
- Clique em Criar. 
gcloud
A VM do cliente pode estar em qualquer zona na mesma região que o balanceador de carga e pode usar qualquer sub-rede nessa região. Neste exemplo, o cliente está na zona us-west1-a e usa a mesma sub-rede que as VMs de back-end.
gcloud compute instances create vm-client \
    --zone=us-west1-a \
    --image-family=debian-12 \
    --image-project=debian-cloud \
    --tags=allow-ssh \
    --subnet=lb-subnet
API
Faça um pedido POST ao
 método instances.insert.
 Substitua PROJECT_ID pelo ID do seu projeto Google Cloud .
 POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instances
 {
    "name": "vm-client",
    "tags": {
      "items": [
        "allow-ssh"
      ]
  },
    "machineType": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/machineTypes/e2-standard-2",
    "canIpForward": false,
    "networkInterfaces": [
      {
        "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network",
        "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet",
        "accessConfigs": [
          {
            "type": "ONE_TO_ONE_NAT",
            "name": "external-nat",
            "networkTier": "PREMIUM"
          }
        ]
      }
    ],
    "disks": [
      {
        "type": "PERSISTENT",
        "boot": true,
        "mode": "READ_WRITE",
        "autoDelete": true,
        "deviceName": "vm-client",
        "initializeParams": {
          "sourceImage": "projects/debian-cloud/global/images/debian-image-name",
          "diskType": "projects/PROJECT_ID/zones/us-west1-a/diskTypes/pd-standard",
          "diskSizeGb": "10"
        }
      }
    ],
    "scheduling": {
      "preemptible": false
     },
    "deletionProtection": false
  }
  Configure os componentes do balanceador de carga
Crie um balanceador de carga para vários protocolos.
gcloud
- Crie uma verificação de funcionamento de HTTP para a porta 80. Esta verificação de funcionamento é usada para validar o estado dos back-ends no grupo de instâncias - ig-a.- gcloud compute health-checks create http hc-http-80 \ --region=us-west1 \ --port=80
- Crie o serviço de back-end com o protocolo definido como - UNSPECIFIED:- gcloud compute backend-services create be-ilb-l3-default \ --load-balancing-scheme=internal \ --protocol=UNSPECIFIED \ --region=us-west1 \ --health-checks=hc-http-80 \ --health-checks-region=us-west1
- Adicione o grupo de instâncias ao serviço de back-end: - gcloud compute backend-services add-backend be-ilb-l3-default \ --region=us-west1 \ --instance-group=ig-a \ --instance-group-zone=us-west1-a
- Para tráfego IPv6: crie uma regra de encaminhamento com o protocolo definido como - L3_DEFAULTpara processar todo o tráfego de protocolo IPv6 suportado. Todas as portas têm de ser configuradas com regras de encaminhamento.- L3_DEFAULT- gcloud compute forwarding-rules create fr-ilb-ipv6 \ --region=us-west1 \ --load-balancing-scheme=internal \ --subnet=lb-subnet \ --ip-protocol=L3_DEFAULT \ --ports=ALL \ --backend-service=be-ilb-l3-default \ --backend-service-region=us-west1 \ --ip-version=IPV6 
- Para tráfego IPv4: crie uma regra de encaminhamento com o protocolo definido como - L3_DEFAULTpara processar todo o tráfego de protocolo IPv4 suportado. Todas as portas têm de ser configuradas com regras de encaminhamento.- L3_DEFAULTUse- 10.1.2.99como o endereço IP interno.- gcloud compute forwarding-rules create fr-ilb-l3-default \ --region=us-west1 \ --load-balancing-scheme=internal \ --network=lb-network \ --subnet=lb-subnet \ --address=10.1.2.99 \ --ip-protocol=L3_DEFAULT \ --ports=ALL \ --backend-service=be-ilb-l3-default \ --backend-service-region=us-west1 
API
- Crie a verificação de funcionamento fazendo um pedido - POSTao método- regionHealthChecks.insert. Substitua- PROJECT_IDpelo ID do seu projetoGoogle Cloud .- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/regionHealthChecks { "name": "hc-http-80", "type": "HTTP", "httpHealthCheck": { "port": 80 } }
- Crie o serviço de back-end regional fazendo um pedido - POSTao método- regionBackendServices.insert:- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices { "name": "be-ilb-l3-default", "backends": [ { "group": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instanceGroups/ig-a", "balancingMode": "CONNECTION" } ], "healthChecks": [ "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/healthChecks/hc-http-80" ], "loadBalancingScheme": "INTERNAL", "protocol": "UNSPECIFIED", "connectionDraining": { "drainingTimeoutSec": 0 } }
- Para o tráfego IPv6: crie a regra de encaminhamento fazendo um pedido - POSTao método- forwardingRules.insert.- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules { "name": "fr-ilb-ipv6", "IPProtocol": "L3_DEFAULT", "allPorts": true, "loadBalancingScheme": "INTERNAL", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet", "backendService": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices/be-ilb-l3-default", "ipVersion": "IPV6", "networkTier": "PREMIUM" }
- Para tráfego IPv4: crie a regra de encaminhamento fazendo um pedido - POSTao- forwardingRules.insertmétodo:- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules { "name": "fr-ilb-l3-default", "IPAddress": "10.1.2.99", "IPProtocol": "L3_DEFAULT", "allPorts": true, "loadBalancingScheme": "INTERNAL", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "backendService": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices/be-ilb-l3-default", "networkTier": "PREMIUM" }
Teste o balanceador de carga
Os testes seguintes mostram como validar a configuração do balanceador de carga e saber mais sobre o respetivo comportamento esperado.
Teste a ligação a partir da VM do cliente
Este teste contacta o balanceador de carga a partir de uma VM cliente separada, ou seja, não a partir de uma VM de back-end do balanceador de carga.
gcloud:IPv6
- Ligue-se à instância de VM do cliente. - gcloud compute ssh vm-client-ipv6 --zone=us-west1-a 
- Descreva a regra de encaminhamento IPv6 - fr-ilb-ipv6. Tenha em atenção o- IPV6_ADDRESSna descrição.- gcloud compute forwarding-rules describe fr-ilb-ipv6 --region=us-west1 
- Em clientes com conetividade IPv6, execute o seguinte comando. Substitua - IPV6_ADDRESSpelo endereço IPv6 efémero na regra de encaminhamento- fr-ilb-ipv6.- curl -m 10 -s http://IPV6_ADDRESS:80 - Por exemplo, se o endereço IPv6 atribuído for - [fd20:1db0:b882:802:0:46:0:0/96]:80, o comando deve ter o seguinte aspeto:- curl -m 10 -s http://[fd20:1db0:b882:802:0:46:0:0]:80 
gcloud:IPv4
- Ligue-se à instância de VM do cliente. - gcloud compute ssh vm-client --zone=us-west1-a 
- Descreva a regra de encaminhamento IPv4 - fr-ilb.- gcloud compute forwarding-rules describe fr-ilb --region=us-west1 
- Faça um pedido Web ao equilibrador de carga através de - curlpara contactar o respetivo endereço IP. Repita o pedido para poder ver que as respostas provêm de VMs de back-end diferentes. O nome da VM que gera a resposta é apresentado no texto na resposta HTML em virtude do conteúdo de- /var/www/html/index.htmlem cada VM de back-end. As respostas esperadas têm o seguinte aspeto:- Page served from: vm-a1.- curl http://10.1.2.99 - A regra de encaminhamento está configurada para publicar as portas - 80e- 53. Para enviar tráfego para essas portas, anexe dois pontos (- :) e o número da porta após o endereço IP, da seguinte forma:- curl http://10.1.2.99:80 
Enviar um ping para o endereço IP do balanceador de carga
Este teste demonstra um comportamento esperado: pode enviar um ping para o endereço IP do balanceador de carga.
gcloud:IPv6
- Ligue-se à instância de VM do cliente. - gcloud compute ssh vm-client-ipv6 --zone=us-west1-a 
- Tente enviar um ping para o endereço IPv6 do balanceador de carga. Substitua - IPV6_ADDRESSpelo endereço IPv6 efémero na regra de encaminhamento- fr-ilb-ipv6.- Repare que recebe uma resposta e que o comando - pingfunciona neste exemplo.- ping6 IPV6_ADDRESS - Por exemplo, se o endereço IPv6 atribuído for - [2001:db8:1:1:1:1:1:1/96], o comando é o seguinte:- ping6 2001:db8:1:1:1:1:1:1 - O resultado é semelhante ao seguinte: - @vm-client: ping - IPV6_ADDRESSPING- IPV6_ADDRESS(- IPV6_ADDRESS) 56(84) bytes of data. 64 bytes from- IPV6_ADDRESS: icmp_seq=1 ttl=64 time=1.58 ms
gcloud:IPv4
- Ligue-se à instância de VM do cliente. - gcloud compute ssh vm-client --zone=us-west1-a 
- Tente enviar um ping para o endereço IPv4 do equilibrador de carga. Repare que recebe uma resposta e que o comando - pingfunciona neste exemplo.- ping 10.1.2.99 - O resultado é o seguinte: - @vm-client: ping 10.1.2.99 PING 10.1.2.99 (10.1.2.99) 56(84) bytes of data. 64 bytes from 10.1.2.99: icmp_seq=1 ttl=64 time=1.58 ms 64 bytes from 10.1.2.99: icmp_seq=2 ttl=64 time=0.242 ms 64 bytes from 10.1.2.99: icmp_seq=3 ttl=64 time=0.295 ms 
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.
Pode reservar um endereço IP interno estático para o seu exemplo. Esta configuração permite que várias regras de encaminhamento interno usem o mesmo endereço IP com protocolos e portas diferentes.
Os back-ends do seu exemplo de equilibrador de carga têm de continuar a estar localizados na região
us-west1.
O diagrama seguinte mostra a arquitetura deste exemplo.
Também pode considerar usar as seguintes configurações de regras de encaminhamento:
- Regras de encaminhamento com várias portas: - Protocolo TCPcom portas80,8080
- Protocolo L3_DEFAULTcom portasALL
 
- Protocolo 
- Regras de encaminhamento com todas as portas: - Protocolo TCPcom portasALL
- Protocolo L3_DEFAULTcom portasALL
 
- Protocolo 
Reserve um endereço IPv4 interno estático
Reserve um endereço IP interno estático para 10.1.2.99 e defina a respetiva flag --purpose como SHARED_LOADBALANCER_VIP. A flag --purpose é necessária para que muitas regras de encaminhamento possam usar o mesmo endereço IP interno.
gcloud
Use o comando gcloud compute addresses create:
gcloud compute addresses create internal-lb-ipv4 \
    --region us-west1 \
    --subnet lb-subnet \
    --purpose SHARED_LOADBALANCER_VIP \
    --addresses 10.1.2.99
API
Chame o método addresses.insert.
Substitua PROJECT_ID pelo ID do seu projetoGoogle Cloud .
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/addresses
O corpo do pedido tem de incluir o addressType, que deve ser INTERNAL, o name do endereço e o subnetwork ao qual o endereço IP pertence. Tem de especificar o address como 10.1.2.99.
{
  "addressType": "INTERNAL",
  "name": "internal-lb-ipv4",
  "subnetwork": "regions/us-west1/subnetworks/lb-subnet",
  "purpose": "SHARED_LOADBALANCER_VIP",
  "address": "10.1.2.99"
}
Configure os componentes do balanceador de carga
Configure três equilibradores de carga com os seguintes componentes:
- O primeiro balanceador de carga tem uma regra de encaminhamento com o protocolo TCPe a porta80. O tráfego TCP que chega ao endereço IP interno na porta80é processado pela regra de encaminhamentoTCP.
- O segundo balanceador de carga tem uma regra de encaminhamento com o protocolo UDPe a porta53. O tráfego UDP que chega ao endereço IP interno na porta53é processado pela regra de encaminhamentoUDP.
- O terceiro balanceador de carga tem uma regra de encaminhamento com o protocolo L3_DEFAULTe a portaALL. Todo o outro tráfego que não corresponda às regras de encaminhamentoTCPouUDPé processado pela regra de encaminhamentoL3_DEFAULT.
- Todos os três balanceadores de carga partilham o mesmo endereço IP interno estático
(internal-lb-ipv4) nas respetivas regras de encaminhamento.
Crie o primeiro balanceador de carga
Crie o primeiro balanceador de carga para tráfego TCP na porta 80.
gcloud
- Crie o serviço de back-end para o tráfego TCP: - gcloud compute backend-services create be-ilb \ --load-balancing-scheme=internal \ --protocol=tcp \ --region=us-west1 \ --health-checks=hc-http-80 \ --health-checks-region=us-west1
- Adicione o grupo de instâncias ao serviço de back-end: - gcloud compute backend-services add-backend be-ilb \ --region=us-west1 \ --instance-group=ig-a \ --instance-group-zone=us-west1-a
- Crie uma regra de encaminhamento para o serviço de back-end. Use o endereço IP interno reservado estático ( - internal-lb-ipv4) para o endereço IP interno.- gcloud compute forwarding-rules create fr-ilb \ --region=us-west1 \ --load-balancing-scheme=internal \ --network=lb-network \ --subnet=lb-subnet \ --address=internal-lb-ipv4 \ --ip-protocol=TCP \ --ports=80 \ --backend-service=be-ilb \ --backend-service-region=us-west1
API
- Crie o serviço de back-end regional fazendo um pedido - POSTao- regionBackendServices.insertmétodo. Substitua- PROJECT_IDpelo ID do seu projetoGoogle Cloud .- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices { "name": "be-ilb", "backends": [ { "group": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instanceGroups/ig-a", "balancingMode": "CONNECTION" } ], "healthChecks": [ "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/healthChecks/hc-http-80" ], "loadBalancingScheme": "INTERNAL", "protocol": "TCP", "connectionDraining": { "drainingTimeoutSec": 0 } }
- Create the forwarding rule by making a - POSTrequest to the- forwardingRules.insertmethod:- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules { "name": "fr-ilb", "IPAddress": "internal-lb-ipv4", "IPProtocol": "TCP", "ports": [ "80" ], "loadBalancingScheme": "INTERNAL", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "backendService": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices/be-ilb", "networkTier": "PREMIUM" }
Crie o segundo balanceador de carga
Crie o segundo balanceador de carga para tráfego UDP na porta 53.
gcloud
- Crie o serviço de back-end com o protocolo definido como - UDP:- gcloud compute backend-services create be-ilb-udp \ --load-balancing-scheme=internal \ --protocol=UDP \ --region=us-west1 \ --health-checks=hc-http-80 \ --health-checks-region=us-west1
- Adicione o grupo de instâncias ao serviço de back-end: - gcloud compute backend-services add-backend be-ilb-udp \ --region=us-west1 \ --instance-group=ig-a \ --instance-group-zone=us-west1-a
- Crie uma regra de encaminhamento para o serviço de back-end. Use o endereço IP interno reservado estático ( - internal-lb-ipv4) para o endereço IP interno.- gcloud compute forwarding-rules create fr-ilb-udp \ --region=us-west1 \ --load-balancing-scheme=internal \ --network=lb-network \ --subnet=lb-subnet \ --address=internal-lb-ipv4 \ --ip-protocol=UDP \ --ports=53 \ --backend-service=be-ilb-udp \ --backend-service-region=us-west1
API
- Crie o serviço de back-end regional fazendo um pedido - POSTao- regionBackendServices.insertmétodo. Substitua- PROJECT_IDpelo ID do seu projetoGoogle Cloud .- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices { "name": "be-ilb-udp", "backends": [ { "group": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instanceGroups/ig-a", "balancingMode": "CONNECTION" } ], "healthChecks": [ "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/healthChecks/hc-http-80" ], "loadBalancingScheme": "INTERNAL", "protocol": "UDP", "connectionDraining": { "drainingTimeoutSec": 0 } }
- Crie a regra de encaminhamento fazendo um pedido - POSTao método- forwardingRules.insert:- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules { "name": "fr-ilb-udp", "IPAddress": "internal-lb-ipv4", "IPProtocol": "UDP", "ports": [ "53" ], "loadBalancingScheme": "INTERNAL", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "backendService": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices/be-ilb-udp", "networkTier": "PREMIUM" }
Crie o terceiro balanceador de carga
Crie a regra de encaminhamento do terceiro balanceador de carga para usar o endereço IP interno reservado estático.
gcloud
Crie a regra de encaminhamento com o protocolo definido como L3_DEFAULT para processar todo o outro tráfego de protocolo IPv4 suportado. Use o endereço IP interno reservado estático (internal-lb-ipv4) como endereço IP interno.
gcloud compute forwarding-rules create fr-ilb-l3-default \
    --region=us-west1 \
    --load-balancing-scheme=internal \
    --network=lb-network \
    --subnet=lb-subnet \
    --address=internal-lb-ipv4 \
    --ip-protocol=L3_DEFAULT \
    --ports=ALL \
    --backend-service=be-ilb-l3-default \
    --backend-service-region=us-west1
API
Crie a regra de encaminhamento fazendo um pedido POST ao
método forwardingRules.insert.
Substitua PROJECT_ID pelo ID do seu projetoGoogle Cloud .
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules
{
"name": "fr-ilb-l3-default",
"IPAddress": "internal-lb-ipv4",
"IPProtocol": "L3_DEFAULT",
"ports": [
  "ALL"
],
"loadBalancingScheme": "INTERNAL",
"subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet",
"network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network",
"backendService": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices/be-ilb-l3-default",
"networkTier": "PREMIUM"
}
Teste o balanceador de carga
Para testar o equilibrador de carga, siga os passos na secção anterior.
O que se segue?
- Para saber mais sobre conceitos importantes, consulte o artigo Vista geral do balanceador de carga de rede de encaminhamento interno.
- Para saber como configurar a comutação por falha, consulte o artigo Configure a comutação por falha para o balanceador de carga de rede de passagem interno.
- Para saber como configurar o registo e a monitorização para balanceadores de carga de rede de encaminhamento interno, consulte o artigo Registo e monitorização do balanceador de carga de rede de encaminhamento interno.
- Para saber como resolver problemas, consulte o artigo Resolva problemas de balanceadores de carga de rede de encaminhamento interno.
- Limpe uma configuração de equilíbrio de carga.