Como fazer a transição de um balanceador de carga de rede do pool de destino para o serviço de back-end

Neste guia, você verá instruções para fazer a transição de um balanceador de carga de rede atual de um back-end de pool de destino para um serviço de back-end regional.

A migração para um serviço de back-end regional permite que você aproveite recursos como verificações de integridade não legadas (para TCP, SSL, HTTP, HTTPS e HTTP/2), grupos de instâncias gerenciadas, diminuição da conexão e política de failover.

Neste guia, orientamos você na transição do seguinte balanceador de carga de rede baseado no pool de destino para usar um serviço de back-end regional.

Balanceador de carga de rede com pool de destino
Antes: balanceamento de carga de rede com pool de destino

A implantação do balanceador de carga de rede baseado em serviço de back-end terá esta aparência.

Balanceador de carga de rede com serviço de back-end regional
Depois: balanceamento de carga de rede com um serviço de back-end regional

Neste exemplo, presumimos que você tenha um balanceador de carga de rede baseado em pool de destino tradicional com duas instâncias em zona us-central-1a e duas instâncias na zona us-central-1c.

As etapas gerais necessárias para essa transição são:

  1. Agrupe as instâncias do pool de destino em grupos de instâncias.
    Os serviços de back-end funcionam somente com grupos de instâncias gerenciadas ou não gerenciadas. Observe que não há limite no número de instâncias que podem ser colocadas em um único pool de destino, mas os grupos de instâncias têm um tamanho máximo. Se o pool de destino tiver mais do que esse número máximo de instâncias, será preciso dividir os back-ends em vários grupos de instâncias.
    Se a implantação atual incluir um pool de destino de backup, crie um grupo de instâncias separado para essas instâncias. Esse grupo de instâncias será configurado como um grupo de failover.
  2. Criar um serviço de back-end regional.
    Se a implantação incluir um pool de destino de backup, será necessário especificar uma proporção de failover ao criar o serviço de back-end. Isso deve corresponder à proporção de failover configurada anteriormente para a implantação do pool de destino.
  3. Adicione grupos de instância (criados anteriormente) ao serviço de back-end.
    Se a implantação incluir um pool de destino de backup, marque o grupo de instâncias de failover correspondente com uma sinalização --failover ao adicioná-lo ao serviço de back-end.
  4. Configure uma regra de encaminhamento que aponte para o novo serviço de back-end.
    Você tem duas opções:
    • (Recomendado) Atualize a regra de encaminhamento atual para que aponte para o serviço de back-end.
      OU
    • Crie um novo encaminhamento que aponte para o serviço de back-end. Isso requer que você crie um novo endereço IP para o front-end do balanceador de carga. Em seguida, modifique as configurações de DNS para fazer a transição do endereço IP do balanceador de carga baseado em pool de destino para o novo endereço IP.

Antes de começar

Instale a ferramenta de linha de comando gcloud. Para uma visão geral completa da ferramenta, consulte o Guia da ferramenta gcloud. Você encontra comandos relacionados ao balanceamento de carga no grupo de comandos gcloud compute.

Se você nunca usou a ferramenta de linha de comando gcloud, execute primeiro gcloud init para fazer a autenticação.

Esse guia pressupõe que você esteja familiarizado com a ferramenta bash.

Como criar os grupos de instâncias não gerenciadas por zona

Crie um grupo de instâncias não gerenciadas por zona para cada uma das zonas em que você tem back-ends. Dependendo da sua configuração, é possível dividir suas instâncias em quantos grupos forem necessários. No nosso exemplo, estamos usando apenas dois grupos de instâncias, um para cada zona, e colocando todas as VMs de back-end em uma determinada zona no grupo de instâncias associado.

Para este exemplo, criamos dois grupos de instâncias: um na zona uc-central1-a e outro na zona us-central1-c.

Configurar os grupos de instâncias

Cloud Console

  1. Acesse a página Grupos de instâncias no Console do Cloud.

    Acessar a página "Grupos de instâncias"

  2. Clique em Criar grupo de instâncias.
  3. Escolha Novo grupo de instâncias não gerenciadas à esquerda.
  4. Em Nome, insira ig-us-1.
  5. Em Local, selecione Única zona.
  6. Em Região, selecione us-central1.
  7. Em Zona, selecione us-central1-a.
  8. Selecione a Rede e a Sub-rede, dependendo de onde suas instâncias estão localizadas. Neste exemplo, as instâncias do pool de destino estão na rede e sub-rede default.
  9. Em Instâncias de VM, selecione as duas instâncias a serem adicionadas ao grupo.
  10. Clique em Criar.
  11. Repita essas etapas para criar um segundo grupo de instâncias com as seguintes especificações:
    • Name: ig-us-2
    • Região: us-central1
    • Zona: us-central1-c Adicione as duas instâncias na zona us-central1-c a este grupo de instâncias.

gcloud

  1. Crie um grupo de instâncias não gerenciadas na zona us-central1-a com o comando gcloud compute instance-groups unmanaged create.

    gcloud compute instance-groups unmanaged create ig-us-1 \
        --zone us-central1-a
    
  2. Crie um segundo grupo de instâncias gerenciadas na zona us-central1-c.

    gcloud compute instance-groups unmanaged create ig-us-2 \
        --zone us-central1-c
    
  3. Adicione instâncias ao grupo us-ig-1.

    gcloud compute instance-groups unmanaged add-instances us-ig-1 \
        --instances BACKEND_INSTANCE_1,BACKEND_INSTANCE_2 \
        --zone us-central1-a
    
  4. Adicione instâncias ao grupo us-ig-2.

    gcloud compute instance-groups unmanaged add-instances us-ig-2 \
        --instances BACKEND_INSTANCE_3,BACKEND_INSTANCE_4 \
        --zone us-central1-c
    

Se a implantação do balanceador de carga atual também tiver um pool de destino de backup, repita essas etapas para criar um grupo separado de instâncias de failover para essas instâncias.

Criar verificação de integridade

Crie uma verificação de integridade para determinar a integridade das instâncias nos grupos de instâncias. Seu balanceador de carga de rede baseado em pool de destino provavelmente terá uma verificação de integridade HTTP legada associada a ele.

É possível criar uma nova verificação de integridade que corresponda ao protocolo do tráfego que o balanceador de carga distribuirá. Os balanceadores de carga de rede baseados em serviço de back-end podem usar verificações de integridade TCP, SSL, HTTP(S) e HTTP/2.

Console

  1. Acesse a página Verificações de integridade no Console do Cloud.

    Acessar a página "Verificações de integridade"

  2. Digite um Nome.
  3. Defina o Escopo como Regional.
  4. Em Região, selecione us-central1.
  5. Para Protocolo, selecione HTTP.
  6. Em Porta, digite 80.
  7. Clique em Criar.

gcloud

  1. Neste exemplo, criamos uma verificação de integridade HTTP não legada a ser usada com o serviço de back-end.

    gcloud compute health-checks create http http-health-check \
    --region us-central1 \
    --port 80
    

Configurar o serviço de back-end

Use uma das seções a seguir para criar o serviço de back-end. Se o balanceador de carga de rede atual tiver um pool de destino de backup, configure uma proporção de failover ao criar o serviço de back-end.

Você também precisará designar o grupo de instâncias de failover com a sinalização --failover ao adicionar back-ends ao serviço de back-end.

Implantações sem um pool de destino de backup

gcloud

  1. Crie um serviço de back-end regional na região us-central1.

    gcloud compute backend-services create network-lb-backend-service \
       --region us-central1 \
       --health-checks http-health-check \
       --health-checks-region us-central1 \
       --protocol TCP
    
  2. Adicione os dois grupos de instâncias (us-ig-1 e us-ig-2) como back-ends ao serviço de back-end.

    gcloud compute backend-services add-backend network-lb-backend-service \
       --instance-group us-ig-1 \
       --instance-group-zone us-central1-a \
       --region us-central1
    
    gcloud compute backend-services add-backend network-lb-backend-service \
       --instance-group us-ig-2 \
       --instance-group-zone us-central1-c \
       --region us-central1
    

