Como criar grupos de instâncias não gerenciadas

Um grupo de instâncias não gerenciadas é um conjunto de máquinas virtuais (VMs) que residem em somente uma zona, rede VPC e sub-rede. Esses grupos são úteis para agrupar VMs que exigem configurações ou ajustes individuais.

Para VMs que exigem configurações consistentes, use um grupo de instâncias gerenciadas (MIG, na sigla em inglês) com um modelo de instância. Quando possível, considere usar grupos de instâncias gerenciadas em vez de grupos não gerenciados. Para criar um grupo de instâncias gerenciadas, consulte este artigo.

É possível adicionar qualquer tipo de grupo de instâncias como back-end a um balanceador de carga do Google Cloud. Para mais informações, consulte a visão geral do Cloud Load Balancing. Para o número de VMs por grupo de instâncias compatíveis com o Google Cloud, consulte VMs por grupo de instâncias.

Para saber mais sobre os grupos de instâncias, consulte Visão geral dos grupos de instâncias.

Antes de começar

Como trabalhar com grupos de instâncias não gerenciadas

Como criar grupos

Ao contrário de grupos de instâncias gerenciadas, os grupos de instâncias não gerenciadas são apenas conjuntos de VMs distintas que não compartilham um modelo de instância comum. Basta criar um grupo e adicionar VMs individuais a ele.

Console

  1. No Console do Cloud, acesse a página Grupos de instâncias.

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

  2. Clique em Criar um grupo de instâncias.
  3. Clique em Novo grupo de instâncias não gerenciadas.
  4. Digite um nome para o grupo de instâncias não gerenciadas.
  5. Em Local, selecione uma região e uma zona.
  6. Selecione uma Rede e uma Sub-rede.
  7. Em Instâncias de VM, selecione as VMs para adicionar a este grupo.
  8. Clique em Criar.

gcloud

Para criar um novo grupo de instâncias não gerenciadas, use o comando instance-groups unmanaged create:

gcloud compute instance-groups unmanaged create instance-group-name \
    --zone=zone

Substitua:

  • instance-group-name: o nome do grupo do qual você quer remover as VMs.
  • zone: a zona em que você quer listar as VMs do grupo.

API

Para criar um grupo de instâncias não gerenciadas com a API, envie uma solicitação POST usando o método instanceGroups.insert:

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups

{
   "name": "instance-group-name"
}

Substitua:

  • instance-group-name: o nome do grupo do qual você quer remover as VMs.
  • zone: a zona em que você quer listar as VMs do grupo.
  • project-id: o ID do projeto que contém o grupo.

Quando você cria um novo grupo de instâncias não gerenciadas com a ferramenta de linha de comando gcloud ou com a API, nenhuma VM é adicionada automaticamente. É possível adicionar VMs ao grupo de instâncias não gerenciadas manualmente.

Como listar e descrever grupos

Recupere uma lista de grupos de instâncias não gerenciadas atuais.

Console

No Console do Cloud, a página Grupos de instâncias lista os grupos de instâncias gerenciadas e não gerenciadas atuais.

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

gcloud

Para listar todos os grupos de instâncias não gerenciadas no seu projeto com a ferramenta de linha de comando gcloud, use o comando instance-groups unmanaged list:

gcloud compute instance-groups unmanaged list

Para mais informações sobre um grupo de instâncias não gerenciadas específicas, use o comando instance-groups unmanaged describe:

gcloud compute instance-groups unmanaged describe instance-group-name \
   --zone=zone

Substitua:

  • instance-group-name: o nome do grupo a ser descrito.
  • zone: a zona do grupo.

API

Para listar os grupos de instâncias com a API, envie uma solicitação GET usando o método instanceGroups.list:

GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups

Para informações sobre um grupo de instâncias não gerenciadas específicas com a API, envie uma solicitação GET usando o método instanceGroups.get:

GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups/instance-group-name

Substitua:

  • instance-group-name: o nome do grupo a ser descrito.
  • zone: a zona do grupo.
  • project-id: o ID do projeto que contém o grupo.

Como excluir grupos

Diferente de um grupo de instâncias gerenciadas, a exclusão de um grupo de instâncias não gerenciadas não exclui nenhuma das VMs do grupo. Essa exclusão só remove o agrupamento lógico de VMs.

Não é possível excluir um grupo de instâncias se ele for um back-end de um balanceador de carga do Google Cloud. Primeiro é preciso remover o back-end do serviço de back-end.

Console

  1. No Console do Cloud, acesse a página Grupos de instâncias.

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

  2. Selecione um ou mais grupos de instâncias não gerenciadas na lista.
  3. Clique em Excluir para remover os grupos. Os grupos são removidos, mas as VMs neles não são excluídas.

gcloud

Para excluir um grupo de instâncias não gerenciadas, use o comando instance-groups unmanaged delete:

gcloud compute instance-groups unmanaged delete instance-group-name \
    --zone=zone

