Como adicionar um grupo de instâncias a um balanceador de carga

O balanceamento de carga do Google Cloud Platform (GCP) usa grupos de instâncias gerenciadas e não gerenciadas para veicular o tráfego. Dependendo do tipo de balanceador de carga que você estiver usando, adicione grupos de instâncias a um pool de destino ou serviço de back-end. Para saber mais, consulte Como escolher um balanceador de carga.

Para saber mais sobre grupos de instâncias, leia a Visão geral de grupos de instâncias.

Antes de começar

Como adicionar um grupo de instâncias gerenciadas a um serviço de back-end

É necessário um serviço de back-end para criar um HTTP(S), um proxy SSL, um proxy TCP ou um balanceador de carga interno. 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 contidas no grupo respondem ao tráfego vindo do balanceador de carga. O serviço de back-end, por sua vez, sabe quais instâncias podem ser usadas, quanto tráfego elas podem processar e a quantidade de tráfego que estão processando no momento. Além disso, a verificação da integridade é monitorada pelo serviço de back-end, que não envia novas conexões para instâncias não íntegras.

Leia Como adicionar grupos de instâncias a um serviço de back-end para ver instruções sobre esse procedimento.

Como adicionar um grupo de instâncias gerenciadas a um pool de destino

Um pool de destino é um objeto que contém uma ou mais instâncias de máquina virtual. Ele é usado no Balanceamento de carga de rede, em que as solicitações do usuário são encaminhadas para o pool de destino associado ao balanceador de carga. As instâncias que fazem parte desse pool atendem essas solicitações e retornam uma resposta. Adicione um grupo de instâncias gerenciadas a um pool de destino para que, quando as instâncias forem adicionadas ou removidas do grupo, o pool também seja automaticamente atualizado com as alterações.

Para adicionar um grupo de instâncias gerenciadas a um pool de destino, é preciso que esse pool já exista. Para mais informações, consulte a documentação Como adicionar um pool de destino.

Para adicionar um grupo de instâncias gerenciadas a um pool de destino, execute as etapas a seguir. Isso faz com que todas as instâncias de VM contidas no grupo sejam adicionadas ao pool de destino.

Console

  1. Acesse a página "Pools de destino" no Console do GCP.

    Acessar a página "Pools de destino"

  2. Clique no pool de destino para adicionar o grupo de instâncias.
  3. Clique no botão Editar.
  4. Role para baixo até a seção Instâncias da VMs e clique em Selecionar grupos de instâncias.
  5. Selecione um grupo de instâncias no menu suspenso.
  6. Salve as alterações.

gcloud

Na ferramenta de linha de comando gcloud, use o comando set-target-pools:

gcloud compute instance-groups managed set-target-pools [INSTANCE_GROUP] \
        --target-pools [TARGET_POOL,..] [--zone ZONE]

em que:

  • [INSTANCE_GROUP] é o nome do grupo de instâncias.
  • [TARGET_POOL] é o nome de um ou mais pools de destino aos quais esse grupo de instância precisa ser adicionado.
  • [ZONE] é a zona do grupo de instâncias.

API

Na API, faça uma solicitação POST para o seguinte URI:

POST https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroupManagers/[INSTANCE_GROUP]/setTargetPools

em que:

  • [PROJECT_ID] é o ID do projeto da solicitação.
  • [ZONE] é a zona do grupo de instâncias.
  • [INSTANCE_GROUP] é o nome do grupo de instâncias.

O corpo da solicitação conterá uma lista de URIs para os pools de destino aos quais você quer adicionar esse grupo. Por exemplo:

{
  "targetPools": [
    "regions/us-central1/targetPools/example-targetpool-1",
    "regions/us-central1/targetPools/example-targetpool-2"
  ]
}

Como atribuir portas nomeadas a grupos de instâncias gerenciadas

Portas nomeadas são pares de valores-chave que representam um nome de serviço e o número da porta em que o serviço é executado. Elas são usadas pelos serviços de balanceamento de carga para direcionar o tráfego a portas específicas em instâncias individuais. Por exemplo, se você definir uma porta nomeada como http:80 e configurar o serviço de back-end para enviar o tráfego a uma porta denominada http, o balanceador de carga encaminhará o tráfego à porta 80 das instâncias individuais que fazem parte do grupo de instâncias.

As portas nomeadas são metadados simples usados pelo balanceamento de carga. Elas não controlam recursos de rede ou firewall no Compute Engine.

É possível atribuir várias portas para cada nome de serviço e vários nomes de serviço para cada porta. No entanto, lembre-se de que um determinado serviço de back-end só encaminha o tráfego para uma porta nomeada de cada vez.

Console

  1. Acesse a página Grupos de instâncias no Console do GCP.

    Acessar a página "Grupos de instâncias"

  2. Clique no nome do grupo de instâncias em que você quer especificar as portas nomeadas. Uma página é aberta com as propriedades do grupo de instâncias.
  3. Clique em Editar grupo para modificar o grupo de instâncias gerenciadas.
  4. Clique em Especificar mapeamento de nomes de porta para expandir as opções de portas nomeadas.
  5. Clique em Adicionar item e digite o nome da porta e os números de porta que você quer associar a esse nome. Se você precisar de mais entradas, clique em Adicionar item novamente.
  6. Clique em Salvar para salvar as alterações e aplicar as portas nomeadas às instâncias no grupo de instâncias gerenciadas.

gcloud

Defina uma ou mais portas nomeadas usando o comando 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 várias portas a cada nome de serviço ou vários nomes a cada serviço, crie mais de uma entrada para cada nome ou porta. Por exemplo, atribua name1 às portas 10, 20 e 80. Em seguida, atribua name2 e name3 à porta 80. Por fim, atribua a porta 9000 a name4.

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 de 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

API

A API instanceGroupManagers não oferece um método de API setNamedPorts. Em vez disso, use a API instanceGroups para executar esta tarefa.

Crie uma solicitação na API instanceGroups e inclua o nome do grupo de instâncias. Para saber o valor fingerprint atual do grupo de instâncias, acesse as informações sobre um grupo específico. Inclua o fingerprint e um ou mais pares de valores namedPorts 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:

POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-group/setNamedPorts

{
 "fingerprint": "42WmSpB8rSM=",
 "namedPorts": [
  {
   "name": "name1",
   "port": 80
  },
  {
   "name": "name2",
   "port": 8080
  }
 ]
}

Para atribuir várias portas a cada nome de serviço, crie várias entradas para esses nomes. Por exemplo, atribua as portas 10, 20 e 80 a name1. Atribua também a porta 8080 a name2.

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]

A seguir

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Compute Engine