Migre um balanceador de carga de rede de passagem externo do conjunto de destino para o serviço de back-end

Este guia fornece instruções para migrar um Network Load Balancer de passagem externo existente de um back-end de conjunto de destino para um serviço de back-end regional.

A mudança para um serviço de back-end regional permite-lhe tirar partido de funcionalidades como verificações de estado não antigas (para TCP, SSL, HTTP, HTTPS e HTTP/2), grupos de instâncias geridos, drenagem de ligações e política de comutação por falha.


Para seguir orientações passo a passo para esta tarefa diretamente na Google Cloud consola, clique em Orientar-me:

Visita guiada


Este guia explica como migrar o seguinte destino de exemplo O Network Load Balancer de encaminhamento externo baseado em pool para usar um serviço de back-end regional.

Antes: balanceador de carga de rede de encaminhamento externo com um conjunto de destino
Antes: balanceador de carga de rede de encaminhamento externo com um conjunto de destino

A implementação do balanceador de carga de rede de encaminhamento externo baseado no serviço de back-end resultante tem o seguinte aspeto.

Depois: balanceador de carga de rede de passagem externo com um serviço de back-end regional
Após: balanceador de carga de rede de encaminhamento externo com um serviço de back-end regional

Este exemplo pressupõe que tem um balanceador de carga de rede de encaminhamento externo tradicional baseado num conjunto de destino com duas instâncias na zona us-central-1a e duas instâncias na zona us-central-1c.

Os passos de nível elevado necessários para essa transição são os seguintes:

  1. Agrupe as instâncias do grupo de destino em grupos de instâncias.

    Os serviços de back-end só funcionam com grupos de instâncias geridos ou não geridos. Embora não exista um limite para o número de instâncias que podem ser colocadas num único conjunto de destinos, os grupos de instâncias têm um tamanho máximo. Se o seu conjunto de destino tiver mais do que este número máximo de instâncias, tem de dividir os respetivos back-ends por vários grupos de instâncias.

    Se a sua implementação existente incluir um grupo de destino de cópia de segurança, crie um grupo de instâncias separado para essas instâncias. Este grupo de instâncias está configurado como um grupo de comutação por falha.

  2. Crie um serviço de back-end regional.

    Se a sua implementação incluir um conjunto de destino de cópia de segurança, tem de especificar uma taxa de comutação por falha ao criar o serviço de back-end. Este valor deve corresponder à proporção de comutação por falha configurada anteriormente para a implementação do conjunto de destino.

  3. Adicione grupos de instâncias (criados anteriormente) ao serviço de back-end.

    Se a sua implementação incluir um conjunto de destino de cópia de segurança, marque o grupo de instâncias de comutação por falha correspondente com uma flag --failover quando o adicionar ao serviço de back-end.

  4. Configure uma regra de encaminhamento que aponte para o novo serviço de back-end.

    Pode escolher uma das seguintes opções:

    • Atualize a regra de encaminhamento existente para apontar para o serviço de back-end (recomendado).

    • Crie uma nova regra de encaminhamento que aponte para o serviço de back-end. Isto requer que crie um novo endereço IP para o front-end do equilibrador de carga. Em seguida, modifica as definições de DNS para fazer a transição sem problemas do endereço IP do balanceador de carga baseado no conjunto de destino antigo para o novo endereço IP.

Antes de começar

Instale a CLI do Google Cloud. Para uma vista geral completa da ferramenta, consulte o guia da ferramenta gcloud. Pode encontrar comandos relacionados com o equilíbrio de carga no grupo de comandos gcloud compute.

Se não executou o Google Cloud CLI anteriormente, execute primeiro o comando gcloud init para fazer a autenticação.

Este guia pressupõe que está familiarizado com o bash.

