Configurar failover para balanceadores de carga de rede de passagem externa

Neste guia, usamos um exemplo para ensinar como configurar o failover para um balanceador de carga de rede de passagem externa com um serviço de back-end. Antes de seguir as instruções deste guia, familiarize-se com os itens abaixo:

Permissões

Para seguir este guia, você precisa criar instâncias e modificar uma rede em um projeto. É necessário ser proprietário ou editor de um projeto ou ter todos os papéis do IAM do Compute Engine a seguir:

Tarefa Papel obrigatório
Criar componentes do balanceador de carga Administrador de rede
Adicionar e remover regras de firewall Administrador de segurança
Criar instâncias Administrador da instância da computação

Para mais informações, consulte estes guias:

Instalação

Neste guia, mostramos como configurar e testar um balanceador de carga de rede de passagem externa que usa failover. Nas etapas desta seção, você fará as configurações do seguinte:

  1. VMs de back-end:
    • Um back-end principal em um grupo de instâncias não gerenciadas na zona us-west1-a
    • Um back-end de failover em um grupo de instâncias não gerenciadas na zona us-west1-c
  2. Regras de firewall que permitem conexões de entrada com VMs de back-end
  3. Uma VM cliente para testar conexões e verificar o comportamento do failover
  4. Os componentes do balanceador de carga de rede de passagem externa a seguir:
    • uma verificação de integridade do serviço de back-end
    • um serviço de back-end na região us-west1 para gerenciar a distribuição de conexões entre as VMs de back-end
    • Uma regra de encaminhamento e um endereço IP para o front-end do balanceador de carga

A arquitetura deste exemplo é a seguinte:

Failover com um balanceador de carga de rede de passagem externa.
Failover com um balanceador de carga de rede de passagem externa (clique para ampliar).

Como criar VMs de back-end e grupos de instâncias

Nesta etapa, você criará as VMs de back-end e os grupos de instâncias não gerenciadas:

  • O grupo de instâncias ig-a em us-west1-a é um back-end principal com duas VMs:
    • vm-a1
    • vm-a2
  • O grupo de instâncias ig-c em us-west1-c é um back-end de failover com duas VMs:
    • vm-c1
    • vm-c2

Os back-ends primário e de failover são colocados em zonas separadas para facilitar o entendimento das instruções e para processar o failover no caso de uma zona ficar inativa.

Cada VM primária e de backup é configurada para executar um servidor da Web Apache na porta TCP 80. Por padrão, o Apache é configurado para ser vinculado a qualquer endereço IP. Os balanceadores de carga de rede enviam pacotes preservando o IP de destino.

Certifique-se de que o software servidor em execução nas suas VMs principais e de backup faz detecções no endereço IP da regra de encaminhamento do balanceador de carga. O endereço IP de destino de um pacote entregue a uma VM de back-end por um balanceador de carga de rede é o endereço IP da regra de encaminhamento.

Para simplificar as instruções, todas as VMs primárias e de backup executam o Debian GNU/Linux 9.

Console

Criar VMs de back-end

  1. No console do Google Cloud, acesse a página Instâncias de VMs. Acessar instâncias de VM
  2. Repita as etapas a seguir para criar quatro VMs. Use estas combinações de nome e zona.
    • Nome: vm-a1, zona: us-west1-a
    • Nome: vm-a2, zona: us-west1-a
    • Nome: vm-c1, zona: us-west1-c
    • Nome: vm-c2, zona: us-west1-c
  3. Clique em Criar instância.
  4. Defina o Nome como indicado na etapa 2.
  5. Em Região, escolha us-west1 e escolha uma Zona, como indicado na etapa 2.
  6. Na seção Disco de inicialização, verifique se a imagem selecionada é Debian GNU/Linux 10 (buster). Clique em Escolher para alterar a imagem, se necessário.
  7. Clique em Opções avançadas.
  8. Clique em Rede e configure o seguinte campo:
    1. Em Tags de rede, insira network-lb.
  9. Clique em Gerenciamento. Insira o script a seguir no campo Script de inicialização. que é o mesmo para as quatro VMs:

    #! /bin/bash
    apt-get update
    apt-get install apache2 -y
    a2ensite default-ssl
    a2enmod ssl
    vm_hostname="$(curl -H "Metadata-Flavor:Google" \
    http://metadata.google.internal/computeMetadata/v1/instance/name)"
    echo "Page served from: $vm_hostname" | \
    tee /var/www/html/index.html
    systemctl restart apache2
    
  10. Clique em Criar.

Criar grupos de instâncias

  1. No Console do Google Cloud, acesse a página Grupos de instâncias.

    Acesse grupo de instâncias

  2. Repita as etapas a seguir para criar dois grupos de instâncias não gerenciadas com duas VMs cada. Use estas combinações.

    • Grupo de instâncias: ig-a, zona: us-west1-a, VMs: vm-a1 e vm-a2
    • Grupo de instâncias: ig-c, zona: us-west1-c, VMs: vm-c1 e vm-c2
  3. Clique em Criar grupo de instâncias.

  4. Clique em Novo grupo de instâncias não gerenciadas.

  5. Defina o Nome como indicado na etapa 2.

  6. Na seção Local, escolha us-west1 como Região e escolha uma Zona, conforme indicado na etapa 2.

  7. Em Rede, insira default.

  8. Na seção Instâncias de VM, adicione as VMs como indicado na etapa 2.

  9. Clique em Criar.

gcloud

  1. Para criar quatro VMs, execute o comando a seguir quatro vezes, usando as quatro combinações de VM-NAME e ZONE abaixo. O conteúdo do script é o mesmo para as quatro VMs.

    • VM-NAME de vm-a1 e ZONE de us-west1-a
    • VM-NAME de vm-a2 e ZONE de us-west1-a
    • VM-NAME de vm-c1 e ZONE de us-west1-c
    • VM-NAME de vm-c2 e ZONE de us-west1-c
    gcloud compute instances create VM-NAME \
        --zone=ZONE \
        --image-family=debian-10 \
        --image-project=debian-cloud \
        --tags=network-lb \
        --metadata=startup-script='#! /bin/bash
          apt-get update
          apt-get install apache2 -y
          a2ensite default-ssl
          a2enmod ssl
          vm_hostname="$(curl -H "Metadata-Flavor:Google" \
          http://metadata.google.internal/computeMetadata/v1/instance/name)"
          echo "Page served from: $vm_hostname" | \
          tee /var/www/html/index.html
          systemctl restart apache2'
    
  2. Crie os dois grupos de instâncias não gerenciadas em cada zona:

    gcloud compute instance-groups unmanaged create ig-a \
        --zone us-west1-a
    gcloud compute instance-groups unmanaged create ig-c \
        --zone us-west1-c
    
  3. Adicione as VMs aos grupos de instâncias apropriados:

    gcloud compute instance-groups unmanaged add-instances ig-a \
        --zone us-west1-a \
        --instances vm-a1,vm-a2
    gcloud compute instance-groups unmanaged add-instances ig-c \
        --zone us-west1-c \
        --instances vm-c1,vm-c2
    

Como configurar regras de firewall

Criar uma regra de firewall que permita que o tráfego externo alcance as instâncias de back-end.

Console

  1. No Console do Google Cloud, acesse a página políticas de Firewall.

    Acessar políticas de firewall

  2. Clique em Criar regra de firewall para criar uma regra que permita o tráfego de qualquer origem. Use os valores a seguir:

    1. Nome: allow-network-lb.
    2. Rede:default
    3. Prioridade: 1000
    4. Direção do tráfego: entrada
    5. Ação na correspondência: permitir.
    6. Destinos: tags de destino especificadas
    7. Tags de meta: network-lb
    8. Filtro de origem: intervalos IPv4
    9. Intervalos de IPv4 de origem: 0.0.0.0/0, que permitem o tráfego de qualquer origem. Isso permite que as sondagens de verificação de integridade e tráfego externo alcancem as instâncias de back-end.
    10. Protocolos e portas: escolha Protocolos e portas especificados. Marque a caixa de seleção TCP e insira 80.
  3. Clique em Criar.

  4. Clique em Criar regra de firewall novamente para criar a regra e permitir conexões SSH de entrada para as instâncias. Use os valores a seguir:

    1. Name: allow-ssh
    2. Rede: default
    3. Prioridade: 1000
    4. Direção do tráfego: entrada
    5. Ação na correspondência: permitir
    6. Destinos: tags de destino especificadas
    7. Tags de meta: network-lb
    8. Filtro de origem: intervalos IPv4
    9. Intervalos IPv4 de origem: 0.0.0.0/0
    10. Protocolos e portas: escolha Protocolos e portas especificados. Marque a caixa de seleção TCP e insira 22.
  5. Clique em Criar.

