Um grupo de instâncias não gerenciadas é um conjunto de instâncias de máquina virtual (VM) que residem em um único projeto, zona, rede VPC e sub-rede. Esses grupos são úteis para agrupar VMs que exigem configurações ou ajustes individuais. É possível usar um grupo de instâncias não gerenciadas no serviço de back-end de um balanceador de carga.
Para VMs que exigem configurações consistentes, use um grupo gerenciado de instâncias (MIG, na sigla em inglês) baseado em um modelo de instância. Quando possível, considere usar grupos gerenciados de instâncias em vez de grupos não gerenciados. Para criar um grupo gerenciado de instâncias, consulte Criar um MIG.
É 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 ver o número de VMs por grupo de instâncias compatíveis com o Cloud Load Balancing, 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
- Leia sobre a diferença entre grupos de instâncias gerenciadas e não gerenciadas.
-
Configure a autenticação, caso ainda não tenha feito isso.
A autenticação é
o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud.
Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no
Compute Engine da seguinte maneira.
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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- No Console do Google Cloud, acesse a página Grupos de instâncias.
- Clique em Criar grupo de instâncias.
- Clique em Novo grupo de instâncias não gerenciadas.
- Digite um nome para o grupo de instâncias não gerenciadas.
- Em Local, selecione uma região e uma zona.
- Selecione uma Rede e uma Sub-rede.
- Em Instâncias de VM, selecione as VMs para adicionar a este grupo.
- Clique em Criar.
instance-group-name
: o nome do grupo do qual você quer remover as VMs.zone
: a zona em que você quer remover todas as portas nomeadas do grupo.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.instance-group-name
: o nome do grupo a ser descrito.zone
: a zona do grupo.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.- No Console do Google Cloud, acesse a página Grupos de instâncias.
- Selecione um ou mais grupos de instâncias não gerenciadas na lista.
- Clique em Excluir para remover os grupos. Os grupos são removidos, mas as VMs neles não são excluídas.
instance-group-name
: o nome do grupo que você quer excluir.zone
: a zona do grupo.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.- No Console do Google Cloud, acesse a página Grupos de instâncias.
- 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.
- Clique em Editar para modificar esse grupo não gerenciado de instâncias.
- 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.
- Clique em Salvar para adicionar as novas VMs ao grupo.
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.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
einstance-2-name
: são nomes das VMs, na mesma zona, rede VPC e sub-rede que você quer adicionar ao grupo.- No Console do Google Cloud, acesse a página Grupos de instâncias.
- 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.
instance-group-name
: o nome do grupo cujos membros você quer listar.zone
: a zona do grupo.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.- No Console do Google Cloud, acesse a página Grupos de instâncias.
- 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.
- Na lista, selecione uma ou mais VMs que você quer remover do grupo.
- 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.
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.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
einstance-2-name
: são nomes das VMs que você quer desassociar do grupo.- O tráfego é balanceado entre todas as portas com o mesmo nome.
- Um determinado serviço de back-end só pode encaminhar tráfego para uma porta nomeada de cada vez.
Se você usar vários números de porta para uma porta nomeada, todas as portas precisarão ser do mesmo aplicativo.
Por exemplo,
http:80,http:8080
funciona, mashttp:80,http:443
não funciona porque a porta 80 não é compatível com 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.
- Na coluna Nome da lista, clique no nome do grupo de instâncias em que você quer especificar portas nomeadas. Uma página é aberta com as propriedades do grupo de instâncias.
- Clique em Editar para modificar esse grupo não gerenciado de instâncias.
- Na seção Mapeamento de portas, clique em Adicionar porta e insira um nome de porta e o número dela. Adicione ou remova outras portas nomeadas conforme necessário.
- Clique em Salvar para atualizar a lista de portas nomeadas do grupo de instâncias não gerenciadas.
instance-group-name
: o nome do grupo de instâncias.zone
: a zona do grupo.port-name
eport-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.Descreva o grupo de instâncias e observe a fingerprint.
Para adicionar portas nomeadas, envie uma solicitação
POST
usando o método instanceGroups.setNamedPorts. Se você quiser remover todas as portas nomeadas, definanamedPorts
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
eport-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.
- Crie um grupo gerenciado de instâncias com VMs em uma única zona.
- Crie um grupo gerenciado de instâncias com VMs em várias zonas em uma região.
- Saiba mais sobre o Cloud Load Balancing.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.
Como trabalhar com grupos de instâncias não gerenciadas
Criar grupos
Ao contrário de grupos gerenciados de instâncias, os grupos não gerenciados de instâncias 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
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:
REST
Para criar um grupo de instâncias não gerenciadas com REST, 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:
Quando você cria um novo grupo de instâncias não gerenciadas com a CLI do Google Cloud ou com a REST 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 Google Cloud, a página Grupos de instâncias lista os grupos de instâncias gerenciadas e não gerenciadas.
gcloud
Para listar todos os grupos de instâncias não gerenciadas no seu projeto com a CLI do Google Cloud, use lista de grupos de instâncias não gerenciadas:
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:
REST
Para listar grupos de instâncias com REST, 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:
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
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:
REST
Para excluir um grupo de instâncias não gerenciadas com REST, 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:
Filiação a grupo
Como adicionar VMs
Depois de criar um grupo de instâncias não gerenciadas, é possível adicionar VMs ao grupo. No entanto, só será possível agrupar VMs se a primeira ou única interface de rede (
nic0
) de cada VM estiver anexada à mesma rede VPC. O número máximo de VMs que podem ser adicionadas a um grupo de instâncias não gerenciadas é 2.000. Se você quiser adicionar mais de 2.000 VMs ao grupo, entre em contato com o suporte.Console
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:
REST
Para adicionar VMs a um grupo de instâncias não gerenciadas, 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://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-1-name", "instance": "https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-2-name", .... } ] }
Substitua:
Como listar VMs
É possível recuperar uma lista de VMs incluídas em um grupo de instâncias não gerenciadas.
Console
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:
REST
Para listar VMs em um grupo de instâncias não gerenciadas, 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:
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
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:
REST
Para remover VMs de um grupo de instâncias não gerenciadas, 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://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-1-name", "instance": "https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-2-name", .... } ] }
Substitua:
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. O nome da porta representa o nome de um serviço ou aplicativo. Esse nome representa a porta em que o serviço ou aplicativo é executado.
As portas nomeadas são utilizadas pelo Cloud Load Balancing. Balanceadores de carga que atuam como proxies se inscrevem em somente uma porta nomeada na configuração do 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 nomeada
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 no grupo na porta 80 usando um protocolo, como TCP. O protocolo é definido no serviço de back-end do balanceador de carga.As portas nomeadas são metadados simples usados por balanceadores de carga do proxy. Elas não controlam recursos de rede ou firewall no Compute Engine.
Vários números de porta para uma porta nomeada
É possível atribuir várias portas para cada nome de serviço. Também é possível atribuir vários nomes de serviço a cada porta.
Tenha em mente os seguintes pontos:
É possível definir várias portas nomeadas em um grupo de instâncias. Para ilustrar, considere um serviço de back-end de exemplo que assina a porta nomeada
http-port
e que tem 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 porta 79 para VMs eminstance-group-b
.Quando você 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 exibir 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 exibir.
Por exemplo, suponha que você tenha três aplicativos, cada um com seu próprio balanceador de carga. Cada aplicativo tem um número de porta: 81 para
app1
, 82 paraapp2
e 83 paraapp3
. Supondo que os três serviços de back-end estejam usando um grupo de instâncias comum, atribua as portas nomeadas desse 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 balanceador de carga de aplicativo externo ou interno, a verificação de integridade precisa ter a flag
--use-serving-port
em vez de um número de porta específico de dois minutos. Essa opção não está disponível no Console do Google Cloud. Para definir--use-serving-port
, você precisa usar a CLI do Google Cloud ou a API.Suponha que você tenha um aplicativo que balanceie 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. É possível atribuir as portas para esses grupos de instâncias como
[app:81, 82, 83]
. A verificação de integridade desse cenário precisa ter a sinalização--use-serving-port
.Para mais informações, consulte a documentação de verificação de integridade do balanceamento de carga.
Portas nomeadas e regras de firewall
Portas nomeadas não criam nem modificam regras de firewall do Google Cloud. Para permitir o tráfego para as VMs de back-end, você ainda precisa 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, configure também o serviço de back-end. Por exemplo, suponha que você definiu 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, faça referência à porta nomeada na configuração do serviço de back-end com o
--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
Como criar portas nomeadas
Console
gcloud
Para adicionar portas nomeadas a um grupo não gerenciado de instâncias, 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 não gerenciado de instâncias, use o comando
instance-groups unmanaged get-named-ports
:Defina uma ou mais portas nomeadas usando o comando
set-named-ports
:gcloud compute instance-groups unmanaged set-named-ports INSTANCE_GROUP \ --named-ports PORT_NAME:PORT,PORT_NAME:PORT
Por exemplo:
gcloud compute instance-groups unmanaged 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, se as portas
10
,20
e80
forem para o mesmo aplicativo, será possível atribuirname1
a todas essas portas. Além disso, é possível atribuir dois nomes,name2
ename3
, à porta8080
. Por fim, é possível atribuir a porta9000
aname4
, como no exemplo a seguir:gcloud compute instance-groups unmanaged set-named-ports INSTANCE_GROUP \ --named-ports name1:10,name1:20,name1:80,\ name2:8080,name3:8080,\ name4:9000
Para remover todas as portas nomeadas de um grupo de instâncias não gerenciadas com a CLI do Google Cloud, 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:
REST
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 2024-09-24 UTC.
-