Identifique os back-ends e a regra de encaminhamento a migrar

  1. Para apresentar uma lista de todos os conjuntos de destino, execute o seguinte comando no Cloud Shell:

    gcloud compute target-pools list
    

    Tome nota do nome do conjunto de alvos a partir do qual quer migrar. Este nome é referido mais tarde como TARGET_POOL_NAME.

  2. Para apresentar uma lista de todas as instâncias de VM no conjunto de destino TARGET_POOL_NAME, execute o comando no Cloud Shell:

    gcloud compute target-pools describe TARGET_POOL_NAME \
      --region=us-central1
    

    Tome nota dos nomes das instâncias de VM. Estes nomes são referidos mais tarde como BACKEND_INSTANCE1, BACKEND_INSTANCE2, BACKEND_INSTANCE3 e BACKEND_INSTANCE4.

  3. Para listar as regras de encaminhamento no balanceador de carga de rede de passagem externo, execute o comando no Cloud Shell:

    gcloud compute forwarding-rules list
      --filter="target: ( TARGET_POOL_NAME )"
    

    Tome nota do nome da regra de encaminhamento. Este nome é referido mais tarde como FORWARDING_RULE.

Criar os grupos de instâncias não geridos zonais

Crie um grupo de instâncias não gerido zonal para cada uma das zonas nas quais tem back-ends. Consoante a sua configuração, pode dividir as suas instâncias por tantos grupos de instâncias quanto necessário. Para o nosso exemplo, estamos a usar apenas dois grupos de instâncias, um para cada zona, e a colocar todas as VMs de back-end numa 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.

Configure os grupos de 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. No painel do lado esquerdo, selecione Novo grupo de instâncias não gerido.
  4. Em Nome, introduza ig-us-1.
  5. Para Região, selecione us-central1.
  6. Para Zona, selecione us-central1-a.
  7. Selecione Rede e Sub-rede, consoante a localização das suas instâncias. Neste exemplo, as instâncias do grupo de destino existentes estão na rede default e na sub-rede.
  8. Para adicionar instâncias ao grupo de instâncias, na secção Instâncias de VM, selecione as duas instâncias BACKEND_INSTANCE1 e BACKEND_INSTANCE2.
  9. Clique em Criar.
  10. Repita estes passos para criar um segundo grupo de instâncias com as seguintes especificações:

    • Nome: ig-us-2
    • Região: us-central1
    • Zona: us-central1-c

    Adicione as duas instâncias BACKEND_INSTANCE3 e BACKEND_INSTANCE4 na zona us-central1-c a este grupo de instâncias.

  11. Se a sua implementação do balanceador de carga existente também tiver um conjunto de destinos de cópia de segurança, repita estes passos para criar um grupo de instâncias de comutação por falha separado para essas instâncias.

gcloud

  1. Crie um grupo de instâncias não gerido 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 não gerido na zona us-central1-c.

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

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

    gcloud compute instance-groups unmanaged add-instances ig-us-2 \
        --instances BACKEND_INSTANCE_3,BACKEND_INSTANCE_4 \
        --zone us-central1-c
    
  5. Se a sua implementação do balanceador de carga existente também tiver um conjunto de destinos de cópia de segurança, repita estes passos para criar um grupo de instâncias de comutação por falha separado para essas instâncias.

Crie uma verificação de funcionamento

Crie uma verificação de funcionamento para determinar o estado das instâncias nos seus grupos de instâncias. O seu balanceador de carga de rede de encaminhamento externo baseado em conjunto de destino existente tem provavelmente uma verificação de funcionamento HTTP antiga associada.

Pode criar uma nova verificação de estado que corresponda ao protocolo do tráfego que o equilibrador de carga vai distribuir. Os balanceadores de carga de rede de encaminhamento externo baseados em serviços de back-end podem usar verificações de estado TCP, SSL, HTTP(S) e HTTP/2.

Consola

  1. Na Google Cloud consola, aceda à página Verificações de estado.

    Aceda às verificações de saúde

  2. Clique em Criar verificação de funcionamento.
  3. No campo Nome, introduza network-lb-health-check.
  4. Defina o Âmbito como Regional.
  5. Para Região, selecione us-central1.
  6. Para Protocolo, selecione HTTP.
  7. Em Porta, introduza 80.
  8. Clique em Criar.