gcloud

gcloud compute firewall-rules create allow-network-lb \
    --target-tags network-lb \
    --allow tcp:80
gcloud compute firewall-rules create allow-ssh \
    --target-tags network-lb \
    --allow tcp:22

Como configurar componentes do balanceador de carga

Estas etapas configuram os seguintes componentes do balanceador de carga de rede de passagem externa:

  • Verificação de integridade: no exemplo, é usada uma verificação de integridade de HTTP que apenas busca uma resposta HTTP 200 (OK).

  • Serviço de back-end: como o exemplo transmite tráfego HTTP por meio do balanceador de carga interno, a configuração especifica TCP, e não UDP. Para ilustrar o failover, esse serviço de back-end tem uma proporção de failover de 0.75.

  • Regra de encaminhamento: neste exemplo, criamos uma única regra de encaminhamento interna.

Console

Iniciar a configuração

  1. No console do Google Cloud, acesse a página Balanceamento de carga.

    Acessar o "Balanceamento de carga"

  2. Clique em Criar balanceador de carga.
  3. Em Tipo de balanceador de carga, selecione Balanceador de carga de rede (TCP/UDP/SSL) e clique em Próxima.
  4. Em Proxy ou passagem, selecione Balanceador de carga de passagem e clique em Próxima.
  5. Em Voltado ao público ou interno, selecione Voltado ao público (externo) e clique em Próxima.
  6. Clique em Configurar.

Configuração de back-end

  1. Na página Criar balanceador de carga de rede de passagem externa, insira um Nome de tcp-network-lb para o novo balanceador de carga.
  2. Clique em Configuração de back-end. O Nome do balanceador de carga que você inseriu anteriormente é exibido, mas não é possível modificá-lo.
  3. Clique em Configuração de back-end e faça as alterações a seguir:
    1. Em Região, selecione us-west1.
    2. Em Back-ends, use o menu suspenso Grupo de instâncias para selecionar ig-a. Clique em Concluído.
    3. Clique em Adicionar back-end e repita esta etapa para adicionar ig-c. Marque a caixa de seleção Usar este grupo de instâncias como grupo de failover para backup.
    4. Em Verificação de integridade, escolha Criar outra verificação de integridade ou Criar outra verificação de integridade, insira as informações a seguir:
      • Name: hc-http-80
      • Protocolo: TCP
      • Porta: 80
    5. Clique em Salvar e continuar.
    6. Clique em Configurações avançadas.
    7. Em Proporção de failover, digite 0.75.
    8. Verifique se há uma marca de seleção azul ao lado de Configuração do back-end antes de continuar.

Configuração de front-end

  1. Clique em Configuração de front-end.
  2. Informe um Nome de network-lb-forwarding-rule.
  3. Em IP, clique no menu suspenso e selecione Criar endereço IP.
    1. Na tela Reservar um novo endereço IP estático, insira o Nome network-lb-ip.
    2. Clique em Reservar.
  4. Escolha Individual e insira 80 no Número da porta.
  5. Clique no botão Concluído.

    Um círculo azul com uma marca de seleção à esquerda de Configuração de front-end indica o sucesso da configuração.

Analisar a configuração

  1. Clique no botão Analisar e finalizar para verificar todas as configurações do balanceador de carga.
  2. Se as configurações estiverem corretas, clique em Criar. Leva alguns minutos para que o balanceador de carga seja criado.

    Na tela do balanceamento de carga, na coluna "Back-end" do novo balanceador de carga, você verá uma marca de seleção verde. Ela indica que o novo balanceador de carga é íntegro.

gcloud

  1. Crie um endereço IP externo estático para o balanceador de carga.

    gcloud compute addresses create network-lb-ip \
        --region us-west1
    
  2. Crie uma nova verificação de integridade HTTP para testar a conectividade TCP com as VMs na porta 80.

    gcloud compute health-checks create http hc-http-80 \
        --region us-west1 \
        --port 80
    
  3. Crie o serviço de back-end do tráfego HTTP:

    gcloud compute backend-services create network-lb-backend-service \
        --protocol tcp \
        --region us-west1 \
        --health-checks hc-http-80 \
        --health-checks-region us-west1 \
        --failover-ratio 0.75
    
  4. Adicione o back-end primário ao serviço de back-end:

    gcloud compute backend-services add-backend network-lb-backend-service \
        --region us-west1 \
        --instance-group ig-a \
        --instance-group-zone us-west1-a
    
  5. Adicione o back-end de failover ao serviço de back-end:

    gcloud compute backend-services add-backend network-lb-backend-service \
        --region us-west1 \
        --instance-group ig-c \
        --instance-group-zone us-west1-c \
        --failover
    
  6. Crie uma regra de encaminhamento do serviço de back-end. Use o endereço IP reservado na etapa 1 como o endereço IP externo estático do balanceador de carga.

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

Teste

Nos testes a seguir, veja como validar a configuração do balanceador de carga e conheça o comportamento esperado dele.

Enviar tráfego ao balanceador de carga

Este procedimento envia tráfego externo ao balanceador de carga. Use este procedimento para concluir os outros testes.

  1. Conecte-se à instância da VM cliente.

    gcloud compute forwarding-rules describe network-lb-forwarding-rule \
        --region us-west1
    
  2. Faça uma solicitação da Web para o balanceador de carga usando curl para contatar o endereço IP dele.

    curl http://IP_ADDRESS
    
  3. Observe o texto retornado pelo comando curl. O nome da VM de back-end que gera a resposta é exibido nesse texto. Por exemplo: Page served from: vm-a1.

Como testar o estado inicial

Depois de configurar o exemplo de balanceador de carga, todas as quatro VMs de back-end serão íntegras:

  • As duas VMs principais, vm-a1 e vm-a2
  • As duas VMs de backup, vm-c1 e vm-c2

Siga o procedimento de teste para enviar tráfego para o balanceador de carga. Repita a segunda etapa algumas vezes. O comportamento esperado é que o tráfego seja exibido pelas duas VMs principais, vm-a1 e vm-a2, porque ambas estão íntegras. Você verá que cada VM principal exibe uma resposta quase que na metade do tempo. Isso acontece porque nenhuma afinidade de sessão foi configurada no balanceador de carga.

Como testar o failover

No teste a seguir, é simulada a falha de vm-a1 para que você veja comportamento do failover.

  1. Conecte-se à VM vm-a1.

    gcloud compute ssh vm-a1 --zone us-west1-a
    
  2. Interrompa o servidor da Web Apache. Depois de 10 segundos, o Google Cloud considera a VM como não íntegra. A verificação de integridade hc-http-80 que você criou durante a configuração usa o intervalo de verificação padrão de cinco segundos e o limite de não integridade de duas sondagens com falha consecutivas.

    sudo apachectl stop
    
  3. Siga o procedimento de teste para enviar tráfego ao balanceador de carga. Repita a segunda etapa algumas vezes. O comportamento esperado é que o tráfego seja exibido pelas duas VMs de backup, vm-c1 e vm-c2. Como apenas uma VM principal (vm-a2) está íntegra, a proporção entre VMs principais íntegras e totais é de 0.5. Esse número é menor que o limite de failover de 0.75. Portanto, o Google Cloud reconfigurou o pool ativo do balanceador de carga para usar as VMs de backup. Você verá cada VM de backup exibir uma resposta quase que na metade do tempo, desde que nenhuma afinidade de sessão tenha sido configurada para o balanceador de carga.

Como testar o failback

No teste a seguir, será reiniciado o servidor Apache em vm-a1 para simular o failback.

  1. Conecte-se à VM vm-a1.

    gcloud compute ssh vm-a1 --zone us-west1-a
    
  2. Inicie o servidor da Web Apache e aguarde 10 segundos.

    sudo apachectl start
    
  3. Siga o procedimento de teste do cliente. Repita a segunda etapa algumas vezes. O comportamento esperado é que o tráfego seja exibido pelas duas VMs principais, vm-a1 e vm-a2. Quando ambas as VMs principais estão íntegras, a proporção entre as íntegras e totais é de 1.0, superior ao limite de failover de 0.75. Portanto, o Google Cloud configurou o pool ativo para voltar usar as VMs principais.

Como adicionar mais VMs de back-end

