Configure a comutação por falha para balanceadores de carga de rede de encaminhamento externos

Este guia usa um exemplo para ensinar a configurar a comutação por falha para um equilibrador de carga de passagem externo com um serviço de back-end. Antes de seguir este guia, familiarize-se com o seguinte:

Autorizações

Para seguir este guia, tem de criar instâncias e modificar uma rede num projeto. Deve 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 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:

Configuração

Este guia mostra como configurar e testar um Network Load Balancer de encaminhamento externo que usa a comutação por falha. Os passos nesta secção descrevem como configurar o seguinte:

  1. VMs de back-end:
    • Um back-end principal num grupo de instâncias não gerido na zona us-west1-a
    • Um back-end de alternativa num grupo de instâncias não gerido na zona us-west1-c
  2. Regras de firewall que permitem ligações recebidas a VMs de back-end
  3. Uma VM do cliente para testar as ligações e observar o comportamento de comutação por falha
  4. Os seguintes componentes do balanceador de carga de rede de encaminhamento externo:
    • Uma verificação de funcionamento para o serviço de back-end
    • Um serviço de back-end na região us-west1 para gerir a distribuição de ligaçõ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 para este exemplo tem o seguinte aspeto:

Comutação por falha com um balanceador de carga de rede de passagem externo.
Comutação por falha com um balanceador de carga de rede de passagem externo (clique para aumentar).

Criar VMs de back-end e grupos de instâncias

Neste passo, vai criar as VMs de back-end e os grupos de instâncias não geridos:

  • 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 comutação por falha com duas VMs:
    • vm-c1
    • vm-c2

Os back-ends principal e de ativação pós-falha são colocados em zonas separadas para clareza das instruções e para processar a ativação pós-falha caso uma zona fique inativa.

Cada VM principal e de cópia de segurança está configurada para executar um servidor Web Apache na porta 80 de TCP. Por predefinição, o Apache está configurado para ser associado a qualquer endereço IP. Os balanceadores de carga de rede fornecem pacotes preservando o IP de destino.

Certifique-se de que o software do servidor em execução nas VMs principal e de cópia de segurança está a ouvir 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 de passagem externo é o endereço IP da regra de encaminhamento.

Para simplificar as instruções, todas as VMs principais e de cópia de segurança executam o Debian GNU/Linux 9.

Consola

Crie VMs de back-end

  1. Na Google Cloud consola, aceda à página Instâncias de VM. Aceder às instâncias de VM
  2. Repita os passos seguintes para criar quatro VMs, usando as seguintes combinações de nomes e zonas.
    • 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 conforme indicado no passo 2.
  5. Para a Região, escolha us-west1 e escolha uma Zona, conforme indicado no passo 2.
  6. Na secção Disco de arranque, certifique-se de que a imagem selecionada é o Debian GNU/Linux 12 (bookworm). 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. Para etiquetas de rede, introduza network-lb.
  9. Clique em Gestão. Introduza o seguinte script no campo Script de arranque. O conteúdo do script é idêntico para todas 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.

Crie grupos de instâncias

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

    Aceda a Grupos de instâncias

  2. Repita os passos seguintes para criar dois grupos de instâncias não geridos, cada um com duas VMs, usando 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 gerido.

  5. Defina o Nome conforme indicado no passo 2.

  6. Na secção Localização, escolha us-west1 para a Região e, em seguida, escolha uma Zona, conforme indicado no passo 2.

  7. Para Rede, introduza default.

  8. Na secção Instâncias de VM, adicione as VMs conforme indicado no passo 2.

  9. Clique em Criar.

gcloud

  1. Crie quatro VMs executando o seguinte comando quatro vezes, usando estas quatro combinações para VM-NAME e ZONE. O conteúdo do script é idêntico para todas 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-12 \
        --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 geridos 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 adequados:

    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
    

Configurar regras de firewall

Crie uma regra de firewall que permita que o tráfego externo alcance 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. Clique em Criar regra de firewall para criar a regra que permite tráfego de qualquer origem. Use os seguintes valores:

    1. Nome: allow-network-lb.
    2. Rede:default
    3. Prioridade: 1000
    4. Sentido do tráfego: entrada
    5. Ação na correspondência: permitir.
    6. Objetivos: etiquetas de objetivo especificadas
    7. Etiquetas de segmentação: network-lb
    8. Filtro de origem: intervalos IPv4
    9. Intervalos de IPv4 de origem: 0.0.0.0/0, que permite tráfego de qualquer origem. Isto permite que o tráfego externo e as sondagens de verificação de estado alcancem as instâncias de back-end.
    10. Protocolos e portas: escolha Protocolos e portas especificados. Selecione a caixa de verificação TCP e introduza 80.
  3. Clique em Criar.

  4. Clique novamente em Criar regra de firewall para criar a regra que permite ligações SSH de entrada às instâncias. Use os seguintes valores:

    1. Nome: allow-ssh
    2. Rede: default
    3. Prioridade: 1000
    4. Sentido do tráfego: entrada
    5. Ação na correspondência: permitir
    6. Objetivos: etiquetas de objetivo especificadas
    7. Etiquetas de segmentação: 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. Selecione a caixa de verificação TCP e introduza 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

Configurar componentes do balanceador de carga

Estes passos configuram os seguintes componentes do balanceador de carga de rede de encaminhamento externo:

  • Verificação de funcionamento: este exemplo usa uma verificação de funcionamento de HTTP que verifica simplesmente uma resposta HTTP 200 (OK).

  • Serviço de back-end: uma vez que o exemplo passa tráfego HTTP através do balanceador de carga, a configuração especifica TCP e não UDP. Para ilustrar a comutação por falha, este serviço de back-end tem uma taxa de comutação por falha de 0.75.

  • Regra de encaminhamento: este exemplo cria uma única regra de encaminhamento.

Consola

Inicie a configuração

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

    Aceda ao 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 Passagem do balanceador de carga e clique em Seguinte.
  5. Para Público ou interno, selecione Público (externo) e clique em Seguinte.
  6. Clique em Configurar.

Configuração do back-end

  1. Na página Crie um balanceador de carga de rede de encaminhamento externo, introduza um Nome de tcp-network-lb para o novo balanceador de carga.
  2. Clique em Configuração de back-end. O nome do equilibrador de carga que introduziu anteriormente é apresentado, mas não é modificável.
  3. Clique em Configuração de back-end e faça as seguintes alterações:
    1. Para a Região, selecione us-west1.
    2. Em Back-ends, use o menu pendente Grupo de instâncias para selecionar ig-a. Clique em Concluído.
    3. Clique em Adicionar back-end e repita este passo para adicionar ig-c. Selecione a caixa de verificação Use this instance group as a failover group for backup (Usar este grupo de instâncias como um grupo de alternativa para a cópia de segurança).
    4. Em Verificação de funcionamento, escolha Criar outra verificação de funcionamento ou Criar outra verificação de funcionamento, introduza as seguintes informações:
      • Nome: hc-http-80
      • Protocolo: TCP
      • Porta: 80
    5. Clique em Guardar e continuar.
    6. Clique em Configurações avançadas.
    7. Para Rácio de alternativa, introduza 0.75.
    8. Verifique se existe uma marca de verificação azul junto a Configuração de back-end antes de continuar.

Configuração da interface

  1. Clique em Configuração do front-end.
  2. Introduza um Nome de network-lb-forwarding-rule.
  3. Em IP, clique no menu pendente e selecione Criar endereço IP.
    1. No ecrã Reserve um novo endereço IP estático, atribua um Nome de network-lb-ip.
    2. Clique em Reservar.
  4. Escolha Único e introduza 80 para o Número da porta.
  5. Clique no botão Concluído.

    Um círculo azul com uma marca de verificação à esquerda de Configuração do front-end indica uma configuração bem-sucedida.

