Depois de criar um grupo de instâncias gerenciadas (MIG), convém adicionar ou remover VMs desse grupo para atender às necessidades da carga de trabalho. Se você atingiu o padrão limite para o número máximo de VMs que podem ser adicionadas a um MIG e você precisa de mais VMs; é possívelaumentar o limite de tamanho do MIG.
Para adicionar ou remover VMs em um MIG, faça o seguinte:
- Para adicionar ou remover VMs automaticamente, defina o tamanho de destino do MIG:
- usar o escalonamento automático para aplicativos sem estado;
- Definir manualmente o tamanho do MIG;
- Adicionar, remover ou abandonar instâncias específicas:
Antes de começar
-
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 selecionando uma das seguintes opções:
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.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
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 que você quer redimensionar.
Clique em Editar para modificar o grupo gerenciado de instâncias.
Em Número de instâncias, especifique o número de instâncias que você quer incluir no grupo. Se o escalonamento automático estiver ativado, o grupo vai adicionar ou remover instâncias automaticamente, conforme necessário. No entanto, é possível alterar os valores de número mínimo de instâncias e número máximo de instâncias para ajustar indiretamente o tamanho do grupo por meio do escalonador automático.
Clique em Salvar para aplicar o novo modelo.
- Não é possível desativar novas tentativas de criação para um MIG regional com um formato
de distribuição de destino
EVEN
. - Para MIGs regionais com um formato de distribuição de destino
BALANCED
ouANY_SINGLE_ZONE
, é necessário desativar a redistribuição proativa de instâncias antes de desativar o modo de novas tentativas de criação. - Não é possível desativar novas tentativas de criação para MIGs com escalonamento automático.
INSTANCE_GROUP_NAME
: o nome do MIG que você quer redimensionar.NEW_SIZE
: o número pretendido de instâncias em execução no grupo de instâncias gerenciadas.ZONE
: para MIGs zonais, a zona em que o MIG está localizado.REGION
: para MIGs regionais, a região em que o MIG está localizado.PROJECT_ID
: o ID do projetoZONE
: a zona em que o MIG está localizado. Para um MIG regional, substituazones/ZONE
porregions/REGION
e especifique a região. Para mais informações, consulte Sobre MIGs regionais.INSTANCE_GROUP_NAME
: o nome do MIG que você quer redimensionar.NEW_SIZE
: o número pretendido de instâncias em execução no grupo de instâncias gerenciadas.É possível ver quais instâncias estão sendo criadas e em qual modo usando o método
listManagedInstances
. Quando o modo de novas tentativas de criação está desativado, as instâncias criadas têm umcurrentAction
deCREATING_WITHOUT_RETRIES
.- 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.
- INSTANCE_GROUP_NAME é o nome do MIG regional ou por zona que receberá uma nova instância.
- INSTANCE_NAME é o nome que você quer atribuir à nova instância.
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 excluir instâncias individuais. Uma página é aberta com as propriedades do grupo e uma lista de instâncias incluídas nele.
Na seção Membros, na lista de instâncias, selecione uma ou mais instâncias que você quer excluir.
Clique em Excluir instância. As instâncias selecionadas são excluídas.
SUCCESS
será retornado se a CLI gcloud tiver excluído a instância.FAIL
será retornado para todas as instâncias se alguma instância especificada na solicitação não for membro do grupo, se algum membro já estiver sendo excluído ou abandonado ou se a solicitação falhar para qualquer outra motivo.SKIPPED
será retornado somente se você usar a sinalização--skip-instances-on-validation-error
e a instância não for membro do grupo ou se já estiver sendo excluída ou abandonada.MEMBER_NOT_FOUND
é retornado apenas para grupos regionais quando a CLI gcloud não conseguiu resolver a zona a partir do nome da instância.No console do Google 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 seção Membros, na lista de instâncias, selecione uma ou mais instâncias 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.
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 que você quer aumentar o limite de tamanho.
Clique em Editar para modificar o grupo de instâncias.
Expanda a seção de configurações avançadas clicando em Mostrar configuração avançada.
Em Resultados de chamadas de API da lista de instâncias gerenciadas, selecione a opção Paginado.
Clique em Salvar para aplicar as mudanças.
- Saiba como trabalhar com instâncias gerenciadas. Por exemplo, para excluir, abandonar e recriar instâncias gerenciadas.
- Veja informações sobre instâncias gerenciadas e os grupos que as contêm.
- Resolva problemas de grupos gerenciados de instâncias.
Terraform
Para usar os exemplos do Terraform nesta página em um ambiente de desenvolvimento local, instale e inicialize a gcloud CLI e, em seguida, configure o Application Default Credentials com suas credenciais de usuário.
Confira mais informações em Set up authentication for a local development environment.
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.
Definir o tamanho de destino do grupo
É possível definir o tamanho de destino de um MIG automaticamente usando um escalonador automático ou definir o tamanho manualmente.
Como adicionar e remover VMs automaticamente em um MIG
É possível configurar grupos de instâncias gerenciadas para adicionar ou remover VMs automaticamente com base nas cargas de trabalho delas. Os aplicativos lidam de maneira suave com aumentos no tráfego, e você reduz os custos quando a necessidade de recursos de computação é menor. Para iniciar o escalonamento dos grupos de instâncias gerenciadas, consulte Criar um MIG com o escalonamento automático.
Para mais informações, consulte Escalonamento automático de grupos de instâncias.
Como definir manualmente o tamanho de um MIG
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. Se você aumentar o tamanho, o grupo usará o modelo de instância atual para adicionar novas instâncias. Se você diminuir o tamanho, o grupo de instâncias gerenciadas excluirá as VMs do grupo. O grupo exclui instâncias com
currentAction
deDELETING
,CREATING
eRECREATING
antes de excluir instâncias em execução sem ações agendadas.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.
Console
gcloud
Use o comando
resize
.gcloud compute instance-groups managed resize INSTANCE_GROUP_NAME \ --size NEW_SIZE \ --zone ZONE
REST
Chame o método
resize
para um recurso MIG zonal ou regional . Especifique o novo tamanho do grupo de instâncias como um parâmetro.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resize?size=NEW_SIZE
Se o grupo for de instâncias gerenciadas por região, substitua
zones/ZONE
porregions/REGION
.Depois que você faz uma solicitação para redimensionar um grupo de instâncias gerenciadas, as VMs são iniciadas ou interrompidas assim que o sistema pode provisioná-las ou excluí-las. Esse processo pode demorar bastante, dependendo do número de instâncias no grupo. Verifique o status das instâncias no grupo de instâncias gerenciadas.
Como desativar o modo de novas tentativas de criação durante o redimensionamento
Por padrão, se a criação inicial de uma instância de VM falhar, o grupo de instâncias gerenciadas tentará continuamente criar a VM até que ela seja gerada. No entanto, se você não quiser novas tentativas de criação automática, desative o modo de novas tentativas de criação ao redimensionar o grupo de instâncias. Nesse modo, o grupo de instâncias gerenciadas tenta criar todas as instâncias apenas uma vez. Se houver um erro durante a criação da instância, o grupo de instâncias gerenciadas desistirá dessa instância, a removerá da lista de instâncias gerenciadas do grupo e diminuirá o tamanho de destino do grupo de instâncias gerenciadas.
Esse modo se aplica somente durante a primeira tentativa de criação de uma VM. Se uma VM for criada com sucesso enquanto esse modo estiver ativado, ela se comportará da mesma forma que todas as outras VMs criadas com uma solicitação de redimensionamento regular. Em particular, se uma VM em execução é desativada inesperadamente em um momento posterior e precisa ser recriada, esse modo não afeta o comportamento de recriação nesse cenário.
A desativação do modo de novas tentativas de criação é especialmente útil em cenários em que você tem sistemas que criam automaticamente grupos de VMs em que não é necessário um número exato de VMs. Talvez você prefira se estabilizar rapidamente no tamanho do grupo de instâncias gerenciadas e ser flexível no número de VMs no grupo, em vez de esperar indefinidamente até que todas as instâncias solicitadas sejam criadas, o que poderá ser adiado de forma temporária ou permanente devido a erros de cota ou outros problemas não relacionados.
Limitações
Para redimensionar um grupo gerenciado de instâncias quando o modo de novas tentativas de criação está desativado, use a CLI do Google Cloud ou a REST.
gcloud
Use o comando
resize
beta com a sinalização--no-creation-retries
.gcloud beta compute instance-groups managed resize INSTANCE_GROUP_NAME \ --size NEW_SIZE \ --no-creation-retries \ [--region REGION | --zone ZONE]
Substitua:
REST
Para um MIG zonal, use o método
instanceGroupManagers.resizeAdvanced
beta. Para um MIG regional, use o métodoregionInstanceGroupManagers.resizeAdvanced
beta. Especifique o novo tamanho do grupo de instâncias e o camponoCreationRetries
no corpo da solicitação.Por exemplo, faça a seguinte chamada para redimensionar um MIG zonal com o modo de novas tentativas de criação desativado.
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeAdvanced { "targetSize": NEW_SIZE, "noCreationRetries": true }
Substitua:
Adicionar, remover ou abandonar instâncias específicas
Como criar instâncias com nomes específicos em MIGs
Se você tiver um sistema que depende de nomes específicos, adicione VMs com esses nomes a um MIG que já existe.
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:
É possível usar a gcloud CLI ou a REST para adicionar VMs com nomes específicos a um MIG que já existe.
gcloud
Use o comando
instance-groups managed create-instance
.gcloud compute instance-groups managed create-instance INSTANCE_GROUP_NAME \ --instance INSTANCE_NAME \ [--region REGION | --zone ZONE]
Substitua:
REST
Envie uma solicitação POST ao método
regionInstanceGroupManagers.createInstances
. Para grupos de instâncias gerenciadas zonais, use o métodoinstanceGroupManagers.createInstances
. No corpo da solicitação, inclua o campoinstances
com os nomes de uma ou mais instâncias.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/createInstances { "instances": [ { "name": "INSTANCE_NAME_1" }, { "name": "INSTANCE_NAME_2" } ] }
Como excluir instâncias específicas de um grupo
É possível excluir instâncias de VM individuais 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 VMs de todos os pools de destino de que são membros.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.
Console
gcloud
Para excluir uma instância com a CLI gcloud, use o comando
instance-groups managed delete-instances
:gcloud compute instance-groups managed delete-instances INSTANCE_GROUP_NAME \ --instances INSTANCE_NAME_1,INSTANCE_NAME_2 \ [--region REGION | --zone ZONE]
O comando retorna o status da operação por instância:
Se você prevê que sua solicitação de exclusão pode entrar em conflito com operações simultâneas, use a sinalização
--skip-instances-on-validation-error
. Essa sinalização especifica se a solicitação deve continuar, mesmo que a solicitação inclua instâncias que não sejam membros do grupo ou que já estejam sendo excluídas ou abandonadas. Por exemplo, instâncias que estão sendo excluídas por um escalonador automático. Por padrão, se você omitir essa sinalização e essa instância for especificada na solicitação, a operação falhará. A operação sempre falhará se a solicitação contiver um nome de instância formatado incorretamente ou uma referência a uma instância que exista em uma zona ou região diferente da zona ou região do grupo.Por exemplo, o comando a seguir solicita a exclusão de quatro instâncias. No entanto, três delas não estão mais no grupo:
gcloud compute instance-groups managed delete-instances example-mig \ --instances=example-instance-1,example-instance-2,example-instance-3,example-instance-4 \ --region=us-central1 \ --skip-instances-on-validation-error
Neste exemplo, três instâncias não foram aprovadas na validação. Portanto, elas foram ignoradas, enquanto o
example-instance-3
foi excluído:Updated [https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/instanceGroupManagers/example-mig]. PROJECT ZONE INSTANCE STATUS VALIDATION_ERROR example-project us-central1-a example-instance-1 SKIPPED Cannot delete instance https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-instance-1 that was already deleted. example-project us-central1-a example-instance-2 SKIPPED Cannot delete instance https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-instance-2 that was already abandoned. example-project us-central1-a example-instance-3 SUCCESS example-project us-central1-a example-instance-4 SKIPPED Cannot find instance https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-instance-4.
Se você omitir a sinalização
--skip-instances-on-validation-error
e qualquer instância não passar na validação, nenhuma instância será excluída:gcloud compute instance-groups managed delete-instances example-mig \ --instances=example-instance-1,example-instance-2,example-instance-3,example-instance-4 \ --region=us-central1 Updated [https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/instanceGroupManagers/example-mig]. PROJECT ZONE INSTANCE STATUS example-project us-central1-a example-instance-1 FAIL example-project us-central1-a example-instance-2 FAIL example-project us-central1-a example-instance-3 FAIL example-project us-central1-a example-instance-4 FAIL
REST
Envie uma solicitação POST ao método
regionInstanceGroupManagers.deleteInstances
. Para grupos de instâncias gerenciadas zonais, use o métodoinstanceGroupManagers.deleteInstances
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/deleteInstances { "instances": [ "zones/ZONE/instances/INSTANCE_NAME_1", "zones/ZONE/instances/INSTANCE_NAME_2" ] }
Se você prevê que sua solicitação de exclusão pode entrar em conflito com operações simultâneas, use a sinalização
skipInstancesOnValidationError
. Esse campo especifica se a solicitação deve continuar, mesmo que a solicitação inclua instâncias que não sejam membros do grupo ou que já estejam sendo excluídas ou abandonadas. Por exemplo, instâncias que estão sendo excluídas por um escalonador automático. Por padrão, se você omitir essa sinalização e essa instância for especificada na solicitação, a operação falhará. A operação sempre falhará se a solicitação contiver um nome de instância formatado incorretamente ou uma referência a uma instância que exista em uma zona ou região diferente da zona ou região do grupo.Por exemplo, a seguinte solicitação para excluir duas instâncias será bem-sucedida, mesmo que uma delas já tenha sido excluída ou excluída:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/deleteInstances { "instances": [ "zones/ZONE/instances/INSTANCE_NAME_1", "zones/ZONE/instances/INSTANCE_NAME_2" ], "skipInstancesOnValidationError": true }
Visualize as instâncias que foram ignoradas na operação visualizando a operação. Para MIGs regionais, use o método
regionOperations.get
. Para MIGs por zona, use o métodozoneOperations.get
. Os avisos são listados no campo de aviso da operação.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.
Não é possível adicionar uma instância de VM abandonada de volta ao grupo. 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. Para um MIG regional com escalonamento automático definido para o modoONLY_SCALE_OUT
, se você abandonar uma instância de VM para reduzir o tamanho de destino do MIG para o tamanho recomendado pelo escalonador automático, o escalonador automático pode criar uma nova instância de VM na mesma zona da VM abandonada. Nesses casos, para evitar a criação de uma nova instância de VM, tente abandonar a instância de VM de uma zona diferente.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.
Console
gcloud
Para remover uma instância do grupo sem excluir a VM, use o comando
instance-groups managed abandon-instances
.gcloud compute instance-groups managed abandon-instances INSTANCE_GROUP_NAME \ --instances INSTANCE_NAME_1,INSTANCE_NAME_2 \ [--region REGION | --zone ZONE]
REST
Envie uma solicitação POST ao método
regionInstanceGroupManagers.abandonInstances
. Para grupos de instâncias gerenciadas zonais, use o métodoinstanceGroupManagers.abandonInstances
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/abandonInstances { "instances": [ "zones/ZONE/instances/INSTANCE_NAME_1", "zones/ZONE/instances/INSTANCE_NAME_2" ] }
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.
Aumentar o limite de tamanho do grupo
Por padrão, o limite de tamanho para um MIG zonal é de 1.000 VMs, e o limite de tamanho para um MIG regional é de 2.000 VMs. É possível aumentar ainda mais esses limites para 2.000 VMs em um MIG zonal e 4.000 VMs para um MIG regional.
Para aumentar os limites, defina o campo
listManagedInstancesResults
do grupo comoPAGINATED
. Se você ainda precisar de mais VMs no grupo, crie vários MIGs ou entre em contato com o suporte.Console
gcloud
Para um MIG atual, use o comando
update
Beta:gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \ --list-managed-instances-results=PAGINATED
Para um novo MIG, use o comando Beta
create
:gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --template INSTANCE_TEMPLATE \ --size SIZE \ --list-managed-instances-results=PAGINATED
Terraform
Para aumentar o limite de tamanho de um MIG, defina o argumento
list_managed_instances_results
comoPAGINATED
.O exemplo a seguir aumenta o limite de tamanho de um MIG zonal. Para mais informações sobre o recurso usado na amostra, consulte Recurso
google_compute_instance_group_manager
. Para um MIG regional, use o métodogoogle_compute_region_instance_group_manager
.Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
REST
Para um MIG zonal atual, use a Beta
instanceGroupManagers.patch
método ou, para um MIG regional, use o BetaregionInstanceGroupManagers.patch
método –por exemplo:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/region/REGION/regionInstanceGroupManagers/INSTANCE_GROUP_NAME { "listManagedInstancesResults": "PAGINATED", }
Para um MIG zonal, use o método
instanceGroupManagers.insert
ou, para um MIG regional, use o métodoregionInstanceGroupManagers.insert
.Se você quiser voltar aos resultados de lista sem páginas, também precisará reverter para o limite de tamanho padrão do grupo. Para voltar, primeiro verifique se o grupo não excede o limite de tamanho padrão e, em seguida, defina o campo
listManagedInstancesResults
comoPAGELESS
.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-12-22 UTC.
-