Nesta seção, mais VMs primárias e de backup são adicionadas ao balanceador de carga para ampliar o exemplo de configuração. Isso é feito ao criar mais dois grupos de instâncias de back-end para demonstrar que é possível distribuir VMs primárias e de backup entre várias zonas na mesma região:

  • Um terceiro grupo de instâncias, ig-d em us-west1-c, é exibido como um back-end principal com duas VMs:
    • vm-d1
    • vm-d2
  • Um quarto grupo de instâncias, ig-b em us-west1-a, é exibido como um back-end de failover com duas VMs:
    • vm-b1
    • vm-b2

A arquitetura modificada deste exemplo é assim:

Failover do balanceador de carga de rede de passagem externa de várias zonas.
Failover de balanceador de carga de rede de passagem externa em várias zonas (clique para ampliar)
.

Criar mais VMs e grupos de instâncias

Siga estas etapas para criar mais VMs primárias e de backup, além dos grupos de instâncias não gerenciadas correspondentes.

Console

Criar VMs de back-end

  1. No console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar instâncias de VM

  2. Repita as etapas a seguir para criar quatro VMs. Use estas combinações de nome e zona.

    • Nome: vm-b1, zona: us-west1-a
    • Nome: vm-b2, zona: us-west1-a
    • Nome: vm-d1, zona: us-west1-c
    • Nome: vm-d2, zona: us-west1-c
  3. Clique em Criar instância.

  4. Defina o Nome como indicado na etapa 2.

  5. Em Região, escolha us-west1 e escolha uma Zona, como indicado na etapa 2.

  6. Na seção Disco de inicialização, verifique se a imagem selecionada é Debian GNU/Linux 9 (extensão). Clique em Escolher para alterar a imagem, se necessário.

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

  8. Clique em Rede e configure o seguinte campo:

    1. Em Tags de rede, insira network-lb.
  9. Clique em Gerenciamento. Insira o script a seguir no campo Script de inicialização. que é o mesmo para as quatro VMs:

    #! /bin/bash
    apt-get update
    apt-get install apache2 -y
    a2ensite default-ssl
    a2enmod ssl
    vm_hostname="$(curl -H "Metadata-Flavor:Google" \
    http://metadata.google.internal/computeMetadata/v1/instance/name)"
    echo "Page served from: $vm_hostname" | \
    tee /var/www/html/index.html
    systemctl restart apache2
    
  10. Clique em Criar.

Criar grupos de instâncias

  1. No Console do Google Cloud, acesse a página Grupos de instâncias.

    Acesse grupo de instâncias

  2. Repita as etapas a seguir para criar dois grupos de instâncias não gerenciadas com duas VMs cada. Use estas combinações.

    • Grupo de instâncias: ig-b, zona: us-west1-a, VMs: vm-b1 e vm-b2
    • Grupo de instâncias: ig-d, zona: us-west1-c, VMs: vm-d1 e vm-d2
  3. Clique em Criar grupo de instâncias.

  4. Clique em Novo grupo de instâncias não gerenciadas.

  5. Defina o Nome como indicado na etapa 2.

  6. Na seção Local, escolha us-west1 como Região e escolha uma Zona, conforme indicado na etapa 2.

  7. Em Rede, insira default.

  8. Na seção Instâncias de VM, adicione as VMs como indicado na etapa 2.

  9. Clique em Criar.

gcloud

  1. Para criar quatro VMs, execute o comando a seguir quatro vezes, usando as quatro combinações de VM-NAME e ZONE abaixo. O conteúdo do script é o mesmo para as quatro VMs.

    • VM-NAME de vm-b1 e ZONE de us-west1-a
    • VM-NAME de vm-b2 e ZONE de us-west1-a
    • VM-NAME de vm-d1 e ZONE de us-west1-c
    • VM-NAME de vm-d2 e ZONE de us-west1-c
    gcloud compute instances create VM-NAME \
        --zone=ZONE \
        --image-family=debian-10 \
        --image-project=debian-cloud \
        --tags=network-lb \
        --metadata=startup-script='#! /bin/bash
          apt-get update
          apt-get install apache2 -y
          a2ensite default-ssl
          a2enmod ssl
          vm_hostname="$(curl -H "Metadata-Flavor:Google" \
          http://metadata.google.internal/computeMetadata/v1/instance/name)"
          echo "Page served from: $vm_hostname" | \
          tee /var/www/html/index.html
          systemctl restart apache2'
    
  2. Crie os dois grupos de instâncias não gerenciadas em cada zona:

    gcloud compute instance-groups unmanaged create ig-b \
        --zone us-west1-a
    gcloud compute instance-groups unmanaged create ig-d \
        --zone us-west1-c
    
  3. Adicione as VMs aos grupos de instâncias apropriados:

    gcloud compute instance-groups unmanaged add-instances ig-b \
        --zone us-west1-a \
        --instances vm-b1,vm-b2
    gcloud compute instance-groups unmanaged add-instances ig-d \
        --zone us-west1-c \
        --instances vm-d1,vm-d2
    