Implantações com um pool de destino de backup

gcloud

  1. Crie um serviço de back-end regional na região us-central1. Configure a proporção de failover do serviço de back-end para corresponder à proporção configurada anteriormente para o pool de destino.

    gcloud compute backend-services create network-lb-backend-service \
       --region us-central1 \
       --health-check http-health-check \
       --failover-ratio 0.5
    
  2. Adicione os dois grupos de instâncias (us-ig-1 e us-ig-2) como back-ends ao serviço de back-end.

    gcloud compute backend-services add-backend network-lb-backend-service \
       --instance-group us-ig-1 \
       --instance-group-zone us-central1-a \
       --region us-central1
    
    gcloud compute backend-services add-backend network-lb-backend-service \
       --instance-group us-ig-2 \
       --instance-group-zone us-central1-c \
       --region us-central1
    
  3. Se você criou um grupo de instâncias de failover, adicione-o ao serviço de back-end. Marque esse back-end com a sinalização --failover ao adicioná-lo ao serviço de back-end.

    gcloud compute backend-services add-backend network-lb-backend-service \
       --instance-group FAILOVER_INSTANCE_GROUP \
       --instance-group-zone ZONE \
       --region us-central1 \
       --failover
    

Configurar a regra de encaminhamento

Há duas opções: configurar a regra de encaminhamento para direcionar o tráfego para o novo serviço de back-end. É possível atualizar a regra de encaminhamento atual ou criar uma nova com um novo endereço IP.

Use a sinalização set-target para atualizar a regra de encaminhamento atual a fim de apontar para o novo serviço de back-end.

gcloud compute forwarding-rules set-target network-lb-forwarding-rule  \
    --backend-service network-lb-backend-service \
    --region us-central1

Criar uma nova regra de encaminhamento

Se você não quiser atualizar a regra de encaminhamento atual, crie uma nova com um novo endereço IP. Como um determinado endereço IP só pode ser associado a uma única regra de encaminhamento por vez, será preciso modificar manualmente a configuração de DNS para mudar o tráfego de entrada do antigo endereço IP para o novo.

Use o comando a seguir para criar uma nova regra de encaminhamento com um novo endereço IP. Use a sinalização --address se quiser especificar um endereço IP já reservado na região us-central1.

gcloud compute forwarding-rules create network-lb-forwarding-rule \
    --load-balancing-scheme external \
    --region us-central1 \
    --ports 80 \
    --backend-service network-lb-backend-service

Como testar o balanceador de carga

Teste o balanceador de carga para confirmar se a regra de encaminhamento está direcionando o tráfego de entrada conforme o esperado.

Procure o endereço IP externo do balanceador de carga.

gcloud

Insira o comando a seguir para visualizar o endereço IP externo da regra de encaminhamento network-lb-forwarding-rule usada pelo balanceador de carga.

gcloud compute forwarding-rules describe network-lb-forwarding-rule
    --region us-central1

Usar o comando nc para acessar o endereço IP externo

Neste exemplo, usamos o método de hash padrão para afinidade da sessão. Portanto, as solicitações do comando nc serão distribuídas aleatoriamente nas VMs de back-end com base na porta de origem atribuída pelo sistema operacional.

Repita o comando algumas vezes até ver todas as VMs de back-end que estão respondendo.

$ nc IP_ADDRESS 80

Remover recursos associados ao antigo balanceador de carga

Depois de confirmar que o novo balanceador de carga de rede funciona conforme o esperado, exclua os recursos antigos do pool de segmentação e a regra de encaminhamento antiga (se aplicável).

A seguir