Substitua:

  • instance-group-name: o nome do grupo que você quer excluir.
  • zone: a zona do grupo.

API

Para excluir um grupo de instâncias não gerenciadas com a API, envie uma solicitação DELETE usando o método instanceGroups.delete:

DELETE https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups/instance-group-name

Substitua:

  • instance-group-name: o nome do grupo que você quer excluir.
  • zone: a zona do grupo.
  • project-id: o ID do projeto que contém o grupo.

Filiação a grupo

Como adicionar VMs

Depois de criar um grupo de instâncias não gerenciadas, é possível adicionar VMs ao grupo.

Console

  1. No Console do Cloud, acesse a página Grupos de instâncias.

    Acessar a página Grupos de instâncias (em inglês)

  2. Na coluna Nome da lista, clique no nome do grupo de instâncias em que você quer adicionar suas VMs. Uma página será aberta com as propriedades do grupo e uma lista de VMs que já fazem parte dele.
  3. Clique em Editar grupo para modificar esse grupo de instâncias não gerenciadas.
  4. Em Instâncias de VM, selecione uma ou mais VMs atuais para adicionar ao grupo. Só é possível selecionar VMs que estejam na mesma zona, rede VPC e sub-rede das VMs atuais.
  5. Clique em Salvar para adicionar as novas VMs ao grupo.

gcloud

Para adicionar instâncias a um grupo de instâncias não gerenciadas, use o comando instance-groups un-managed add-instances:

gcloud compute instance-groups unmanaged add-instances instance-group-name \
    --zone=zone \
    --instances=list-of-VM-names

Substitua:

  • instance-group-name: o nome do grupo ao qual você quer adicionar VMs.
  • zone: a zona do grupo.
  • list-of-VM-names: uma lista delimitada por vírgulas de VMs na mesma zona, rede VPC e sub-rede.

API

Para adicionar VMs a um grupo de instâncias não gerenciadas com a API, envie uma solicitação POST usando o método instanceGroups.addInstances:

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups/instance-group-name/addInstances

   {
      "instances": [
         {
         "instance": "https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-1-name",
         "instance": "https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-2-name",
         ....
         }
      ]
   }

Substitua:

  • instance-group-name: o nome do grupo ao qual você quer adicionar VMs.
  • zone: a zona do grupo.
  • project-id: o ID do projeto que contém o grupo.
  • instance-1-name e instance-2-name: são nomes das VMs, na mesma zona, rede VPC e sub-rede que você quer adicionar ao grupo.

Como listar VMs

É possível recuperar uma lista de VMs incluídas em um grupo de instâncias não gerenciadas.

Console

  1. No Console do Cloud, acesse a página Grupos de instâncias.

    Acessar a página Grupos de instâncias (em inglês)

  2. Na coluna Nome da lista, clique no nome do grupo de instâncias não gerenciadas que você quer visualizar. Uma página com a lista de instâncias incluídas no grupo será exibida.

gcloud

Para listar as VMs em um grupo de instâncias não gerenciadas, use o comando instance-groups unmanaged list-instances:

gcloud compute instance-groups unmanaged list-instances instance-group-name \
   --zone=zone

Substitua:

  • instance-group-name: o nome do grupo cujos membros você quer listar.
  • zone: a zona do grupo.

API

Para listar VMs em um grupo de instâncias não gerenciadas com a API, envie uma solicitação POST usando o método instanceGroups.listInstances:

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups/instance-group-name/listInstances

Substitua:

  • instance-group-name: o nome do grupo cujos membros você quer listar.
  • zone: a zona do grupo.
  • project-id: o ID do projeto que contém o grupo.

Como remover VMs

É possível remover VMs de um grupo de instâncias não gerenciadas. Fazer isso, no entanto, não exclui a VM.

Console

  1. No Console do Cloud, acesse a página Grupos de instâncias.

    Acessar a página Grupos de instâncias (em inglês)

  2. Na coluna Nome da lista, clique no nome do grupo de instâncias de que você quer remover as VMs. Uma página é aberta com as propriedades do grupo de instâncias e uma lista de VMs incluídas no grupo.
  3. Na lista, selecione uma ou mais VMs que você quer remover do grupo.
  4. Clique em Remover do grupo. As VMs que você remove de um grupo de instâncias não gerenciadas continuam existindo e sendo executadas, a menos que você as interrompa ou exclua.

gcloud

Para remover VMs de um grupo de instâncias não gerenciadas, use o comando instance-groups unmanaged remove-instances:

gcloud compute instance-groups unmanaged remove-instances instance-group-name \
    --zone=zone \
    --instances=list-of-VM-names

Substitua:

  • instance-group-name: o nome do grupo que contém instâncias a serem removidas.
  • zone: a zona do grupo.
  • list-of-VM-names: uma lista delimitada por vírgulas de VMs que você quer remover do grupo.

API

Para remover VMs de um grupo de instâncias não gerenciadas com a API, envie uma solicitação POST usando o método instanceGroups.removeInstances. É possível remover várias VMs simultaneamente, como mostrado abaixo:

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups/instance-group-name/removeInstances
{
    "instances": [
        {
        "instance": "https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-1-name",
        "instance": "https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-2-name",
        ....
        }
    ]
}

Substitua:

  • instance-group-name: o nome do grupo que contém instâncias a serem removidas.
  • zone: a zona do grupo.
  • project-id: o ID do projeto que contém o grupo.
  • instance-1-name e instance-2-name: são nomes das VMs que você quer desassociar do grupo.

Como trabalhar com portas nomeadas

As portas nomeadas são pares de chave-valor que representam o nome e o número de uma porta. Elas são usadas em conjunto com os balanceadores de carga do Google Cloud. Balanceadores de carga que atuam como proxies se inscrevem em somente uma porta nomeada na configuração serviço de back-end. O nome da porta é convertido em um número de porta com base no mapeamento de portas nomeadas de cada back-end do grupo de instâncias.

Por exemplo, um serviço de back-end pode se inscrever em uma porta denominada http-port. O grupo de instâncias de back-end pode ter uma porta chamada http-port:80. O grupo de instâncias de back-end instrui o balanceador de carga a enviar tráfego para uma VM no grupo na porta 80 usando um protocolo, como TCP. O protocolo é definido no serviço de back-end do balanceador de carga.

É possível definir várias portas nomeadas em um grupo de instâncias. No entanto, o serviço de back-end de um balanceador de carga se inscreve apenas em uma porta nomeada. Os grupos de instâncias de back-end no mesmo serviço de back-end podem usar diferentes mapeamentos de porta nomeada. Para ilustrar, considere um exemplo de serviço de back-end que assina a porta nomeada http-port e que tem dois grupos de instâncias de back-end:

  • instance-group-a com uma porta nomeada de http-port:80
  • instance-group-b com uma porta nomeada de http-port:79

Este serviço de back-end envia tráfego para a porta 80 para VMs em instance-group-a e porta 79 para VMs em instance-group-b.

Console

  1. No Console do Cloud, acesse a página Grupos de instâncias.

    Acessar a página Grupos de instâncias (em inglês)

  2. Na coluna Nome da lista, clique no nome do grupo de instâncias em que você quer especificar portas nomeadas. Uma página com as propriedades do grupo de instâncias é aberta.
  3. Clique em Editar grupo para modificar esse grupo de instâncias não gerenciadas.
  4. Na seção Mapeamento do nome da porta (opcional), clique em Adicionar item e insira um nome de porta e o número dela. Adicione ou remova outras portas nomeadas conforme necessário.
  5. Clique em Salvar para atualizar a lista de portas nomeadas do grupo de instâncias não gerenciadas.

gcloud

Para adicionar portas nomeadas a um grupo de instâncias não gerenciadas, use o comando instance-groups unmanaged set-named-ports:

gcloud compute instance-groups unmanaged set-named-ports instance-group-name \
    --zone=zone \
    --named-ports=port-name:port-number,...

Para listar portas nomeadas em um grupo de instâncias não gerenciadas, use o comando instance-groups unmanaged get-named-ports:

gcloud compute instance-groups unmanaged get-named-ports instance-group-name \
    --zone=zone

Para remover todas as portas nomeadas de um grupo de instâncias não gerenciadas com a ferramenta de linha de comando gcloud, use o comando instance-groups unmanaged set-named-ports com uma lista vazia de portas nomeadas:

gcloud compute instance-groups unmanaged set-named-ports instance-group-name \
    --zone=zone \
    --named-ports=""

Em todos os exemplos acima, substitua o seguinte se presente:

  • instance-group-name: o nome do grupo de instâncias.
  • zone: a zona do grupo.
  • port-name e port-number: o nome e o número da porta representam um mapeamento de um nome escolhido para um número de porta. É possível especificar vários mapeamentos separados por vírgula. Por exemplo, port-one:80,port-two:8080 é uma lista válida de portas nomeadas.

API

  1. Descreva o grupo de instâncias e anote a impressão digital.

  2. Para adicionar portas nomeadas com a API, envie uma solicitação POST usando o método instanceGroups.setNamedPorts. Se você quiser remover todas as portas nomeadas, defina namedPorts como uma lista vazia.

    POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups/instance-group-name/setNamedPorts
    
    {
        "fingerprint": "fingerprint",
        "namedPorts": [
            {
            "name": "port-name",
            "port": port-number
            },
            {
            "name": "port-name",
            "port": port-number
            },
            ....
        ]
    }
    

    Substitua:

    • instance-group-name: o nome do grupo de instâncias.
    • zone: a zona do grupo.
    • project-id: o ID do projeto que contém o grupo.
    • port-name e port-number: o nome e o número da porta representam um mapeamento de um nome escolhido para um número de porta.
    • fingerprint: esta é a impressão digital da etapa anterior.
  3. Descreva o grupo de instâncias novamente e observe as portas nomeadas configuradas.

A seguir