Como adicionar um back-end primário

Use este procedimento como um modelo para adicionar um grupo de instâncias não gerenciadas a um serviço de back-end do balanceador de carga de rede atual como back-end principal. No exemplo de configuração, o procedimento mostra como adicionar o grupo de instâncias ig-d como um back-end principal ao balanceador de carga network-lb.

Console

Edite a configuração do balanceador de carga para adicionar um back-end principal.

  1. No Console do Google Cloud, acesse a página Balanceamento de carga.

    Acessar o "Balanceamento de carga"

  2. Clique no balanceador de carga que você quer modificar.

  3. Clique em Editar.

  4. Clique em Configuração de back-end e faça as alterações a seguir:

    1. Em Back-ends, clique em Adicionar back-end.
    2. Na lista suspensa, selecione o grupo de instâncias a ser adicionado como back-end primário. Nesse caso, ig-d.
    3. Clique em Concluído.
    4. Verifique se há uma marca de seleção azul ao lado de Configuração do back-end antes de continuar.

Analise a configuração

  1. Clique no botão Analisar e finalizar e confirme se o novo back-end principal está visível em Back-end.
  2. Se as configurações estiverem corretas, clique em Criar. Leva alguns minutos para que o balanceador de carga seja criado.

    Na tela do balanceamento de carga, na coluna "Back-end" do novo balanceador de carga, você verá uma marca de seleção verde. Ela indica que o novo balanceador de carga é íntegro.

gcloud

Use o comando gcloud a seguir para adicionar um back-end primário a um serviço de back-end do balanceador de carga de rede externo de passagem externa.

gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
   --instance-group INSTANCE_GROUP_NAME \
   --instance-group-zone INSTANCE_GROUP_ZONE \
   --region REGION

onde:

  • BACKEND_SERVICE_NAME é o nome do serviço de back-end do balanceador de carga. No exemplo, use network-lb-backend-service;
  • INSTANCE_GROUP_NAME é o nome do grupo de instâncias a ser adicionado como back-end primário. No exemplo, use ig-d;
  • INSTANCE_GROUP_ZONE é a zona em que o grupo de instâncias é definido. No exemplo, use us-west1-c;
  • REGION é a região do balanceador de carga; No exemplo, use us-west1.

Como adicionar um back-end de failover

Use este procedimento como um modelo para adicionar um grupo de instâncias não gerenciadas ao serviço de back-end de um balanceador de carga de rede atual como back-end de failover. No exemplo de configuração, o procedimento mostra como adicionar o grupo de instâncias ig-b como um back-end de failover ao balanceador de carga network-lb.

Console

Edite a configuração do balanceador de carga para adicionar um back-end principal.

  1. No Console do Google Cloud, acesse a página Balanceamento de carga.

    Acessar o "Balanceamento de carga"

  2. Clique no balanceador de carga que você quer modificar.

  3. Clique em Editar.

  4. Clique em Configuração de back-end e faça as alterações a seguir:

    1. Em Back-ends, clique em Adicionar back-end.
    2. Na lista suspensa, selecione o grupo de instâncias a ser adicionado como back-end de failover. Nesse caso, ig-b.
    3. Marque a caixa de seleção Usar este grupo de instâncias como grupo de failover para backup.
    4. Clique em Concluído.
    5. Verifique se há uma marca de seleção azul ao lado de Configuração do back-end antes de continuar.

Analise a configuração

  1. Clique no botão Analisar e finalizar e confirme se o novo back-end principal está visível em Back-end.
  2. Se as configurações estiverem corretas, clique em Criar. Leva alguns minutos para que o balanceador de carga seja criado.

    Na tela do balanceamento de carga, na coluna "Back-end" do novo balanceador de carga, você verá uma marca de seleção verde. Ela indica que o novo balanceador de carga é íntegro.

gcloud

Use o comando gcloud a seguir para adicionar um back-end de failover a um serviço de back-end de balanceador de carga de rede externo existente.

gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
   --instance-group INSTANCE_GROUP_NAME \
   --instance-group-zone INSTANCE_GROUP_ZONE \
   --region REGION \
   --failover

onde:

  • BACKEND_SERVICE_NAME é o nome do serviço de back-end do balanceador de carga. No exemplo, use network-lb-backend-service;
  • INSTANCE_GROUP_NAME é o nome do grupo de instâncias a ser adicionado como back-end de failover. No exemplo, use ig-b;
  • INSTANCE_GROUP_ZONE é a zona em que o grupo de instâncias é definido. No exemplo, use us-west1-a;
  • REGION é a região do balanceador de carga; No exemplo, use us-west1.

Como converter um back-end primário ou de failover

É possível converter um back-end primário em um de failover ou vice-versa sem precisar remover o grupo de instâncias do serviço de back-end do balanceador de carga de rede.

gcloud

Use o comando gcloud a seguir para converter um back-end principal em um back-end de failover:

gcloud compute backend-services update-backend BACKEND_SERVICE_NAME \
   --instance-group INSTANCE_GROUP_NAME \
   --instance-group-zone INSTANCE_GROUP_ZONE \
   --region REGION \
   --failover

Use o comando gcloud a seguir para converter um back-end de failover em um back-end principal:

gcloud compute backend-services update-backend BACKEND_SERVICE_NAME \
   --instance-group INSTANCE_GROUP_NAME \
   --instance-group-zone INSTANCE_GROUP_ZONE \
   --region REGION \
   --no-failover

em que:

  • BACKEND_SERVICE_NAME é o nome do serviço de back-end do balanceador de carga;
  • INSTANCE_GROUP_NAME é o nome do grupo de instâncias;
  • INSTANCE_GROUP_ZONE é a zona em que o grupo de instâncias é definido;
  • REGION é a região do balanceador de carga.

Como configurar políticas de failover

Nesta seção, descrevemos como gerenciar uma política de failover de um serviço de back-end do balanceador de carga de rede externo. Uma política de failover consiste no seguinte:

  • Proporção de failover
  • Descarte do tráfego quando todas as VMs de back-end não forem íntegras
  • Redução da conexão em failover

Para mais informações sobre os parâmetros de uma política de failover, consulte:

Como definir uma política de failover

As instruções a seguir descrevem como definir a política de failover de um balanceador de carga de rede de passagem externa atual.

gcloud

Para definir uma política de failover usando a CLI gcloud, atualize o serviço de back-end do balanceador de carga:

gcloud compute backend-services update BACKEND_SERVICE_NAME \
   --region REGION \
   --failover-ratio FAILOVER_RATIO \
   --connection-drain-on-failover \
   --connection-draining-timeout=CONNECTION_DRAINING_TIMEOUT \
   --drop-traffic-if-unhealthy

onde:

  • BACKEND_SERVICE_NAME é o nome do serviço de back-end do balanceador de carga. No exemplo, use network-lb;
  • REGION é a região do balanceador de carga; No exemplo, use us-west1.
  • FAILOVER_RATIO é a proporção de failover. Os valores possíveis estão entre 0.0 e 1.0, inclusive. No exemplo, use 0.75;
  • CONNECTION_DRAINING_TIMEOUT permite que as conexões TCP persistam, mesmo em VMs que não estão mais no pool ativo, até o tempo limite de diminuição da conexão.

Como visualizar uma política de failover

Nas instruções a seguir, descrevemos como visualizar a política de failover atual de um balanceador de carga de rede de passagem externa.

gcloud

Para listar as configurações da política de failover usando a CLI gcloud, use o seguinte comando: As configurações não definidas em uma política de failover utilizam os valores padrão.

gcloud compute backend-services describe BACKEND_SERVICE_NAME \
   --region REGION \
   --format="get(failoverPolicy)"

em que:

  • BACKEND_SERVICE_NAME é o nome do serviço de back-end do balanceador de carga. No exemplo, use network-lb-backend-service;
  • REGION é a região do balanceador de carga; No exemplo, use us-west1.

A seguir