Uma instância gerenciada é uma entidade de dados que representa o estado pretendido de uma instância de máquina virtual (VM) real em um grupo de instâncias gerenciadas (MIG, na sigla em inglês). Leia este documento para saber como trabalhar de maneira confiável com as instâncias gerenciadas em um MIG. Por exemplo, talvez seja necessário adicionar, remover, atualizar ou receber informações sobre uma instância específica.
Para garantir que suas alterações de configuração não sejam revertidas pelo MIG, é importante usar os métodos descritos neste documento. Se você trabalhar fora dos métodos do grupo, o MIG detectará alterações e poderá tentar reparar o grupo. Por exemplo, se você excluir uma instância em um grupo, o MIG poderá recriá-la automaticamente de acordo com a especificação da instância gerenciada.
Antes de começar
- Para usar os exemplos de linha de comando deste guia, siga estas etapas:
- Instale ou atualize a ferramenta de linha de comando gcloud para a versão mais recente.
- Defina uma região e uma zona padrão.
- Para usar os exemplos da API deste guia, configure o acesso a ela.
- Crie um grupo de instâncias com base em um modelo de instância.
O que é uma instância gerenciada?
Uma instância gerenciada é uma entidade de dados dentro de uma MIG que contém o status atual e o estado pretendido de uma instância de VM real.
O status atual de uma instância gerenciada inclui os campos a seguir:
- Status ciclo de vida da instância, por
exemplo,
RUNNING
eSTOPPING
. - Ação atual
realizada pelo MIG em uma instância, por exemplo:
RESTARTING
,VERIFYING
eNONE
. - Estado de integridade
da instância, por
exemplo,
HEALTHY
eUNHEALTHY
.
O estado pretendido de uma instância gerenciada para uma instância de VM real inclui o seguinte:
- Versão pretendida, ou seja, o nome da versão e o modelo de instância a serem usados para a instância.
- Estado preservado de itens (como discos ou metadados) a serem preservados.
Como mostrado na figura 1, para cada instância gerenciada em um MIG, o MIG mantém uma VM real funcionando de acordo com a especificação da instância gerenciada.
Figura 1. Relação entre instâncias gerenciadas e VMs correspondentes.
Para visualizar as especificações de uma instância gerenciada, consulte Como receber informações sobre as instâncias gerenciadas em um MIG.
Como adicionar instâncias a um MIG
Para adicionar mais instâncias a um MIG, é possível:
- Definir manualmente o tamanho do MIG;
- usar o escalonamento automático para aplicativos sem estado;
- Criar instâncias com nomes específicos.
Para verificar se as instâncias adicionadas recentemente estão em execução, verifique o status do grupo ou das instâncias gerenciadas.
Redimensionamento manual
Se um grupo de instâncias gerenciadas ainda não estiver definido para escalonar automaticamente, é possível redimensioná-lo manualmente para alterar o número de instâncias no grupo. Consulte Como redimensionar manualmente um MIG.
Escalonamento automático
Configure grupos de instâncias gerenciadas para adicionar ou remover instâncias automaticamente com base nas cargas de trabalho delas. Os aplicativos lidam de maneira suave com aumentos no tráfego, e é possível reduzir os custos quando a necessidade de recursos de computação for menor. Para saber mais sobre como escalonar seu MIG automaticamente, consulte Como fazer escalonamento automático de grupos de instâncias.
Como criar instâncias com nomes específicos
Se você tiver um sistema que depende de nomes específicos, use a ferramenta gcloud
ou a API para adicionar VMs com nomes específicos a um MIG existente.
Os nomes que você atribuir a essas instâncias gerenciadas persistirão se o MIG recriar a VM. Para ver mais informações sobre como preservar o estado de instâncias de MIG, consulte MIGs com estado.
Limitações
Se você criar instâncias com nomes específicos, observe o seguinte:
- Desative o escalonamento automático durante o processo de criação da instância.
- Defina a política de atualização do MIG como oportunista.
- Se você estiver atualizando um MIG regional, observe o seguinte:
- Desative a redistribuição proativa de instâncias.
- Não é possível selecionar em qual zona criar a VM.
- Não será possível usar nomes de instância de VM duplicados no mesmo projeto.
gcloud
Use o subcomando create-instances
:
gcloud compute instance-groups managed create-instance instance-group-name \ --instance managed-instance-name \ [--region region | --zone zone]
Substitua estes itens:
- instance-group-name é o nome do MIG regional ou por zona que receberá uma nova instância.
- managed-instance-name é o nome que você quer atribuir à nova instância.
API
Na API, faça uma solicitação POST para o método regionInstanceGroupManagers.createInstances
. Para grupos de instâncias gerenciadas zonais, use o método instanceGroupManagers.createInstances
. No corpo da solicitação, inclua o campo instances
com os nomes de uma ou mais instâncias.
POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group-name/createInstances { "instances": [ { "name": "instance-name-1" }, { "name": "instance-name-2" } ] }
Como atualizar instâncias selecionadas em um grupo
Consulte atualizar instâncias de maneira seletiva em um MIG.
Como excluir instâncias de um MIG
Quando você exclui instâncias gerenciadas, o MIG reduz o targetSize
do grupo e exclui as instâncias de VM correspondentes. O MIG remove as instâncias dos pools de destino que as contêm.
A exclusão de instâncias de um grupo de instâncias gerenciadas não altera as configurações especificadas do escalonador automático. Se você excluir instâncias de um grupo de instâncias gerenciadas, o escalonador automático poderá detectar um aumento na carga de trabalho nas outras instâncias do grupo e aumentar o tamanho dele para o nível anterior. Para evitar isso, interrompa o escalonador automático antes de tentar excluir as instâncias.
Se o grupo fizer parte de um serviço de back-end que tenha ativado a diminuição da conexão, poderá levar até 60 segundos após a duração da diminuição da conexão antes que a instância de VM seja removida ou excluída.
Para excluir uma instância gerenciada e, portanto, remover também a respectiva instância de VM, basta executar as ações a seguir:
- Redimensionar o MIG. O MIG escolhe as instâncias que serão excluídas.
- Redimensionar manualmente o MIG.
- usar o escalonamento automático para aplicativos sem estado;
- Excluir o grupo inteiro.
- Excluir ou abandonar instâncias específicas explicitamente.
Como excluir instâncias específicas
É possível excluir instâncias específicas em um grupo de instâncias gerenciadas. A exclusão de instâncias reduz o targetSize
especificado do grupo de instâncias e remove as instâncias de todos os pools de destino de que façam parte. Se você configurar um MIG com estado, o grupo também excluirá as configurações de estado preservadas das instâncias.
A exclusão de instâncias de um grupo de instâncias gerenciadas não altera as configurações especificadas do escalonador automático. Se você excluir instâncias de um grupo de instâncias gerenciadas, o escalonador automático poderá detectar um aumento na carga de trabalho nas outras instâncias do grupo e aumentar o tamanho dele para o nível anterior. Para evitar isso, interrompa o escalonador automático antes de tentar excluir as instâncias.
Se o grupo fizer parte de um serviço de back-end que tenha ativado a diminuição da conexão, poderá levar até 60 segundos após a duração da diminuição da conexão antes que a instância de VM seja removida ou excluída.
Para excluir instâncias de um grupo gerenciado de instâncias, use o
Console do Google Cloud
, a
ferramenta de linha de comando gcloud
ou a
API.
Console
No Console do 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 excluir instâncias individuais. Uma página é aberta com as propriedades do grupo e uma lista de instâncias incluídas nele.
Selecione na lista uma ou mais instâncias que você quer excluir.
Clique em Excluir instância. As instâncias selecionadas são excluídas.
gcloud
Para excluir uma instância com a ferramenta gcloud
, use o subcomando instance-groups managed delete-instances
:
gcloud compute instance-groups managed delete-instances instance-group-name \ --instances example-i3n2,example-z2x9 \ [--region region | --zone zone]
API
Na API, faça uma solicitação POST para o método regionInstanceGroupManagers.deleteInstances
. Para grupos de instâncias gerenciadas zonais, use o método instanceGroupManagers.deleteInstances
.
POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group-name/deleteInstances { "instances": [ "zones/zone/instances/example-instance-i3n2", "zones/zone/instances/example-instance-l6n1" ] }
Depois que você fizer uma solicitação para excluir instâncias em um grupo de instâncias gerenciadas, as instâncias vão parar assim que o sistema puder excluí-las. Esse processo poderá durar uma quantidade significativa de tempo, dependendo do número de instâncias que você excluir do grupo. Verifique o status do grupo ou das instâncias gerenciadas.
Como abandonar instâncias de um MIG
Separe uma instância de VM de um grupo de instâncias gerenciadas para depurar problemas com instâncias individuais mais facilmente sem afetar o grupo como um todo. Abandonar uma instância de um grupo também remove a instância dos balanceadores de carga que foram atribuídos ao grupo de instâncias gerenciadas. Os pools de destino que foram atribuídos manualmente a instâncias individuais específicas não são removidos.
O abandono de instâncias reduz o targetSize
do grupo de instâncias, mas não altera as configurações especificadas do escalonador automático. Grupos de instâncias gerenciadas com um escalonador automático continuam a adicionar ou remover instâncias automaticamente conforme necessário.
Se o grupo fizer parte de um serviço de back-end que tenha ativado a diminuição da conexão, poderá levar até 60 segundos após a duração da diminuição da conexão antes que a instância de VM seja removida ou excluída.
Para abandonar instâncias de um grupo gerenciado de instâncias use o
Console do Google Cloud
, a
ferramenta gcloud
ou a
API.
Console
No Console do Cloud, acesse a página Grupos de instâncias.
Na coluna Nome da lista, clique no nome do grupo com as instâncias que você quer remover. Uma página é aberta com as propriedades do grupo e uma lista de instâncias incluídas nele.
Na lista de instâncias, selecione as que você quer remover do grupo.
Clique em Remover do grupo. As instâncias selecionadas deixam o grupo, mas continuam a ser executadas fora dele.
gcloud
Para remover uma instância do grupo sem excluir a VM, use o subcomando abandon-instances
.
gcloud compute instance-groups managed abandon-instances instance-group-name \ --instances example-i3n2,example-z2x9 \ [--region region | --zone zone]
API
Na API, faça uma solicitação POST para o método regionInstanceGroupManagers.abandonInstances
. Para grupos de instâncias gerenciadas zonais, use o método instanceGroupManagers.abandonInstances
.
POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group-name/abandonInstances { "instances": [ "zones/zone/instances/example-instance-i3n2", "zones/zone/instances/example-instance-l6n1" ] }
Depois que você fizer uma solicitação para abandonar instâncias de um grupo de instâncias gerenciadas, o grupo removerá as instâncias o mais rápido possível. Verifique o status do grupo ou das instâncias gerenciadas.
Como recriar instâncias em um MIG
A recriação de uma instância exclui a VM especificada e cria uma nova VM usando a configuração que é atribuída à instância gerenciada.
Use esse método para atualizar as VMs selecionadas para que elas usem o modelo de instância mais recente e a configuração com estado, se houver. Se você precisar recriar todas as VMs em um grupo de instâncias gerenciadas, inicie uma atualização contínua.
Se o grupo fizer parte de um serviço de back-end que tenha ativado a diminuição da conexão, poderá levar até 60 segundos após a duração da diminuição da conexão antes que a instância de VM seja removida ou excluída.
Recrie as instâncias de VM selecionadas no grupo de instâncias gerenciadas usando a ferramenta gcloud
ou a API.
gcloud
Use o subcomando instance-groups managed recreate-instances
.
gcloud compute instance-groups managed recreate-instances instance-group-name \ --instances example-i3n2,example-z2x9 \ [--region region | --zone zone]
API
Na API, faça uma solicitação POST para o método regionInstanceGroupManagers.recreateInstances
. Para grupos de instâncias gerenciadas zonais, use o método instanceGroupManagers.recreateInstances
.
POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group-name/recreateInstances { "instances": [ "zones/zone/instances/example-instance-i3n2", "zones/zone/instances/example-instance-l6n1" ] }
Depois que você fizer uma solicitação para recriar instâncias de VM em um grupo de instâncias gerenciadas, as novas VMs serão iniciadas assim que o sistema puder provisioná-las. Esse processo pode demorar significativamente dependendo do número de instâncias recriadas. Verifique o status do grupo ou das instâncias gerenciadas.
Como ver informações sobre instâncias em um MIG
Consulte Como ver informações sobre as instâncias gerenciadas em um MIG.
Como configurar instâncias com estado em um MIG
Para saber mais, consulte Como configurar MIGs com estado.
A seguir
- Saiba mais sobre Como lançar atualizações para grupos de instâncias gerenciadas.
- Saiba mais sobre como aplicar recomendações de tipo de máquina para MIGs.
- Teste um tutorial: