Configure um balanceador de carga de rede de proxy externo global (proxy TCP) com back-ends de grupos de instâncias de VM

Google Cloud Os balanceadores de carga de rede de proxy externo global permitem-lhe usar um único endereço IP para todos os utilizadores em todo o mundo. Os equilibradores de carga de rede de proxy externo global encaminham automaticamente o tráfego para instâncias de back-end mais próximas do utilizador.

Esta página contém instruções para configurar um balanceador de carga de rede de proxy externo global com um proxy TCP de destino e back-ends de grupo de instâncias de VMs. Antes de começar, leia a vista geral do equilibrador de carga de rede do proxy externo para obter informações detalhadas sobre o funcionamento destes equilibradores de carga.

Vista geral da configuração

Este exemplo demonstra como configurar um Network Load Balancer de proxy externo para um serviço que existe em duas regiões: região A e região B. 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 o seguinte:

  1. Quatro instâncias distribuídas entre duas regiões
  2. Grupos de instâncias, que contêm as instâncias
  3. Uma verificação de funcionamento para validar o estado de funcionamento da instância
  4. Um serviço de back-end que monitoriza as instâncias e impede que excedam a utilização configurada
  5. O proxy TCP de destino
  6. Um endereço IPv4 estático externo e uma regra de encaminhamento que envia tráfego de utilizadores para o proxy
  7. Um endereço IPv6 estático externo e uma regra de encaminhamento que envia tráfego de utilizadores para o proxy
  8. Uma regra de firewall que permite que o tráfego do balanceador de carga e do verificador de estado de funcionamento alcance as instâncias

Depois de configurar o balanceador de carga, teste a configuraçã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

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:

  1. Na Google Cloud consola, aceda à página Redes VPC.

    Aceda a redes de VPC

  2. Clique em Criar rede de VPC.

  3. Introduza um Nome para a rede.

  4. Opcional: se quiser configurar intervalos de endereços IPv6 internos em sub-redes nesta rede, conclua estes passos:

    1. Para o intervalo IPv6 interno ULA da rede VPC, selecione Ativado.
    2. Para Atribuir intervalo IPv6 interno, selecione Automaticamente ou Manualmente.

      Se selecionar Manualmente, introduza um intervalo de /48 no intervalo de fd20::/20. Se o intervalo estiver em uso, é-lhe pedido que faculte um intervalo diferente.

  5. Para o Modo de criação de sub-rede, escolha Personalizado.

  6. Na secção Nova sub-rede, configure os seguintes campos:

    1. No campo Nome, indique um nome para a sub-rede.
    2. No campo Região, selecione uma região.
    3. Para o Tipo de pilha de IP, selecione IPv4 e IPv6 (pilha dupla).
    4. No campo Intervalo de endereços IP, introduza um intervalo de endereços IP. Este é o intervalo IPv4 principal para a sub-rede.

      Embora possa configurar um intervalo de endereços IPv4 para a sub-rede, não pode escolher o intervalo de endereços IPv6 para a sub-rede. A Google fornece um bloco CIDR IPv6 de tamanho fixo (/64).

    5. Para o tipo de acesso IPv6, selecione Externo.

  7. Clique em Concluído.

  8. Para adicionar uma sub-rede numa região diferente, clique em Adicionar sub-rede e repita os passos anteriores.

  9. Clique em Criar.

Para suportar apenas tráfego IPv4, siga os passos seguintes:

  1. Na Google Cloud consola, aceda à página Redes VPC.

    Aceda a redes de VPC

  2. Clique em Criar rede de VPC.

  3. No campo Nome, introduza um nome para a rede.

  4. Para o Modo de criação de sub-rede, escolha Personalizado.

  5. Na secção Nova sub-rede, configure o seguinte:

    1. No campo Nome, indique um nome para a sub-rede.
    2. No campo Região, selecione uma região.
    3. Para o Tipo de pilha de IP, selecione IPv4 (pilha única).
    4. No campo Intervalo de endereços IP, introduza o intervalo IPv4 principal para a sub-rede.
  6. Clique em Concluído.

  7. Para adicionar uma sub-rede numa região diferente, clique em Adicionar sub-rede e repita os passos anteriores.

  8. Clique em Criar.

gcloud

  1. Crie a rede VPC de modo personalizado:

    gcloud compute networks create NETWORK \
        --subnet-mode=custom
    
  2. Na rede, crie uma sub-rede para back-ends.

    Para o tráfego IPv4 e IPv6, use o seguinte comando para atualizar uma sub-rede:

    gcloud compute networks subnets create SUBNET \
       --stack-type=IPV4_IPV6 \
       --ipv6-access-type=EXTERNAL \
       --network=NETWORK \
       --range=IPV4_RANGE \
       --region=REGION_A
    
    gcloud compute networks subnets create SUBNET_B \
       --stack-type=IPV4_IPV6 \
       --ipv6-access-type=EXTERNAL \
       --network=NETWORK \
       --range=IPV4_RANGE_B \
       --region=REGION_B
    

    Para tráfego IPv4 apenas, use o seguinte comando:

    gcloud compute networks subnets create SUBNET \
       --network=NETWORK \
       --stack-type=IPV4_ONLY \
       --range=IPV4_RANGE \
       --region=REGION_A
    
    gcloud compute networks subnets create SUBNET_B \
       --network=NETWORK \
       --stack-type=IPV4_ONLY \
       --range=IPV4_RANGE_B \
       --region=REGION_B
    

Substitua o seguinte:

  • NETWORK: um nome para a rede VPC

  • IPV4_RANGE: o intervalo IPv4 principal para a nova sub-rede, na notação CIDR. Por exemplo, 10.1.2.0/24.

  • SUBNET: um nome para a sub-rede

  • REGION_A ou REGION_B: o nome da região

Configure back-ends de grupos de instâncias

Esta secção mostra como criar grupos de instâncias básicos, adicionar instâncias aos mesmos e, em seguida, adicionar essas instâncias a um serviço de back-end com uma verificação de estado. Normalmente, um sistema de produção usaria grupos de instâncias geridos com base em modelos de instâncias, mas esta configuração é mais rápida para os testes iniciais.

Configure instâncias

Para fins de teste, instale o Apache em quatro instâncias, duas em cada um de dois grupos de instâncias. Normalmente, os balanceadores de carga de rede de proxy externos não são usados para tráfego HTTP, mas o software Apache é usado frequentemente para testes.

Neste exemplo, as instâncias são criadas com a etiqueta tcp-lb. Esta etiqueta é usada posteriormente pela regra de firewall.

Consola

Crie instâncias

  1. Na Google Cloud consola, aceda à página Instâncias de VM.

    Aceder às instâncias de VM

  2. Clique em Criar instância.

  3. Defina Nome como vm-a1.

  4. Defina a Região como REGION_A.

  5. Defina a Zona como ZONE_A.

  6. Clique em Opções avançadas.

  7. Clique em Rede e configure o seguinte campo:

    • Para etiquetas de rede, introduza tcp-lb,allow-health-check-ipv6.

    Para suportar o tráfego IPv4 e IPv6, siga estes passos:

    1. Na secção Interfaces de rede, clique em Editar e faça as seguintes alterações:
      • Rede: NETWORK
      • Subnet: SUBNET
      • Tipo de pilha de IP: IPv4 e IPv6 (dupla pilha)
    2. Clique em Concluído
  8. Clique em Gestão. Introduza o seguinte script no campo Script de arranque.

    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo sed -i '/Listen 80/c\Listen 110' /etc/apache2/ports.conf
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>vm-a1</h1></body></html>' | sudo tee /var/www/html/index.html
  9. Clique em Criar.

  10. Crie vm-a2 com as mesmas definições, exceto com o seguinte script no campo Script de arranque:

    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo sed -i '/Listen 80/c\Listen 110' /etc/apache2/ports.conf
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>vm-a2</h1></body></html>' | sudo tee /var/www/html/index.html

  11. Crie vm-b1 com as mesmas definições, exceto com a região definida como REGION_B e a zona definida como ZONE_B. Introduza o seguinte script no campo Script de arranque:

    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo sed -i '/Listen 80/c\Listen 110' /etc/apache2/ports.conf
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>vm-b1</h1></body></html>' | sudo tee /var/www/html/index.html

  12. Crie vm-b2 com as mesmas definições, exceto com a região definida como REGION_B e a zona definida como ZONE_B. Introduza o seguinte script no campo Script de arranque:

    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo sed -i '/Listen 80/c\Listen 110' /etc/apache2/ports.conf
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>vm-b2</h1></body></html>' | sudo tee /var/www/html/index.html

gcloud

  1. Crie vm-a1 na zona ZONE_A

    gcloud compute instances create vm-a1 \
       --image-family debian-12 \
       --image-project debian-cloud \
       --tags tcp-lb \
       --zone ZONE_A \
       --metadata startup-script="#! /bin/bash
         sudo apt-get update
         sudo apt-get install apache2 -y
         sudo sed -i '/Listen 80/c\Listen 110' /etc/apache2/ports.conf
         sudo service apache2 restart
         echo '<!doctype html><html><body><h1>vm-a1</h1></body></html>' | tee /var/www/html/index.html
         EOF"
    
  2. Crie vm-a2 na zona ZONE_A

    gcloud compute instances create vm-a2 \
       --image-family debian-12 \
       --image-project debian-cloud \
       --tags tcp-lb \
       --zone ZONE_A \
       --metadata startup-script="#! /bin/bash
         sudo apt-get update
         sudo apt-get install apache2 -y
         sudo sed -i '/Listen 80/c\Listen 110' /etc/apache2/ports.conf
         sudo service apache2 restart
         echo '<!doctype html><html><body><h1>vm-a2</h1></body></html>' | tee /var/www/html/index.html
         EOF"
    
  3. Crie vm-b1 na zona ZONE_B

    gcloud compute instances create vm-b1 \
       --image-family debian-12 \
       --image-project debian-cloud \
       --tags tcp-lb \
       --zone ZONE_B \
       --metadata startup-script="#! /bin/bash
         sudo apt-get update
         sudo apt-get install apache2 -y
         sudo sed -i '/Listen 80/c\Listen 110' /etc/apache2/ports.conf
         sudo service apache2 restart
         echo '<!doctype html><html><body><h1>vm-b1</h1></body></html>' | tee /var/www/html/index.html
         EOF"
    
  4. Crie vm-b2 na zona ZONE_B

    gcloud compute instances create vm-b2 \
       --image-family debian-12 \
       --image-project debian-cloud \
       --tags tcp-lb \
       --zone ZONE_B \
       --metadata startup-script="#! /bin/bash
         sudo apt-get update
         sudo apt-get install apache2 -y
         sudo sed -i '/Listen 80/c\Listen 110' /etc/apache2/ports.conf
         sudo service apache2 restart
         echo '<!doctype html><html><body><h1>vm-b2</h1></body></html>' | tee /var/www/html/index.html
         EOF"
    

Crie grupos de instâncias

Nesta secção, cria um grupo de instâncias em cada zona e adiciona as instâncias.

Consola

  1. Na Google Cloud consola, aceda à página Grupos de instâncias.

    Aceda a Grupos de instâncias

  2. Clique em Criar grupo de instâncias.

  3. Clique em Novo grupo de instâncias não gerido.

  4. Defina o Nome como instance-group-a.

  5. Defina a Zona como ZONE_A.

  6. Em Mapeamento de portas, clique em Adicionar porta. Um balanceador de carga envia tráfego para um grupo de instâncias através de uma porta designada. Crie uma porta com nome para mapear o tráfego de entrada para um número de porta específico.

    1. Defina Nome da portabilidade como tcp110.
    2. Defina Transferir números como 110.
  7. Em Instâncias de VM, selecione vm-a1 e vm-a2.

  8. Deixe as outras definições como estão.

  9. Clique em Criar.

  10. Repita os passos, mas defina os seguintes valores:

    • Nome: instance-group-b
    • Região: REGION_B
    • Zona: ZONE_B
    • Nome da porta: tcp110
    • Números de portas: 110
    • Instâncias: vm-b1 e vm-b2.

