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 gerenciados e não gerenciados 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 no serviço de back-end, que não envia novas conexões para instâncias não íntegras.

Para aprender a adicionar um grupo de instâncias a um serviço de back-end, leia Como adicionar grupos de instâncias a um serviço de back-end.

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

Com a 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 adicionar este grupo de instâncias;
  • [ZONE] é a zona do grupo de instâncias.

API

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

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

em que:

  • [PROJECT_ID] é o código 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. 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. As portas nomeadas são usadas pelos serviços de balanceamento de carga para direcionar o tráfego para portas específicas em instâncias individuais. Por exemplo, se você definir uma porta nomeada como http:80 e, em seguida, configurar seu serviço de back-end para enviar tráfego para uma porta chamada http, o balanceador de carga encaminhará o tráfego para a porta 80 de instâncias individuais que fazem parte do grupo de instâncias.

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

Atribua 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ó pode encaminhar 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" (em inglês)

  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]

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

API

A API instanceGroupManagers não oferece um método da 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. Consiga o valor fingerprint atual do grupo de instâncias ao receber informações sobre um grupo específico. Inclua fingerprint e um ou mais pares de valores namedPorts no corpo da solicitação:

POST https://www.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]
  }
 ]
}

Exemplo:

POST https://www.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 os nomes. Por exemplo, você pode atribuir as portas 10, 20 e 80 a name1. Também atribua a porta 8080 a name2.

POST https://www.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://www.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