Esta página descreve como adicionar um grupo gerenciado de instâncias (MIG) existente ao serviço de back-end ou pool de destino de um balanceador de carga.
Um balanceador de carga distribui o tráfego do usuário, o que ajuda a reduzir o risco de problemas de desempenho em seu aplicativo. O Cloud Load Balancing usa grupos de instâncias , gerenciados e não gerenciados, para atender o tráfego. Dependendo do tipo de balanceador de carga que você está usando, você pode adicionar grupos de instâncias a um pool de destino ou serviço de back-end.
Para obter informações sobre como criar um tipo específico de balanceador de carga com back-end MIG, consulte a documentação do Cloud Load Balancing .
Antes de começar
- Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar no Compute Engine selecionando uma das seguintes opções:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
- Acesse a página Balanceamento de carga no console do Google Cloud.
- Clique no nome do serviço de back-end ao qual você está adicionando o grupo gerenciado de instâncias.
- Clique em Editar .
- Clique em +Adicionar back-end .
- Selecione o grupo de instâncias que você deseja adicionar.
- Edite quaisquer configurações opcionais que você deseja alterar.
- Salve suas alterações.
- Acesse a página Target Pools no console do Google Cloud.
- Clique no pool de destino ao qual você deseja adicionar o grupo de instâncias.
- Clique no botão Editar .
- Role para baixo até a seção Instâncias de VM e clique em Selecionar grupos de instâncias .
- Selecione um grupo de instâncias no menu suspenso.
- Salve suas alterações.
-
INSTANCE_GROUP
é o nome do grupo de instâncias. -
TARGET_POOL,..
é o nome de um ou mais pools de destino aos quais adicionar esse grupo de instâncias. -
PROJECT_ID
é o ID do projeto para esta solicitação. -
REGION
é a região do grupo de instâncias. -
INSTANCE_GROUP
é o nome do grupo de instâncias. - O tráfego é equilibrado entre todas as portas com o mesmo nome de porta.
- Um determinado serviço de back-end só pode encaminhar tráfego para uma porta nomeada por vez.
Se você usar vários números de porta para uma porta nomeada, todas as portas deverão ser para o mesmo aplicativo.
Por exemplo,
http:80,http:8080
funciona, mashttp:80,http:443
não funciona porque a porta 80 geralmente não suporta TLS.-
instance-group-a
com uma porta nomeada dehttp-port:80
-
instance-group-b
com uma porta nomeada dehttp-port:79
- No console do Google Cloud, acesse a página Grupos de instâncias .
- Clique no nome do grupo de instâncias onde você deseja especificar portas nomeadas. Uma página é aberta com as propriedades do grupo de instâncias.
- Clique em Editar para modificar este grupo de instâncias gerenciadas.
- Na seção Mapeamento de portas , clique em Adicionar porta e insira o nome da porta desejada e os números das portas que deseja associar a esse nome. Se precisar de mais entradas, clique em Adicionar porta novamente.
- Clique em Salvar para salvar suas alterações e aplicar as portas nomeadas às instâncias do grupo de instâncias gerenciadas.
- Experimente o tutorial Usando balanceamento de carga para aplicativos altamente disponíveis .
- Crie um modelo de instância que possa ser usado para um grupo de instâncias gerenciadas.
- Crie um grupo regional de instâncias gerenciadas .
- Ative a recuperação automática para seu grupo de instâncias gerenciadas.
- Ative o escalonamento automático para seu grupo de instâncias gerenciadas.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.
Adicionar um grupo gerenciado de instâncias a um serviço de back-end
Um serviço de back-end é necessário para criar a maioria dos tipos de balanceadores de carga.
Um serviço de back-end pode conter vários back-ends. Um grupo de instâncias é um tipo de back-end. As instâncias do grupo de instâncias respondem ao tráfego do balanceador de carga. O serviço de back-end, por sua vez, sabe quais instâncias pode usar, quanto tráfego elas podem manipular e quanto tráfego estão manipulando atualmente. Além disso, o serviço de back-end monitora a verificação de integridade e não envia novas conexões para instâncias não íntegras.
Use estas instruções para adicionar um grupo de instâncias gerenciadas a um serviço de back-end.
Console
gcloud
Use o comando
add-backend
:gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --instance-group=INSTANCE_GROUP \ [--instance-group-region=INSTANCE_GROUP_REGION | --instance-group-zone=INSTANCE_GROUP_ZONE] \ --balancing-mode=BALANCING_MODE
O suporte ao modo de balanceamento difere com base no tipo de balanceador de carga. Para obter a lista completa, consulte Modo de balanceamento disponível para cada balanceador de carga .
Parâmetros adicionais são necessários dependendo do modo de balanceamento do grupo gerenciado de instâncias. Para obter mais informações, consulte o comando
add-backend
no SDK.DESCANSAR
Para adicionar um serviço de back-end usando a API REST, consulte backendServices .
Limitações
O balanceamento de carga com um MIG regional não suporta a capacidade alvo de
max-rate
nos modos de balanceamentoRATE
eUTILIZATION
. Para saber mais sobre as diretrizes de uso de cada balanceador de carga, consulte Modos de balanceamento e configurações de capacidade alvo .Adicionar um grupo gerenciado de instâncias a um pool de destino
Um pool de destino é um objeto que contém uma ou mais instâncias de máquinas virtuais. Um pool de destino é usado em Network Load Balancers de passagem externa , onde o balanceador de carga encaminha solicitações do usuário para o pool de destino anexado. As instâncias que fazem parte desse pool de destino atendem essas solicitações e retornam uma resposta. Você pode adicionar um grupo de instâncias gerenciadas a um pool de destino para que, quando instâncias forem adicionadas ou removidas do grupo de instâncias, o pool de destino também seja atualizado automaticamente com as alterações.
Antes de adicionar um grupo de instâncias gerenciadas a um pool de destino, o pool de destino deve existir. Para obter mais informações, consulte a documentação sobre Adicionar um pool de destino .
Para adicionar um grupo de instâncias gerenciadas existente a um pool de destino, siga estas instruções. Isso faz com que todas as instâncias de VM que fazem parte do grupo de instâncias gerenciadas sejam adicionadas ao pool de destino.
Console
gcloud
Use o comando
set-target-pools
:gcloud compute instance-groups managed set-target-pools INSTANCE_GROUP \ --target-pools TARGET_POOL,..
onde:
DESCANSAR
Chame o método
setTargetPools
para um MIG regional ou zonal . Por exemplo:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/regionInstanceGroupManagers/INSTANCE_GROUP/setTargetPools
onde:
O corpo da solicitação deve conter uma lista de URIs para os pools de destino aos quais você deseja adicionar esse grupo. Por exemplo:
{ "targetPools": [ "regions/us-central1/targetPools/example-targetpool-1", "regions/us-central1/targetPools/example-targetpool-2" ] }
Atribuir portas nomeadas a grupos de instâncias gerenciadas
Portas nomeadas são pares de valores-chave que representam o nome e o número de uma porta. O nome da porta representa o nome de um serviço ou aplicativo. O número da porta representa a porta em que o serviço ou aplicativo é executado.
As portas nomeadas são usadas pelo Cloud Load Balancing. Os balanceadores de carga que atuam como proxies assinam uma única porta nomeada em sua configuração de serviço de back-end. O nome da porta é traduzido para um número de porta com base no mapeamento da porta nomeada de cada back-end do grupo de instâncias.
Por exemplo, um serviço de back-end pode assinar uma porta chamada
http-port
. O grupo de instâncias de back-end pode ter uma porta chamadahttp-port:80
. O grupo de instâncias de back-end instrui o balanceador de carga a enviar tráfego para uma VM do grupo na porta 80 usando um protocolo (como TCP). O protocolo é definido no serviço de back-end do balanceador de carga.Portas nomeadas são metadados simples usados por balanceadores de carga de proxy . As portas nomeadas não controlam recursos de rede ou firewall no Compute Engine.
Vários números de porta para uma porta nomeada
Você pode atribuir várias portas para cada nome de serviço. Você também pode atribuir vários nomes de serviço para cada porta.
Tenha em mente os seguintes pontos:
Você pode atribuir várias portas nomeadas em um grupo de instâncias. Para ilustrar, considere um exemplo de serviço de back-end que assina a porta nomeada
http-port
e que possui dois grupos de instâncias de back-end:Este serviço de back-end envia tráfego para a porta 80 para VMs em
instance-group-a
e para a porta 79 para VMs eminstance-group-b
.Ao adicionar o mesmo grupo de instâncias a vários serviços de back-end (para vários balanceadores de carga) e o grupo de instâncias atender portas diferentes em cada balanceador de carga, não adicione todos os números de porta a uma única porta nomeada. Em vez disso, crie uma porta nomeada exclusiva e mapeie-a para um conjunto de portas que cada serviço de back-end deve servir.
Por exemplo, suponha que você tenha três aplicativos, cada um com seu próprio balanceador de carga. Cada aplicativo possui seu próprio número de porta: 81 para
app1
, 82 paraapp2
e 83 paraapp3
. Supondo que todos os três serviços de back-end estejam usando um grupo de instâncias comum, atribua as portas nomeadas para esse grupo de instâncias como[app1:81, app2:82, app3:83]
.Portas nomeadas e verificações de integridade
Para que uma porta nomeada com vários números de porta em um serviço de back-end funcione em um Application Load Balancer externo ou em um Application Load Balancer interno, a verificação de integridade deve ter o sinalizador
--use-serving-port
em vez de um número de porta específico. Esta opção não está disponível no console do Google Cloud. Para definir--use-serving-port
, você deve usar a Google Cloud CLI ou a API.Por exemplo, suponha que você tenha um aplicativo que equilibra a carga do tráfego em três portas diferentes (81, 82, 83) no mesmo serviço de back-end com um único grupo de instâncias. Você pode atribuir as portas para esses grupos de instâncias como
[app:81, 82, 83]
. A verificação de integridade neste cenário deve ter o sinalizador--use-serving-port
.Para obter mais informações, consulte a documentação da verificação de integridade do balanceamento de carga .
Portas nomeadas e regras de firewall
Portas nomeadas não criam ou modificam Google Cloud regras de firewall . Para permitir o tráfego para VMs de back-end, você ainda deve criar as regras de firewall necessárias.
Portas nomeadas e serviços de back-end
Além da configuração do grupo de instâncias, você também deve configurar o serviço de back-end. Por exemplo, suponha que você defina a porta nomeada em um grupo de instâncias com o nome
my-service-name
e a porta8888
:gcloud compute instance-groups set-named-ports my-unmanaged-ig \ --named-ports=my-service-name:8888
Em seguida, você deve consultar a porta nomeada na configuração do serviço de back-end com
--port-name
no serviço de back-end definido comomy-service-name
:gcloud compute backend-services update my-backend-service \ --port-name=my-service-name
Crie portas nomeadas
Console
gcloud
Para grupos de instâncias gerenciadas, defina uma ou mais portas nomeadas usando o comando
instance-groups managed set-named-ports
. Para grupos não gerenciados, use o comandoinstance-groups set-named-ports
.gcloud compute instance-groups managed set-named-ports INSTANCE_GROUP \ --named-ports PORT_NAME:PORT,PORT_NAME:PORT
Por exemplo:
gcloud compute instance-groups managed set-named-ports INSTANCE_GROUP \ --named-ports name1:80,name2:8080
Para atribuir diversas portas a cada nome de serviço ou vários nomes para cada serviço, crie mais de uma entrada para cada nome ou porta. Por exemplo, se as portas
10
,20
e80
forem para o mesmo aplicativo, você poderá atribuirname1
a todas essas portas. Além disso, você pode atribuir dois nomes,name2
ename3
à porta8080
. Finalmente, você pode atribuir a porta9000
aname4
, como no exemplo a seguir:gcloud compute instance-groups managed set-named-ports INSTANCE_GROUP \ --named-ports name1:10,name1:20,name1:80,\ name2:8080,name3:8080,\ name4:9000
Verifique as atribuições de portas nomeadas para um grupo de instâncias gerenciadas usando o comando
get-named-ports
:gcloud compute instance-groups managed get-named-ports INSTANCE_GROUP
NAME PORT name1 10 name1 20 name1 80 name2 8080 name3 8080 name4 9000
DESCANSAR
A API
instanceGroupManagers
não oferece um método de APIsetNamedPorts
. Em vez disso, use a APIinstanceGroups
para executar esta tarefa.Crie uma solicitação para a API
instanceGroups
e inclua o nome do grupo de instâncias. Obtenha o valor atualfingerprint
do grupo de instâncias obtendo informações sobre um grupo específico . Inclua afingerprint
e um ou mais pares de valoresnamedPorts
no corpo da solicitação:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroups/INSTANCE_GROUP/setNamedPorts { "fingerprint": "42WmSpB8rSM=", "namedPorts": [ { "name": "PORT_NAME", "port": PORT_NUMBER }, { "name": "PORT_NAME", "port": PORT_NUMBER } ] }
Por exemplo, se as portas
10
,20
e80
forem para o mesmo aplicativo, você poderá atribuirname1
a todas essas portas. Além disso, você pode atribuir dois nomes,name2
ename3
à porta8080
. Finalmente, você pode atribuir a porta9000
aname4
, como no exemplo a seguir:POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-group/setNamedPorts { "fingerprint": "42WmSpB8rSM=", "namedPorts": [ { "name": "name1", "port": 8080 }, { "name": "name2", "port": 9000 } ] }
Para atribuir diversas portas a cada nome de serviço, crie diversas entradas para esse nome de serviço. Por exemplo, você pode atribuir as portas
10
,20
e80
aname1
. Atribua também a porta8080
aname2
.POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-group/setNamedPorts { "fingerprint": "42WmSpB8rSM=", "namedPorts": [ { "name": "name1", "port": 10 }, { "name": "name1", "port": 20 } { "name": "name1", "port": 80 } { "name": "name2", "port": 8080 } { "name": "name3", "port": 80 } { "name": "name4", "port": 8080 } ] }
Para listar as portas nomeadas que já estão atribuídas a um grupo de instâncias gerenciadas, crie uma solicitação
GET
que aponte para o grupo:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP
O que vem a seguir
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-04-17 UTC.
-