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:
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.
A implementação do balanceador de carga de rede de encaminhamento externo baseado no serviço de back-end resultante tem o seguinte aspeto.
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:
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.
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.
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.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
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.
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.
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
- Na Google Cloud consola, aceda à página Grupos de instâncias.
- Clique em Criar grupo de instâncias.
- No painel do lado esquerdo, selecione Novo grupo de instâncias não gerido.
- Em Nome, introduza
ig-us-1
. - Para Região, selecione
us-central1
. - Para Zona, selecione
us-central1-a
. - 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. - 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.
- Clique em Criar.
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.- Nome:
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
Crie um grupo de instâncias não gerido 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 gerido na zona
us-central1-c
.gcloud compute instance-groups unmanaged create ig-us-2 \ --zone us-central1-c
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
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
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
- Na Google Cloud consola, aceda à página Verificações de estado.
- Clique em Criar verificação de funcionamento.
- No campo Nome, introduza
network-lb-health-check
. - Defina o Âmbito como Regional.
- Para Região, selecione
us-central1
. - Para Protocolo, selecione HTTP.
- Em Porta, introduza
80
. - Clique em Criar.
gcloud
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
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
Implementações com um conjunto de destino de substituição
gcloud
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
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 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.
Atualize a regra de encaminhamento existente (recomendado)
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.
Para testar a conetividade, instale primeiro o Netcat no Linux executando o seguinte comando:
$ sudo apt install netcat
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.
- Na Google Cloud consola, aceda à página Equilíbrio de carga.
- Selecione o antigo equilibrador de carga associado ao grupo de destino e, em seguida, clique em Eliminar.
- 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?
- Para obter informações sobre como os balanceadores de carga de rede de encaminhamento externo funcionam com os serviços de back-end, consulte a vista geral do balanceador de carga de rede de encaminhamento externo baseado em serviços de back-end.
- Para configurar um balanceador de carga de rede de encaminhamento externo com um serviço de back-end, consulte o artigo Configure um balanceador de carga de rede de encaminhamento externo com um serviço de back-end.
- Para configurar um balanceador de carga de rede de encaminhamento externo com um grupo de destino, consulte o artigo Configure um balanceador de carga de rede de encaminhamento externo com um grupo de destino.