Neste tutorial, você verá instruções sobre como migrar 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.
Para seguir as instruções detalhadas desta tarefa diretamente no console do Google Cloud, clique em Orientação:
Neste guia, orientamos você na migração do seguinte balanceador de carga de rede baseado no pool de destino de exemplo para usar um serviço de back-end regional.
A implantação do balanceador de carga de rede de passagem externa baseada em serviço de back-end terá esta aparência.
Neste exemplo, presumimos que você tenha um balanceador de carga de rede baseado em pool de destino tradicional
com duas instâncias na zona us-central-1a
e duas instâncias na zona us-central-1c
.
As etapas de alto nível necessárias para essa transição são as seguintes:
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. 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 é configurado como um grupo de failover.
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.
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.Configure uma regra de encaminhamento que aponte para o novo serviço de back-end.
Escolha uma das seguintes opções:
Atualize a regra de encaminhamento atual para apontar para o serviço de back-end (recomendado).
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 CLI do Google Cloud. Para ter uma visão geral completa da ferramenta, consulte o guia dela. Encontre comandos relacionados ao balanceamento de carga no grupo de comandos gcloud compute
.
Caso ainda não tenha usado a CLI do Google Cloud, primeiro execute
gcloud init
para autenticar.
Esse guia pressupõe que você esteja familiarizado com a ferramenta bash.
Identifique os back-ends e a regra de encaminhamento a serem migrados
Para listar todos os pools de destino, execute o comando a seguir no Cloud Shell:
gcloud compute target-pools list
Anote o nome do pool de destino de onde será feita a migração. Depois, esse nome será chamado de TARGET_POOL_NAME.
Para listar todas as instâncias de VM no pool de destino TARGET_POOL_NAME, execute o comando no Cloud Shell:
gcloud compute target-pools describe TARGET_POOL_NAME \ --region=us-central1
Anote os nomes das instâncias de VM. Esses nomes serão chamados posteriormente de BACKEND_INSTANCE1, BACKEND_INSTANCE2, BACKEND_INSTANCE3 e BACKEND_INSTANCE4.
Para listar as regras de encaminhamento no balanceador de carga de rede de passagem externa, execute o comando no Cloud Shell:
gcloud compute forwarding-rules list --filter="target: ( TARGET_POOL_NAME )"
Anote o nome da regra de encaminhamento. Depois, esse nome será chamado de FORWARDING_RULE.
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
Console
- No Console do Google Cloud, acesse a página Grupos de instâncias.
- Clique em Criar grupo de instâncias.
- No painel esquerdo, selecione Novo grupo de instâncias não gerenciadas.
- Em Nome, insira
ig-us-1
. - Em Região, selecione
us-central1
. - Em Zona, selecione
us-central1-a
. - 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
. - Para adicionar instâncias ao grupo de instâncias, na seção Instâncias de VM, selecione as duas instâncias BACKEND_INSTANCE1 e BACKEND_INSTANCE2.
- Clique em Criar.
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 BACKEND_INSTANCE3 e BACKEND_INSTANCE4 na zona
us-central1-c
a este grupo de instâncias.- Name:
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.
gcloud
Crie um grupo de instâncias não gerenciadas na zona
us-central1-a
com o comandogcloud compute instance-groups unmanaged create
.gcloud compute instance-groups unmanaged create ig-us-1 \ --zone us-central1-a
Crie um segundo grupo de instâncias não-gerenciadas na zona
us-central1-c
.gcloud compute instance-groups unmanaged create ig-us-2 \ --zone us-central1-c
Adicione instâncias ao grupo
ig-us-1
.gcloud compute instance-groups unmanaged add-instances ig-us-1 \ --instances BACKEND_INSTANCE_1,BACKEND_INSTANCE_2 \ --zone us-central1-a
Adicione instâncias ao grupo
ig-us-2
.gcloud compute instance-groups unmanaged add-instances ig-us-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 externo de passagem baseada no pool de destino provavelmente tem 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 externos baseados em serviço de back-end podem usar verificações de integridade TCP, SSL, HTTP(S) e HTTP/2.
Console
- No console do Google Cloud, acesse a página Verificações de integridade.
- Clique em Create health check.
- No campo Nome, use
network-lb-health-check
. - Defina o Escopo como Regional.
- Em Região, selecione
us-central1
. - Em Protocolo, selecione HTTP.
- Em Porta, insira
80
. - Clique em Criar.
gcloud
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 network-lb-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 precisa 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
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
Adicione os dois grupos de instâncias (
ig-us-1
eig-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
Implantações com um pool de destino de backup
gcloud
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 network-lb-health-check \ --failover-ratio 0.5
Adicione os dois grupos de instâncias (
ig-us-1
eig-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
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.
Atualizar a regra de encaminhamento atual (recomendado)
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 FORWARDING_RULE \ --backend-service network-lb-backend-service \ --region us-central1
Substitua FORWARDING_RULE
pelo nome da regra de encaminhamento atual.
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.
Para testar a conectividade, primeiro instale o Netcat no Linux executando o comando a seguir:
$ sudo apt install netcat
Repita o comando algumas vezes até ver todas as VMs de back-end respondendo:
$ nc IP_ADDRESS 80
Remover recursos associados ao antigo balanceador de carga
Depois de confirmar que o novo balanceador de carga de rede de passagem externo funciona conforme o esperado, é possível excluir os recursos antigos do pool de destino.
- No Console do Google Cloud, acesse a página Balanceamento de carga.
- Selecione o antigo balanceador de carga associado ao pool de destino e clique em Excluir.
- Selecione as verificações de integridade que você criou e clique em Excluir balanceador de carga e recursos selecionados.
A seguir
- Para informações sobre como os balanceadores de carga de rede de passagem externa funcionam com os serviços de back-end, consulte Visão geral do balanceador de carga de rede externo de passagem de back-end.
- Para configurar um balanceador de carga de rede de passagem externa com um serviço de back-end, consulte Configurar um balanceador de carga de rede de passagem externa com um serviço de back-end.
- Para configurar um balanceador de carga de rede de passagem externa com um pool de destino, consulte Configurar um balanceador de carga de rede de passagem externa com um pool de destino.