gcloud

  1. Crie o grupo de instâncias instance-group-a.

    gcloud compute instance-groups unmanaged create instance-group-a \
       --zone ZONE_A
    
  2. Crie uma porta com nome para o grupo de instâncias.

    gcloud compute instance-groups set-named-ports instance-group-a \
       --named-ports tcp110:110 \
       --zone ZONE_A
    
  3. Adicione vm-a1 e vm-a2 a instance-group-a.

    gcloud compute instance-groups unmanaged add-instances instance-group-a \
       --instances vm-a1,vm-a2 \
       --zone ZONE_A
    
  4. Crie o grupo de instâncias us-ig2.

    gcloud compute instance-groups unmanaged create instance-group-b \
       --zone ZONE_B
    
  5. Crie uma porta com nome para o grupo de instâncias.

    gcloud compute instance-groups set-named-ports instance-group-b \
       --named-ports tcp110:110 \
       --zone ZONE_B
    
  6. Adicione vm-b1 e vm-b2 a instance-group-b

    gcloud compute instance-groups unmanaged add-instances instance-group-b \
       --instances vm-b1,vm-b2 \
       --zone ZONE_B
    

Agora, tem um grupo de instâncias por região. Cada grupo de instâncias tem duas instâncias de VM.

Crie uma regra de firewall para o balanceador de carga de rede de proxy externo

Configure a firewall para permitir o tráfego do balanceador de carga e do verificador de estado para as instâncias. Neste caso, vamos abrir a porta TCP 110. A verificação de estado vai usar a mesma porta. Uma vez que o tráfego entre o equilibrador de carga e as suas instâncias usa IPv4, só é necessário abrir intervalos IPv4.

Consola

  1. Na Google Cloud consola, aceda à página Políticas de firewall.

    Aceder a Políticas de firewall

  2. Clique em Criar regra de firewall.

  3. No campo Nome, introduza allow-tcp-lb-and-health.

  4. Selecione uma rede.

  5. Em Segmentações, selecione Etiquetas de segmentação especificadas.

  6. Defina as etiquetas de destino como tcp-lb.

  7. Defina o Filtro de origem como Intervalos IPv4.

  8. Defina os Intervalos de IPv4 de origem para 130.211.0.0/2235.191.0.0/16.

  9. Em Protocolos e portas, defina Protocolos e portas especificados como tcp:110.

  10. Clique em Criar.

gcloud

gcloud compute firewall-rules create allow-tcp-lb-and-health \
   --source-ranges 130.211.0.0/22,35.191.0.0/16 \
   --target-tags tcp-lb \
   --allow tcp:110

Crie uma regra de firewall de verificação de funcionamento de IPv6

Certifique-se de que tem uma regra de entrada aplicável às instâncias com balanceamento de carga e que permite o tráfego dos sistemas de verificação de funcionamento (2600:2d00:1:b029::/64). Este exemplo usa a etiqueta de destino allow-health-check-ipv6 para identificar as instâncias de VM às quais se aplica. Google Cloud

Sem esta regra de firewall, a regra de negação predefinida de entrada bloqueia o tráfego IPv6 de entrada para as instâncias de back-end.

Consola

  1. Na Google Cloud consola, aceda à página Políticas de firewall.

    Aceder a Políticas de firewall

  2. Para permitir o tráfego de sub-rede IPv6, clique novamente em Criar regra de firewall e introduza as seguintes informações:

    • Nome: fw-allow-lb-access-ipv6
    • Selecione a rede.
    • Prioridade: 1000
    • Direção do trânsito: entrada
    • Objetivos: etiquetas de destino especificadas
    • Etiquetas de segmentação: allow-health-check-ipv6
    • Filtro de origem: intervalos IPv6
    • Intervalos IPv6 de origem: 2600:2d00:1:b029::/64,2600:2d00:1:1::/64
    • Protocolos e portas: Permitir tudo
  3. Clique em Criar.

gcloud

Crie a regra de firewall fw-allow-lb-access-ipv6 para permitir a comunicação com a sub-rede:

gcloud compute firewall-rules create fw-allow-lb-access-ipv6 \
  --network=NETWORK \
  --action=allow \
  --direction=ingress \
  --target-tags=allow-health-check-ipv6 \
  --source-ranges=2600:2d00:1:b029::/64,2600:2d00:1:1::/64 \
  --rules=all

Configure o balanceador de carga

Consola

Inicie a configuração

  1. Na Google Cloud consola, aceda à página Equilíbrio de carga.

    Aceda a Balanceamento de carga

  2. Clique em Criar equilibrador de carga.
  3. Para Tipo de balanceador de carga, selecione Balanceador de carga de rede (TCP/UDP/SSL) e clique em Seguinte.
  4. Para Proxy ou passagem, selecione Proxy de balanceamento de carga e clique em Seguinte.
  5. Para Público ou interno, selecione Público (externo) e clique em Seguinte.
  6. Para a Implementação global ou de região única, selecione Melhor para cargas de trabalho globais e clique em Seguinte.
  7. Para Geração do balanceador de carga, selecione Balanceador de carga de rede de proxy externo global e clique em Seguinte.
  8. Clique em Configurar.

Configuração básica

Defina o Nome como my-tcp-lb.

Configuração do back-end

  1. Clique em Configuração de back-end.
  2. Na lista Tipo de back-end, selecione Grupos de instâncias.
  3. Na lista Protocolo, selecione TCP.
  4. Na lista Política de seleção de endereços IP, selecione Preferir IPv6.
  5. Configure a verificação de estado:
    • Na lista Verificação de funcionamento, selecione Criar verificação de funcionamento.
    • No campo Nome, introduza my-tcp-health-check.
    • Na lista Protocolo, selecione TCP.
    • No campo Porta, introduza 110.
    • Mantenha os restantes valores predefinidos.
    • Clique em Criar.
  6. Configure o primeiro back-end:
    1. Em Novo back-end, selecione o grupo de instâncias instance-group-a.
    2. Mantenha os restantes valores predefinidos.
  7. Configure o segundo back-end:

      Para suportar o tráfego IPv4 e IPv6:

      • Para Tipo de pilha de IP, selecione IPv4 and IPv6 (dual-stack).
    1. Clique em Adicionar back-end.
    2. Selecione o grupo de instâncias instance-group-b.
    3. Em Números de portas, elimine 80 e adicione 110.
  8. 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 do frontend

  1. Clique em Configuração do front-end.
  2. Adicione a primeira regra de encaminhamento:
    1. Introduza um Nome de my-tcp-lb-forwarding-rule.
    2. Em Protocolo, selecione TCP.
    3. Em Endereço IP, selecione Criar endereço IP:
      1. Introduza um Nome de tcp-lb-static-ip.
      2. Clique em Reservar.
    4. Defina Porta como 110.
    5. 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.
    6. Clique em Concluído.
  3. 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

  1. Clique em Rever e finalizar.
  2. Reveja as definições de configuração do equilibrador de carga.
  3. Opcional: clique em Código equivalente para ver o pedido da API REST que vai ser usado para criar o balanceador de carga.
  4. Clique em Criar.