gcloud

  1. Para este exemplo, criamos uma verificação de funcionamento de HTTP não antiga para usar com o serviço de back-end.

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

Configure o serviço de back-end

Use uma das seguintes secções para criar o serviço de back-end. Se o seu Network Load Balancer de encaminhamento externo existente tiver um conjunto de destinos de cópia de segurança, tem de configurar uma taxa de comutação por falha ao criar o serviço de back-end.

Também tem de designar o grupo de instâncias de alternativa com a flag --failover quando adicionar back-ends ao serviço de back-end.

Implementações sem um conjunto de destino de cópia de segurança

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 network-lb-health-check \
       --health-checks-region us-central1 \
       --protocol TCP
    
  2. Adicione os dois grupos de instâncias (ig-us-1 e ig-us-2) como back-ends ao serviço de back-end.

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

Implementações com um conjunto de destino de substituição

gcloud

  1. Crie um serviço de back-end regional na região us-central1. Configure a taxa de comutação por falha do serviço de back-end para corresponder à taxa de comutação por falha configurada anteriormente para o conjunto de destino.

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

    gcloud compute backend-services add-backend network-lb-backend-service \
       --instance-group ig-us-1 \
       --instance-group-zone us-central1-a \
       --region us-central1
    
    gcloud compute backend-services add-backend network-lb-backend-service \
       --instance-group ig-us-2 \
       --instance-group-zone us-central1-c \
       --region us-central1
    
  3. Se criou um grupo de instâncias de comutação por falha, adicione-o ao serviço de back-end. Marque este back-end com a flag --failover quando o adicionar 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
    

Configure a regra de encaminhamento

Tem duas opções para configurar a regra de encaminhamento de modo a direcionar o tráfego para o novo serviço de back-end. Pode atualizar a regra de encaminhamento existente ou criar uma nova regra de encaminhamento com um novo endereço IP.

Use a flag set-target para atualizar a regra de encaminhamento existente de modo a apontar para o novo serviço de back-end.

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

Substitua FORWARDING_RULE pelo nome da regra de encaminhamento existente.

Crie uma nova regra de encaminhamento

Se não quiser atualizar a regra de encaminhamento existente, pode criar uma nova regra de encaminhamento com um novo endereço IP. Uma vez que um determinado endereço IP só pode ser associado a uma única regra de encaminhamento de cada vez, tem de modificar manualmente a definição de DNS para fazer a transição do tráfego recebido do endereço IP antigo para o novo.

Use o comando seguinte para criar uma nova regra de encaminhamento com um novo endereço IP. Pode usar a flag --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

Testar o balanceador de carga

Teste o balanceador de carga para confirmar que a regra de encaminhamento está a direcionar o tráfego recebido conforme esperado.

Procure o endereço IP externo do balanceador de carga

gcloud

Introduza o seguinte comando para ver o endereço IP externo da network-lb-forwarding-rule regra de encaminhamento usada pelo balanceador de carga.

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

Use o comando nc para aceder ao endereço IP externo

Neste exemplo, usamos o método de hash predefinido para a afinidade de sessão, pelo que os pedidos do comando nc são distribuídos aleatoriamente às VMs de back-end com base na porta de origem atribuída pelo seu sistema operativo.

  1. Para testar a conetividade, instale primeiro o Netcat no Linux executando o seguinte comando:

    $ sudo apt install netcat
    
  2. Repita o seguinte comando algumas vezes até ver todas as VMs de back-end a responder:

    $ nc IP_ADDRESS 80
    

Remova os recursos associados ao antigo equilibrador de carga

Depois de confirmar que o novo Network Load Balancer de encaminhamento externo funciona como esperado, pode eliminar os recursos do pool de destino antigo.

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

    Aceda a Balanceamento de carga

  2. Selecione o antigo equilibrador de carga associado ao grupo de destino e, em seguida, clique em Eliminar.
  3. Selecione as verificações de funcionamento que criou e, de seguida, clique em Eliminar balanceador de carga e os recursos selecionados.

O que se segue?