Reveja a configuração

  1. Clique no botão Rever e finalizar para verificar todas as definições de configuração do equilibrador de carga.
  2. Se as definições estiverem corretas, clique em Criar. Demora alguns minutos a criar o balanceador de carga.

    No ecrã de equilíbrio de carga, na coluna Backend do novo equilibrador de carga, deve ver uma marca de verificação verde a indicar que o novo equilibrador de carga está em bom estado.

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 funcionamento de HTTP para testar a conetividade TCP às 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 para o 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 principal 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 alternativa 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 para o serviço de back-end. Use o endereço IP reservado no passo 1 como o endereço IP externo estático do equilibrador 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
    

Testes

Estes testes mostram como validar a configuração do equilibrador de carga e saber mais sobre o respetivo comportamento esperado.

Envie tráfego para o balanceador de carga

Este procedimento envia tráfego externo para o balanceador de carga. Vai usar este procedimento para concluir os outros testes.

  1. Ligue-se à instância de VM do cliente.

    gcloud compute forwarding-rules describe network-lb-forwarding-rule \
        --region us-west1
    
  2. Faça um pedido Web ao equilibrador de carga através de curl para contactar o respetivo endereço IP.

    curl http://IP_ADDRESS
    
  3. Tenha em atenção o texto devolvido pelo comando curl. O nome da VM de back-end que gera a resposta é apresentado nesse texto; por exemplo: Page served from: vm-a1

Testar o estado inicial

Depois de configurar o balanceador de carga de exemplo, todas as quatro VMs de back-end devem estar em bom estado:

  • As duas VMs principais, vm-a1 e vm-a2
  • As duas VMs de cópia de segurança, vm-c1 e vm-c2

Siga o procedimento de teste para enviar tráfego para o balanceador de carga. Repita o segundo passo algumas vezes. O comportamento esperado é que o tráfego seja servido pelas duas VMs principais, vm-a1 e vm-a2, porque ambas estão em bom estado. Deve ver cada VM principal a fornecer uma resposta aproximadamente metade das vezes porque não foi configurada nenhuma afinidade de sessão para este equilibrador de carga.

Testar a comutação por falha

Este teste simula a falha de vm-a1 para que possa observar o comportamento de comutação por falha.

  1. Estabeleça ligação à VM vm-a1.

    gcloud compute ssh vm-a1 --zone us-west1-a
    
  2. Pare o servidor Web Apache. Após dez segundos, Google Cloud considera que esta VM não está em bom estado. (A verificação de funcionamento hc-http-80 que criou na configuração usa o intervalo de verificação predefinido de cinco segundos e o limite não saudável de duas sondagens com falhas consecutivas.)

    sudo apachectl stop
    
  3. Siga o procedimento de teste para enviar tráfego para o balanceador de carga. Repita o segundo passo algumas vezes. O comportamento esperado é que o tráfego seja agora publicado pelas duas VMs de cópia de segurança, vm-c1 e vm-c2. Uma vez que apenas uma VM principal, vm-a2, está em bom estado, a proporção de VMs principais em bom estado em relação ao total de VMs principais é de 0.5. Este número é inferior ao limite de comutação por falha de 0.75, pelo que Google Cloud reconfigurou o conjunto ativo do equilibrador de carga para usar as VMs de cópia de segurança. Deve ver cada VM de backup a fornecer uma resposta aproximadamente metade das vezes desde que não tenha sido configurada nenhuma afinidade de sessão para este equilibrador de carga.

Teste de reversão

Este teste simula a reposição reiniciando o servidor Apache em vm-a1.

  1. Estabeleça ligação à VM vm-a1.

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

    sudo apachectl start
    
  3. Siga o procedimento de teste do cliente. Repita o segundo passo algumas vezes. O comportamento esperado é que o tráfego seja publicado pelas duas VMs principais, vm-a1 e vm-a2. Com ambas as VMs principais em bom estado, a relação entre VMs principais em bom estado e o total de VMs principais é 1.0, superior ao limite de comutação por falha de 0.75, pelo que o Google Cloud configurou o conjunto ativo para usar novamente as VMs principais.

Adicionar mais VMs de back-end

Esta secção expande a configuração de exemplo adicionando mais VMs primárias e de cópia de segurança ao balanceador de carga. Para tal, cria mais dois grupos de instâncias de back-end para demonstrar que pode distribuir VMs primárias e de cópia de segurança por várias zonas na mesma região:

  • Um terceiro grupo de instâncias, ig-d em us-west1-c, funciona como um back-end principal com duas VMs:
    • vm-d1
    • vm-d2
  • Um quarto grupo de instâncias, ig-b em us-west1-a, funciona como um back-end de comutação por falha com duas VMs:
    • vm-b1
    • vm-b2

A arquitetura modificada para este exemplo tem o seguinte aspeto:

Failover do balanceador de carga de rede de encaminhamento externo multizona.
Comutação por falha do Network Load Balancer de passagem externa de várias zonas (clique para aumentar).

Crie VMs e grupos de instâncias adicionais

Siga estes passos para criar as VMs primárias e de backup adicionais, bem como os respetivos grupos de instâncias não geridos.

Consola

Crie VMs de back-end

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

    Aceder às instâncias de VM

  2. Repita os passos seguintes para criar quatro VMs, usando as seguintes combinações de nomes e zonas.

    • 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 conforme indicado no passo 2.

  5. Para a Região, escolha us-west1 e escolha uma Zona, conforme indicado no passo 2.

  6. Na secção Disco de arranque, certifique-se de que a imagem selecionada é o Debian GNU/Linux 9 Stretch. 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. Para etiquetas de rede, introduza network-lb.
  9. Clique em Gestão. Introduza o seguinte script no campo Script de arranque. O conteúdo do script é idêntico para todas 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.

Crie grupos de instâncias

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

    Aceda a Grupos de instâncias

  2. Repita os passos seguintes para criar dois grupos de instâncias não geridos, cada um com duas VMs, usando 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 gerido.

  5. Defina o Nome conforme indicado no passo 2.

  6. Na secção Localização, escolha us-west1 para a Região e, em seguida, escolha uma Zona, conforme indicado no passo 2.

  7. Para Rede, introduza default.

  8. Na secção Instâncias de VM, adicione as VMs conforme indicado no passo 2.

  9. Clique em Criar.

gcloud

  1. Crie quatro VMs executando o seguinte comando quatro vezes, usando estas quatro combinações para VM-NAME e ZONE. O conteúdo do script é idêntico para todas 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-12 \
        --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 geridos 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 adequados:

    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
    

Adicionar um back-end principal

Pode usar este procedimento como um modelo para adicionar um grupo de instâncias não gerido ao serviço de back-end de um Network Load Balancer de passagem externo existente como um back-end principal. Para a configuração de exemplo, este procedimento mostra como adicionar o grupo de instâncias ig-d como um back-end principal ao equilibrador de carga network-lb.

Consola

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

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

    Aceda a Balanceamento de carga

  2. Clique no equilibrador de carga que quer modificar.

  3. Clique em Edit.

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

    1. Em Back-ends, clique em Adicionar back-end.
    2. No menu pendente, selecione o grupo de instâncias a adicionar como um back-end principal. Neste caso, ig-d.
    3. Clique em Concluído.
    4. Verifique se existe uma marca de verificação azul junto a Configuração de back-end antes de continuar.

Reveja a configuração

  1. Clique no botão Rever e finalizar e confirme que o novo back-end principal está visível em Back-end.
  2. Se as definições estiverem corretas, clique em Criar. Demora alguns minutos a criar o balanceador de carga.

    No ecrã de equilíbrio de carga, na coluna Backend do novo equilibrador de carga, deve ver uma marca de verificação verde a indicar que o novo equilibrador de carga está em bom estado.

gcloud

Use o comando gcloud seguinte para adicionar um back-end principal a um serviço de back-end de um Network Load Balancer de encaminhamento externo existente.

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

where:

  • BACKEND_SERVICE_NAME é o nome do serviço de back-end do balanceador de carga. Para o exemplo, use network-lb-backend-service.
  • INSTANCE_GROUP_NAME é o nome do grupo de instâncias a adicionar como um back-end principal. Para o exemplo, use ig-d.
  • INSTANCE_GROUP_ZONE é a zona onde o grupo de instâncias está definido. Para o exemplo, use us-west1-c.
  • REGION é a região do balanceador de carga. Para o exemplo, use us-west1.

Adicionar um back-end de alternativa

Pode usar este procedimento como um modelo para adicionar um grupo de instâncias não gerido ao serviço de back-end de um equilibrador de carga de rede de passagem externo existente como um back-end de failover. Para a configuração de exemplo, este procedimento mostra como adicionar o grupo de instâncias ig-b como um motor de processamento de reserva ao equilibrador de carga network-lb.

Consola

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

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

    Aceda a Balanceamento de carga

  2. Clique no equilibrador de carga que quer modificar.

  3. Clique em Edit.

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

    1. Em Back-ends, clique em Adicionar back-end.
    2. No menu pendente, selecione o grupo de instâncias a adicionar como um back-end de failover. Neste caso, ig-b.
    3. Selecione a caixa de verificação Usar este grupo de instâncias como um grupo de alternativa para cópia de segurança.
    4. Clique em Concluído.
    5. Verifique se existe uma marca de verificação azul junto a Configuração de back-end antes de continuar.

Reveja a configuração

  1. Clique no botão Rever e finalizar e confirme que o novo back-end principal está visível em Back-end.
  2. Se as definições estiverem corretas, clique em Criar. Demora alguns minutos a criar o balanceador de carga.

    No ecrã de equilíbrio de carga, na coluna Backend do novo equilibrador de carga, deve ver uma marca de verificação verde a indicar que o novo equilibrador de carga está em bom estado.

gcloud

Use o seguinte comando gcloud para adicionar um back-end de alternativa a um serviço de back-end de um Network Load Balancer de passagem 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

where:

  • BACKEND_SERVICE_NAME é o nome do serviço de back-end do balanceador de carga. Para o exemplo, use network-lb-backend-service.
  • INSTANCE_GROUP_NAME é o nome do grupo de instâncias a adicionar como um back-end de alternativa. Para o exemplo, use ig-b.
  • INSTANCE_GROUP_ZONE é a zona onde o grupo de instâncias está definido. Para o exemplo, use us-west1-a.
  • REGION é a região do balanceador de carga. Para o exemplo, use us-west1.

Converter um back-end principal ou de alternativa

Pode converter um back-end principal num back-end de alternativa ou vice-versa, sem ter de remover o grupo de instâncias do serviço de back-end do Network Load Balancer de passagem externo.

gcloud

Use o seguinte comando gcloud para converter um back-end principal existente num back-end de alternativa:

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 seguinte comando gcloud para converter um back-end de alternativa existente num 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

where:

  • 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 onde o grupo de instâncias está definido.
  • REGION é a região do balanceador de carga.

Configurar políticas de comutação por falha

Esta secção descreve como gerir uma política de failover para um serviço de back-end de um Network Load Balancer de encaminhamento externo. Uma política de alternativa consiste no seguinte:

  • Rácio de comutação por falha
  • Diminuir o tráfego quando todas as VMs de back-end estão em mau estado de funcionamento
  • Drenagem da ligação na comutação por falha

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

Definir uma política de alternativa

As instruções seguintes descrevem como definir a política de comutação por falha para um Network Load Balancer de encaminhamento externo existente.

gcloud

Para definir uma política de comutação por falha através da 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

where:

  • BACKEND_SERVICE_NAME é o nome do serviço de back-end do balanceador de carga. Para o exemplo, use network-lb.
  • REGION é a região do balanceador de carga. Para o exemplo, use us-west1.
  • FAILOVER_RATIO é a taxa de alternativa. Os valores possíveis estão entre 0.0 e 1.0, inclusive. Para o exemplo, use 0.75.
  • O CONNECTION_DRAINING_TIMEOUT permite que as ligações TCP persistam, mesmo em VMs que já não estão no conjunto ativo, durante o período de tempo limite de esgotamento das ligações.

Visualizar uma política de comutação por falha

As instruções seguintes descrevem como ver a política de comutação por falha existente para um balanceador de carga de rede de encaminhamento externo.

gcloud

Para listar as definições da política de comutação por falha através da CLI gcloud, use o seguinte comando. As definições não definidas numa política de alternativa usam os valores predefinidos da política de alternativa.

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

where:

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

O que se segue?