gcloud

  1. Crie uma verificação de funcionamento.
        gcloud compute health-checks create tcp my-tcp-health-check --port 110
        
  2. Crie um serviço de back-end.
        gcloud beta compute backend-services create my-tcp-lb \
            --load-balancing-scheme EXTERNAL_MANAGED \
            --global-health-checks \
            --global \
            --protocol TCP \
            --ip-address-selection-policy=PREFER_IPV6 \
            --health-checks my-tcp-health-check \
            --timeout 5m \
            --port-name tcp110
        

    Em alternativa, pode configurar a comunicação encriptada do balanceador de carga para as instâncias com --protocol SSL.

  3. Adicione grupos de instâncias ao seu serviço de back-end.

        gcloud beta compute backend-services add-backend my-tcp-lb \
            --global \
            --instance-group instance-group-a \
            --instance-group-zone ZONE_A \
            --balancing-mode UTILIZATION \
            --max-utilization 0.8
        
        gcloud beta compute backend-services add-backend my-tcp-lb \
            --global \
            --instance-group instance-group-b \
            --instance-group-zone ZONE_B \
            --balancing-mode UTILIZATION \
            --max-utilization 0.8
        
  4. Configure um proxy TCP de destino. Se quiser ativar o cabeçalho do proxy, defina-o como PROXY_V1 em vez de NONE.
        gcloud beta compute target-tcp-proxies create my-tcp-lb-target-proxy \
            --backend-service my-tcp-lb \
            --proxy-header NONE
        
  5. Reserve endereços IPv4 e IPv6 estáticos globais.

    Os seus clientes podem usar estes endereços IP para aceder ao seu serviço com balanceamento de carga.

        gcloud compute addresses create tcp-lb-static-ipv4 \
            --ip-version=IPV4 \
            --global
        
        gcloud compute addresses create tcp-lb-static-ipv6 \
            --ip-version=IPV6 \
            --global
        
  6. Configure regras de encaminhamento globais para os dois endereços.
        gcloud beta compute forwarding-rules create my-tcp-lb-ipv4-forwarding-rule \
            --load-balancing-scheme EXTERNAL_MANAGED \
            --global \
            --target-tcp-proxy my-tcp-lb-target-proxy \
            --address tcp-lb-static-ipv4 \
            --ports 110
        

Teste o balanceador de carga

  1. Obtenha o endereço IP do balanceador de carga.

    Para obter o endereço IPv4, execute o seguinte comando:

    gcloud compute addresses describe tcp-lb-static-ipv4
    

    Para obter o endereço IPv6, execute o seguinte comando:

    gcloud compute addresses describe tcp-lb-static-ipv6
    
  2. Envie tráfego para o balanceador de carga executando o seguinte comando. Substitua LB_IP_ADDRESS pelo endereço IPv4 ou IPv6 do seu equilibrador de carga.

    curl -m1 LB_IP_ADDRESS:110
    

    Por exemplo, se o endereço IPv6 atribuído for [2001:db8:1:1:1:1:1:1/96]:110, o comando deve ter o seguinte aspeto:

    curl -m1 http://[2001:db8:1:1:1:1:1:1]:110
    

Se não conseguir aceder ao equilibrador de carga, experimente os passos descritos em Resolução de problemas da configuração.

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.

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

A configuração de exemplo do balanceador de carga nesta página mostra como ativar o cabeçalho do protocolo PROXY durante a criação do balanceador de carga de rede do proxy. Use estes passos para alterar o cabeçalho do protocolo PROXY para um proxy de destino existente.

Consola

  1. Na Google Cloud consola, aceda à página Equilíbrio de carga.

    Aceda a Balanceamento de carga

  2. Clique em Editar para o equilibrador de carga.
  3. Clique em Configuração do front-end.
  4. Altere o valor do campo Protocolo proxy para Ativado.
  5. Clique em Atualizar para guardar as alterações.

gcloud

No comando seguinte, edite o campo --proxy-header e defina-o como NONE ou PROXY_V1, consoante o seu requisito.

gcloud compute target-tcp-proxies update TARGET_PROXY_NAME \
    --proxy-header=[NONE | PROXY_V1]

Configure 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 equilibrador de carga, 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 externo de uma regra de encaminhamento externo).

Consola

Para ativar a afinidade de sessão de IP do cliente:

  1. Na Google Cloud consola, aceda à página Equilíbrio de carga.

    Aceda a Balanceamento de carga

  2. Clique em Back-ends.

  3. Clique em my-tcp-lb (o nome do serviço de back-end que criou para este exemplo) e clique em Editar.

  4. Na página Detalhes do serviço de back-end, clique em Configuração avançada.

  5. Em Afinidade de sessão, selecione IP do cliente no menu.

  6. 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:my-tcp-lb

gcloud compute backend-services update my-tcp-lb \
    --global \
    --session-affinity=CLIENT_IP

API

Para definir a afinidade de sessão do IP do cliente, faça um pedido PATCH ao método backendServices/patch.

PATCH https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/us-west1/backendServices/my-tcp-lb
{
  "sessionAffinity": "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?