Como criar grupos de instâncias gerenciadas

Um grupo de instâncias gerenciadas (MIG, na sigla em inglês) contém instâncias idênticas que podem ser gerenciadas como uma única entidade em uma única zona. Os grupos de instâncias gerenciadas mantêm a alta disponibilidade dos apps porque as instâncias ficam disponíveis (ou seja, no estado RUNNING) de maneira proativa. Os grupos de instâncias gerenciadas são compatíveis com recuperação automática, balanceamento de carga, escalonamento automático, atualizações graduais e mais.

Também é possível criar grupos de instâncias gerenciadas regionais que contêm instâncias em várias zonas na mesma região.

Para saber mais sobre grupos de instâncias, leia a Visão geral de grupos de instâncias.

Antes de começar

Limitações

  • Cada grupo de instâncias gerenciadas pode conter até 1.000 instâncias de máquina virtual (VM, na sigla em inglês).
  • Na atualização de um grupo de instâncias gerenciadas, é possível especificar no máximo 1.000 instâncias gerenciadas em uma única solicitação.

Como usar grupos de instâncias gerenciadas para apps sem estado

Grupos de instâncias gerenciadas são compatíveis com apps sem estado que não dependem do estado específico das instâncias de VM subjacentes para execução. Isso permite recursos como escalonamento automático e recuperação automática, em que o grupo de instâncias gerenciadas pode excluir e recriar instâncias automaticamente. Além disso, se uma instância for excluída do grupo de instâncias gerenciadas devido a uma ação do usuário, como parte da recuperação automática ou devido à manutenção de infraestrutura, e ela não estiver definida para migração em tempo real, o grupo de instâncias a recriará automaticamente com um novo disco permanente raiz.

Devido à natureza sem estado dos grupos de instâncias gerenciadas, é preciso projetar ou adaptar seu app para que não dependa de propriedades específicas da instância que não permanecem, como um endereço IP ou dados na memória. Da mesma maneira, o comportamento padrão dos discos permanentes de inicialização é excluí-las quando a instância de VM correspondente for excluída. Portanto, não dependa de discos de inicialização como dados permanentes em um grupo de instâncias gerenciadas.

Para manter os dados, a recomendação do Google é manter as imagens do SO atualizadas, usar scripts de inicialização e fazer backup dos dados em outro local centralizado, como o Google Cloud Storage.

Nos modelos de instância, especifique uma imagem de contêiner ou uma imagem personalizada e os scripts de inicialização relevantes para que, quando uma instância for recriada, ela tenha os apps necessários instalados e receba acesso aos dados exigidos. Para mais recomendações relacionadas à criação de modelos de instâncias, leia Modelos deterministas de instância.

Para salvar os discos associados aos grupos de instâncias gerenciadas, desative a opção disks.autoDelete para impedir a exclusão de discos permanentes. Se a instância que usa o disco for excluída (por exemplo, se o autoescalador reduzir o grupo ou se você excluir manualmente a instância), será necessário limpar manualmente os discos restantes, se desejar.

Como criar um grupo de instâncias gerenciadas

Antes de criar um grupo de instâncias gerenciadas, crie um modelo de instância para especificar a imagem do sistema operacional ou do contêiner e as configurações de cada instância do grupo.

Depois de criar o modelo, crie o grupo de instâncias gerenciadas por meio do Console do Google Cloud Platform, da ferramenta gcloud compute ou da API.

Console

  1. Acesse a página "Grupos de instâncias" no Console do GCP.

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

  2. Clique em Criar um grupo de instâncias.
  3. Digite um nome para o grupo de instâncias gerenciadas e selecione a zona em que você quer localizar o grupo.
  4. Em Tipo de grupo, selecione Grupo de instâncias gerenciadas.
  5. Em Modelo de instância, selecione um modelo de instância. Se nenhum modelo estiver disponível, crie um modelo de instância.
  6. Especifique o número de instâncias que você quer criar no grupo. Também é possível ativar o escalonamento automático para que o grupo adicione ou remova automaticamente as instâncias com base no uso ou ativar a recuperação automática para executar a verificação de integridade baseada em aplicativo nas instâncias do grupo.
  7. Clique em Criar para criar o novo grupo.

gcloud

Crie um grupo de instâncias com o subcomando instance-groups managed create:

gcloud compute instance-groups managed create [NAME] \
    --base-instance-name [BASE_NAME] \
    --size [SIZE] \
    --template [INSTANCE_TEMPLATE] \
    --zone [ZONE]

em que você substituiria:

  • [NAME] pelo nome deste grupo de instâncias;
  • [BASE_NAME] pelo nome a ser usado para instâncias criadas neste grupo de instâncias. Como essas instâncias são idênticas, elas recebem uma string aleatória como parte do nome de cada uma delas. O nome de base precede essa string aleatória. Por exemplo, se o nome de base for example, as instâncias terão nomes como example-yahs, example-qtyz e assim por diante;
  • [SIZE] pelo tamanho do grupo de instâncias;
  • [INSTANCE_TEMPLATE] pelo nome do modelo de instância a ser usado para este grupo;
  • [ZONE] por uma das zonas disponíveis do Compute Engine.

    Por exemplo, o seguinte comando cria um grupo de instâncias chamado example-group, cujo nome da instância de base é test. O grupo contém três instâncias:

    gcloud compute instance-groups managed create example-group
    --base-instance-name test
    --size 3
    --template an-instance-template

API

Na API, construa uma solicitação POST ao método instanceGroupManagers.insert ou regionInstanceGroupManagers.insert. No corpo da solicitação, inclua o nome do grupo, o tamanho do grupo, o nome base das instâncias no grupo e o URL do modelo da instância.

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

{
  "baseInstanceName": "[BASE_NAME]",
  "versions": [
    {
      "instanceTemplate": "global/instanceTemplates/[INSTANCE_TEMPLATE]"
    }
  ],
  "name": "[NAME]",
  "targetSize": [SIZE]
}

em que você substituiria:

  • [PROJECT_ID] pelo código do projeto da solicitação;
  • [ZONE] pela zona da solicitação;
  • [NAME] pelo nome deste grupo de instâncias;
  • [BASE_NAME] pelo nome a ser usado para instâncias criadas neste grupo de instâncias. Como essas instâncias são idênticas, elas recebem uma string aleatória como parte do nome de cada uma delas. O nome de base precede essa string aleatória. Por exemplo, se o nome de base for example, as instâncias terão nomes como example-yahs, example-qtyz e assim por diante;
  • [SIZE] pelo tamanho do grupo de instâncias;
  • [INSTANCE_TEMPLATE] pelo modelo de instância a ser usado para este grupo.

Como recuperar grupos atuais e descrições de grupos

É possível conseguir informações sobre grupos de instâncias gerenciadas atuais usando o Console, a ferramenta de linha de comando gcloud ou a API. Para receber o id do grupo, use gcloud ou a API.

Console

  1. Acesse a página "Grupos de instâncias" no console do GCP.

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

    A página listará os grupos de instâncias, se você tiver algum. Observe que essa página também lista grupos de instâncias não gerenciadas.

  2. Na coluna Nome da lista, clique no nome do grupo de instâncias que você quer examinar. Uma página é aberta com as propriedades do grupo de instâncias e a lista de instâncias que estão incluídas no grupo.

gcloud

Liste todos os grupos de instâncias gerenciadas dentro de um projeto:

gcloud compute instance-groups managed list

Para conseguir informações sobre um grupo específico:

gcloud compute instance-groups managed describe [INSTANCE_GROUP] \
    --zone [ZONE]

API

Para listar todos os grupos de instâncias gerenciadas em uma zona, crie uma solicitação GET para o serviço instanceGroupManagers:

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

Para receber informações sobre um grupo específico, crie uma solicitação GET para o serviço instanceGroupManagers e inclua o nome de um grupo de instâncias gerenciadas específico:

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

Para grupos de instâncias gerenciadas regionais (várias zonas), use o recurso regionInstanceGroupManagers como alternativa: regionInstanceGroupManagers.list e regionInstanceGroupManagers.get.

Como alterar o modelo de instância de um grupo de instâncias gerenciadas

Altere o modelo de instância de um grupo de instâncias gerenciadas sem aplicar nenhuma alteração às instâncias. O grupo de instâncias gerenciadas usa o novo modelo quando você faz uma solicitação para adicionar ou recriar instâncias, mas o modelo não atualiza automaticamente as instâncias no grupo. Isso permite que você controle exatamente quais instâncias são atualizadas, mas faz com que o grupo contenha instâncias diferentes.

Depois de criar um novo modelo de instância, altere o modelo para um grupo de instâncias.

Console

  1. Acesse a página "Grupos de instâncias" no Console do GCP.

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

  2. Na coluna Nome da lista, clique no nome do grupo de instâncias no qual você quer alterar o modelo de instância.
  3. Clique em Editar grupo para modificar o grupo de instâncias gerenciadas.
  4. Em Modelo de instância, selecione o novo modelo de instância que quer usar neste grupo.
  5. Clique em Salvar para aplicar o novo modelo.

gcloud

Para atualizar um modelo usando o método set-instance-template, passe o novo modelo ao subcomando instance-groups managed set-instance-template:

gcloud compute instance-groups managed set-instance-template [INSTANCE_GROUP] \
    --template [INSTANCE_TEMPLATE] \
    --zone [ZONE]

API

Crie uma solicitação para o serviço instanceGroupManagers com o nome do grupo de instâncias gerenciadas de destino. Inclua o URL do novo modelo de instância no corpo da solicitação:

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

{
 "instanceTemplate": "global/instanceTemplates/[INSTANCE_TEMPLATE]
}

Depois de alterar o modelo de instância, recrie instâncias individuais ou atualize todas as instâncias do grupo com uma atualização gradual.

Como fazer o redimensionamento automático de um grupo de instâncias gerenciadas

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 você reduz os custos quando a necessidade de recursos de computação for menor. Para iniciar o escalonamento dos grupos de instâncias gerenciadas, consulte Como escalonar grupos de instâncias automaticamente.

Como redimensionar manualmente um grupo de instâncias gerenciadas

Se um grupo de instâncias gerenciadas ainda não estiver configurado para o escalonamento automático, será possível redimensionar um grupo manualmente para alterar o número de instâncias no grupo. Se você aumentar o tamanho, o grupo usará o modelo de instância atual para adicionar novas instâncias. Se você diminuir o tamanho, ele excluirá instâncias do grupo. O grupo exclui instâncias com uma currentAction de DELETING, CREATING e RECREATING antes de excluir instâncias que estão sendo executadas sem ações programadas.

Se o grupo fizer parte de um serviço de back-end com diminuição de conexão ativada, pode levar até 60 segundos após essa diminuição para que a instância da VM seja removida ou excluída.

Redimensione um grupo de instâncias gerenciadas usando o Console do Google Cloud Platform, a ferramenta gcloud compute ou a API.

Console

  1. Acesse a página "Grupos de instâncias" no Console do GCP.

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

  2. Na coluna Nome da lista, clique no nome do grupo de instâncias que você quer redimensionar.
  3. Clique em Editar grupo para modificar o grupo de instâncias gerenciadas.
  4. 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 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 autoescalador.
  5. Clique em Salvar para aplicar o novo modelo.

gcloud

O uso do comando é:

gcloud compute instance-groups managed resize [INSTANCE_GROUP ] \
    --size [NEW_SIZE] \
    --zone [ZONE]

API

Crie uma solicitação para o serviço instanceGroupManagers com o nome do grupo de instâncias gerenciadas de destino. Especifique o novo tamanho da instância como um parâmetro.

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroupManagers/[INSTANCE_GROUP]/resize?size=[NEW_SIZE]

Depois que você fizer uma solicitação para redimensionar um grupo de instâncias gerenciadas, as instâncias vão começar ou parar assim que o sistema puder 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.

Como desativar o modo de repetição de criação

Por padrão, se a criação inicial de uma instância de máquina virtual falhar, o grupo de instâncias gerenciadas tentará continuamente criar cada instância até que ela seja criada com êxito. No entanto, se você não quiser novas tentativas de criação automática, poderá desativar o modo de repetição de criação fornecendo a sinalização --nocreation-retries 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, o grupo de instâncias gerenciadas não criará essa instância 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 instância. Se uma instância for criada com êxito enquanto esse modo estiver ativado, ela se comportará da mesma forma que todas as outras criadas com uma solicitação de redimensionamento normal. Em particular, se uma instância em execução for desativada inesperadamente em um momento posterior e precisar ser recriada, esse modo não afetará o comportamento de recriação nesse cenário.

O modo "Desativar repetição de criação" é especialmente útil em cenários em que os sistemas criam grupos de instâncias automaticamente quando não é necessário um número exato de instâncias. Opte por estabilizar rapidamente o tamanho do grupo de instâncias gerenciadas e ser flexível quanto ao número de instâncias do grupo em vez de esperar indefinidamente até que todas as instâncias solicitadas sejam criadas. Isso pode ser adiado de maneira temporária ou permanente devido a erros de cotas ou outras questões não relacionadas.

Para redimensionar um grupo de instâncias gerenciadas no modo de repetição de criação desativado, use a ferramenta gcloud compute ou a API.

gcloud

Com a ferramenta de linha de comando gcloud, execute o comando resize com a sinalização --no-creation-retries:

gcloud beta compute instance-groups managed resize [INSTANCE_GROUP] --size [NEW_SIZE] \
    --nocreation-retries \
    --zone [ZONE]

API

Crie uma solicitação para o serviço instanceGroupManagers com o nome do grupo de instâncias gerenciadas de destino. Especifique o tamanho da nova instância e o campo noCreationRetries no corpo da solicitação.

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

{
 "targetSize": [SIZE]
 "noCreationRetries": true
}

Com o método listManagedInstances, veja quais instâncias estão sendo criadas e em qual modo. As instâncias criadas no modo de repetição de criação desativado terão o currentAction CREATING_WITHOUT_RETRIES.

Como identificar instâncias que fazem parte de um grupo

Para ver uma lista de todas as instâncias de um grupo, consulte Como recuperar grupos e descrições de grupos.

Para verificar se uma instância específica é atualmente um membro de um grupo, use o console ou a API.

Console

  1. Acesse a página "Instâncias de VMs".

    Acessar a página "Instâncias de VMs"

  2. Clique em uma instância para acessar os detalhes da instância da VM.
  3. Se a instância da VM for membro de um grupo de instâncias gerenciadas, o nome dele aparecerá sob o cabeçalho Em uso por. Se a instância da VM não for membro de um grupo, o cabeçalho Em uso por não aparecerá na página de detalhes da instância.

API

Consulte Como ver referenciadores para instâncias de VM.

Como alternativa, para identificar se uma instância é ou era membro de um grupo de instâncias gerenciadas, procure estas duas chaves de metadados nos metadados da instância:

  • instance-template indica o modelo usado para criar a instância.
  • created-by indica o grupo de instâncias gerenciadas que criou a instância.

Mesmo que você abandone a instância, ela ainda terá essas entradas de metadados, a menos que você as remova manualmente.

Por exemplo, se houver uma instância chamada random-instance-biy e você quiser saber se ela foi criada por um grupo de instâncias gerenciadas, você poderá descrevê-la e procurar as chaves de metadados acima. Exemplo:

gcloud compute instances describe random-instance-biy --zone us-central1-f

A resposta da gcloud é semelhante a esta:

canIpForward: false
cpuPlatform: Intel Ivy Bridge
creationTimestamp: '2016-08-24T14:11:38.012-07:00'
disks:
- autoDelete: true
  boot: true
  deviceName: persistent-disk-0
  index: 0
  interface: SCSI
  kind: compute#attachedDisk
...[snip]...
metadata:
  items:
  - key: instance-template
    value: projects/123456789012/global/instanceTemplates/example-it
  - key: created-by
    value: projects/123456789012/zones/us-central1-f/instanceGroupManagers/igm-metadata

Como excluir instâncias individuais de um grupo

É possível excluir instâncias individuais em um grupo de instâncias gerenciadas. A exclusão de instâncias reduz o targetSize especificado do grupo e as remove de quaisquer pools de destino de que façam parte.

A exclusão de instâncias de um grupo de instâncias gerenciadas não altera as configurações especificadas do autoescalador. Se você excluir instâncias de um grupo de instâncias gerenciadas, o autoescalador 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 autoescalador antes de tentar excluir as instâncias.

Se o grupo fizer parte de um serviço de back-end com diminuição de conexão ativada, pode levar até 60 segundos após essa diminuição para que a instância da VM seja removida ou excluída.

Exclua instâncias de um grupo de instâncias gerenciadas usando o Console do Google Cloud Platform, a ferramenta gcloud compute ou a API.

Console

  1. Acesse a página "Grupos de instâncias" no Console do GCP.

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

  2. 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 de instâncias e uma lista de instâncias que estão incluídas no grupo.
  3. Selecione na lista uma ou mais instâncias que você quer excluir.
  4. Clique em Excluir. As instâncias selecionadas são excluídas.

gcloud

Para excluir uma instância com a gcloud, use o subcomando instance-groups managed delete-instances:

gcloud compute instance-groups managed delete-instances [INSTANCE_GROUP] \
    --instances example-i3n2,example-z2x9 \
    --zone [ZONE]

API

Crie uma solicitação para o serviço instanceGroupManagers com o nome do grupo de instâncias gerenciadas de destino. No corpo da solicitação, inclua os URLs para uma ou mais instâncias que você quer excluir.

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroupManagers/[INSTANCE_GROUP]/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 das instâncias no grupo.

Como abandonar instâncias de um grupo

Separe uma instância 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 especificado do grupo, mas não altera as configurações especificadas do autoescalador. Grupos de instâncias gerenciadas com um autoescalador continuam a adicionar ou remover instâncias automaticamente conforme necessário.

Se o grupo fizer parte de um serviço de back-end com diminuição de conexão ativada, pode levar até 60 segundos após essa diminuição para que a instância da VM seja removida ou excluída.

Abandone instâncias de um grupo de instâncias gerenciadas usando o Console do Google Cloud Platform, a ferramenta gcloud compute ou a API.

Console

  1. Acesse a página "Grupos de instâncias" no Console do GCP.

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

  2. 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.
  3. Na lista de instâncias, selecione as que você quer remover do grupo.
  4. 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 de instâncias sem excluí-la, use o subcomando abandon-instances.

gcloud compute instance-groups managed abandon-instances [INSTANCE_GROUP] \
    --instances example-i3n2,example-z2x9 \
    --zone [ZONE]

API

Crie uma solicitação para o serviço instanceGroupManagers com o nome do grupo de instâncias gerenciadas de destino. No corpo da solicitação, inclua os URLs para uma ou mais instâncias que você quer abandonar.

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroupManagers/[INSTANCE_GROUP]/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 das instâncias no grupo.

Como recriar instâncias no grupo

Recriar a instância exclui as instâncias especificadas e cria novas usando o modelo atribuído ao grupo de instâncias gerenciadas.

Com esse método, é possível atualizar instâncias selecionadas para que elas usem o modelo mais recente. Se você precisar recriar todas as instâncias em um grupo de instâncias gerenciadas, inicie uma atualização gradual.

Se o grupo fizer parte de um serviço de back-end com diminuição de conexão ativada, pode levar até 60 segundos após essa diminuição para que a instância da VM seja removida ou excluída.

Recrie instâncias selecionadas no grupo de instâncias gerenciadas usando a ferramenta gcloud compute ou a API.

gcloud

Use o subcomando instance-groups managed recreate-instances.

gcloud compute instance-groups managed recreate-instances [INSTANCE_GROUP] \
    --instances example-i3n2,example-z2x9 \
    --zone [ZONE]

API

Crie uma solicitação para o serviço instanceGroupManagers com o nome do grupo de instâncias gerenciadas de destino. No corpo da solicitação, inclua os URLs para uma ou mais instâncias que você quer recriar.

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroupManagers/[INSTANCE_GROUP]/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 em um grupo de instâncias gerenciadas, as novas instâncias 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 das instâncias no grupo.

Como verificar o status de instâncias em um grupo de instâncias gerenciadas

Vários comandos e solicitações criam, excluem e modificam instâncias em um grupo de instâncias gerenciadas. Essas operações serão retornadas como DONE depois que o grupo programar ações para criar, excluir ou atualizar essas instâncias. No entanto, isso não significa que as instâncias no grupo tenham sido criadas, excluídas ou atualizadas antes da conclusão das ações subjacentes. Verifique o status dessas instâncias ou, como alternativa, verifique o status do próprio grupo usando a ferramenta gcloud compute ou a API.

Como verificar o status das instâncias

gcloud

Use o comando instance-groups managed list-instances para listar as instâncias no grupo e as ações atuais delas.

gcloud compute instance-groups managed list-instances [INSTANCE_GROUP] \
    --zone [ZONE]

Exemplo:

gcloud compute instance-groups managed list-instances example-group \
    --zone [ZONE]
NAME               STATUS  ACTION   LAST_ERROR
example-group-0gnk RUNNING NONE
example-group-15xy         CREATING Error QUOTA_EXCEEDED: Instance 'example-group-15xy' creation failed: Quota 'IN_USE_ADDRESSES' exceeded.  Limit: 23.0
example-group-18ep         CREATING Error QUOTA_EXCEEDED: Instance 'example-group-18ep' creation failed: Quota 'CPUS' exceeded.  Limit: 24.0, Error QUOTA_EXCEEDED: Instance 'example-group-18ep' creation failed: Quota 'IN_USE_ADDRESSES' exceeded.  Limit: 23.0
example-group-1u1y         CREATING

Neste exemplo, example-group contém quatro instâncias. Uma delas está em execução, duas apresentaram falha na tentativa de criação devido às cotas de CPU e endereço e uma está sendo criada, mas ainda não encontrou nenhum erro.

Em grupos de instâncias preemptivas, se a capacidade preemptiva não estiver disponível, as ações de criação falharão com o erro: ZONE_RESOURCE_POOL_EXHAUSTED. Para ver eventos de preempção anteriores, consulte Como detectar se uma instância foi interrompida.

wait-until-stable

Use o comando instance-groups managed wait-until-stable para verificar automaticamente um grupo de instâncias e fazer o script aguardar até que todas as instâncias do grupo estejam estáveis.

gcloud compute instance-groups managed wait-until-stable example-group \
    --zone [ZONE]

API

Crie uma solicitação para o serviço instanceGroupManagers e especifique o nome do grupo de instâncias gerenciadas que contém as instâncias que você quer verificar.

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

Exemplo:

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/us-central1-f/instanceGroupManagers/example-group/listManagedInstances

A solicitação recebe a resposta a seguir:

{
 "managedInstances": [
  {
   "instance": "https://content.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/us-central1-f/instances/example-group-0gnk",
   "id": "16960422116594945029",
   "instanceStatus": "RUNNING",
   "currentAction": "NONE"
  },
  {
   "instance": "https://content.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/us-central1-f/instances/example-group-15xy",
   "currentAction": "CREATING",
   "lastAttempt": {
    "errors": {
     "errors": [
      {
       "code": "QUOTA_EXCEEDED",
       "message": "Instance 'example-group-15xy' creation failed: Quota 'IN_USE_ADDRESSES' exceeded.  Limit: 23.0"
      }
     ]
    }
   }
  },
  {
   "instance": "https://content.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/us-central1-f/instances/example-group-18ep",
   "currentAction": "CREATING",
   "lastAttempt": {
    "errors": {
     "errors": [
      {
       "code": "QUOTA_EXCEEDED",
       "message": "Instance 'example-group-18ep' creation failed: Quota 'CPUS' exceeded.  Limit: 24.0"
      },
      {
       "code": "QUOTA_EXCEEDED",
       "message": "Instance 'example-group-18ep' creation failed: Quota 'IN_USE_ADDRESSES' exceeded.  Limit: 23.0"
      }
     ]
    }
   }
  },
  {
   "instance": "https://content.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/us-central1-f/instances/example-group-1u1y",
   "id": "7239700230861444556",
   "instanceStatus": "RUNNING",
   "currentAction": "CREATING"
  }
 ]
}

Neste exemplo, example-group contém quatro instâncias. Uma delas está em execução, duas apresentaram falha na tentativa de criação devido às cotas de CPU e endereço e uma está sendo criada, mas ainda não encontrou nenhum erro.

Em grupos de instâncias preemptivas, se a capacidade preemptiva não estiver disponível, as ações de criação falharão com o erro: ZONE_RESOURCE_POOL_EXHAUSTED. Para ver eventos de preempção anteriores, consulte Como detectar se uma instância foi interrompida.

Como verificar o status do grupo

No nível do grupo, o Compute Engine preenche um campo somente leitura denominado status que contém uma sinalização isStable, que você acessa usando a ferramenta gcloud compute ou a API.

gcloud

gcloud compute instance-groups managed describe [INSTANCE_GROUP_NAME] \
    [--zone [ZONE] | --region [REGION]]

gcloud retorna informações detalhadas sobre o grupo de instâncias, incluindo o campo status.isStable.

API

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

POST https://www.googleapis.com/compute/beta/projects/[PROJECT_ID]/zones/[ZONE]/instanceGroupManagers/[INSTANCE_GROUP_NAME]/get

Se o grupo de instâncias for um grupo regional de instâncias gerenciadas, substitua zones/[ZONE] por regions/[REGION].

A API retorna informações detalhadas sobre o grupo de instâncias, incluindo o campo status.isStable.

É possível verificar se um grupo de instâncias gerenciadas está funcionando com integridade conferindo o valor do campo status.isStable do recurso instanceGroupManagers ou regionInstanceGroupManagers associado.

status.isStable, definido como false, indica que as alterações estão ativas, pendentes ou que o próprio grupo de instâncias gerenciadas está sendo modificado.

status.isStable definido como true indica as seguintes condições:

  • Nenhuma das instâncias no grupo de instâncias gerenciadas está passando por qualquer tipo de alteração, e a currentAction de todas as instâncias é NONE.
  • Nenhuma alteração está pendente para as instâncias no grupo de instâncias gerenciadas.
  • O grupo de instâncias gerenciadas não está sendo modificado.

Os grupos de instâncias gerenciadas podem ser modificados de várias maneiras. Por exemplo:

  • Você faz uma solicitação para lançar um novo modelo de instância.
  • Você faz uma solicitação para criar, excluir, redimensionar ou atualizar instâncias no grupo.
  • Um autoescalador solicita o redimensionamento do grupo.
  • Um recurso de recuperação automática está substituindo uma ou mais instâncias não íntegras do grupo de instâncias gerenciadas.
  • Em um grupo de instâncias gerenciadas regional, algumas das instâncias estão sendo redistribuídas.

Assim que todas as ações forem concluídas, status.isStable será definido como true novamente para esse grupo de instâncias gerenciadas.

Também é possível usar o comando gcloud beta compute instance-groups managed wait-until com a sinalização --stable para aguardar até que status.isStable seja definido como true para o grupo:

gcloud beta compute instance-groups managed wait-until INSTANCE_GROUP_NAME \
    --stable \
    [--zone [ZONE] | --region [REGION]]

Como excluir um grupo de instâncias gerenciadas

Quando você exclui um grupo de instâncias gerenciadas usando o Console do Google Cloud Platform ou o gcloud, todas as instâncias do grupo e todos os autoescaladores anexados também são excluídos. Se for preciso manter qualquer uma das instâncias no grupo, abandone as instâncias antes de removê-las do grupo. Em seguida, use delete para excluir o grupo de instâncias gerenciadas.

Antes de excluir um grupo de instâncias gerenciadas usando a API, é necessário emitir solicitações separadas para excluir os autoescaladores anexados.

Para excluir todo um grupo de instâncias gerenciadas e respectivas instâncias, use o Console do Google Cloud Platform, a ferramenta gcloud compute ou a API.

Console

  1. Acesse a página "Grupos de instâncias" no Console do GCP.

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

  2. Selecione um ou mais grupos na lista que você quer excluir.
  3. Clique em Excluir para excluir o grupo e todas as instâncias no grupo de instâncias gerenciadas.

gcloud

Use o subcomando instance-groups managed delete.

gcloud compute instance-groups managed delete [INSTANCE_GROUP] \
    --zone [ZONE]

API

Crie uma solicitação DELETE para o serviço instanceGroupManagers e especifique o nome do grupo de instâncias gerenciadas que você quer excluir.

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

Como criar grupos de instâncias preemptivas

Use grupos de instâncias gerenciadas para criar rapidamente várias instâncias preemptivas, o que pode reduzir os custos das instâncias nos grupos de instâncias gerenciadas. Por exemplo, crie um grupo de instâncias preemptivas, use-o para executar uma tarefa de processamento em lote e depois exclua-o quando a tarefa estiver concluída.

Para criar um grupo de instâncias preemptivas, defina a opção preemptiva em um modelo de instância e depois use o modelo para criar o grupo de instâncias gerenciadas.

Console

  1. Acesse a página "Modelos de instância" no Console do GCP.

    Acessar a página "Modelos de instância"

  2. Clique em Novo modelo de instância.
  3. Preencha as propriedades que você quer para o modelo de instância.
  4. Clique em Mostrar opções avançadas para expandir a seção Políticas de disponibilidade.
  5. Defina a Preempção como Ativada.
  6. Clique em Criar para criar o modelo.
  7. Use esse modelo para criar um grupo de instâncias gerenciadas.

gcloud

Em gcloud compute, crie um modelo de instância usando o comando instance-templates create. Inclua a sinalização --preemptible.

gcloud compute instance-templates create [INSTANCE_TEMPLATE] \
    --preemptible

Depois de criar o modelo de instância, use-o para criar um grupo de instâncias gerenciadas.

API

Use o método instanceTemplates().insert para criar um novo modelo de instância. Inclua a propriedade preemptible em scheduling e a defina como true.

{
"name": "[INSTANCE_TEMPLATE]",
"properties": {
  "machineType": "zones/[ZONE]/machineTypes/[MACHINE_TYPE]",
  "networkInterfaces": [
    {
      "network": "global/networks/default",
      "accessConfigs":
      [
        {
          "name": "external-IP",
          "type": "ONE_TO_ONE_NAT"
        }
      ]
    }
  ],
  "scheduling":
  {
    "preemptible": true
  },
  "disks":
  [
    {
      "type": "PERSISTENT",
      "boot": true,
      "mode": "READ_WRITE",
      "initializeParams":
      {
        "sourceImage": "projects/debian-cloud/global/images/family/debian-9"
      }
    }
  ]
  }
}

Depois de criar o modelo de instância, use-o para criar um grupo de instâncias gerenciadas.

Como adicionar um grupo de instâncias gerenciadas a um balanceador de carga

O balanceamento de carga do Google Cloud Platform usa grupos de instâncias, gerenciadas e não gerenciadas, para veicular 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 sobre balanceamento de carga, consulte Como escolher um balanceador de carga.

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 contém back-ends individuais, cada um com um grupo de instâncias gerenciadas ou não gerenciadas. As instâncias contidas no grupo respondem ao tráfego vindo do balanceador de carga. O serviço de back-end, por sua vez, tem as informações de quais instâncias podem ser usadas, a capacidade delas para processar o tráfego e a quantidade de tráfego que elas 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 chave:valor 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 depois configurar o serviço de back-end para enviar tráfego para uma porta chamada http, o balanceamento de carga encaminhará o tráfego para a porta 80 das 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"

  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. Clique em Adicionar item novamente para adicionar outras entradas, se necessário.
  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 Instance Group Manager não oferece um método setNamedPorts, mas você pode usar a API Instance Group para executar essa tarefa.

Crie uma solicitação para a API Instance Group 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]

Como entender os campos instanceTemplate e versions

Ao criar um grupo de instâncias gerenciadas, você fornece um modelo de instância que o grupo de instâncias gerenciadas usa para criar instâncias de VM individuais. Por padrão, o Compute Engine descreve o modelo de instância usado em duas propriedades distintas da API: a instanceTemplate de nível superior e a versions. Por exemplo, no grupo de instâncias gerenciadas a seguir, observe que os campos instanceTemplate e versions estão preenchidos:

{

 "name": "example-group",
 "zone": "zones/us-central1-a",
 "instanceTemplate": "global/instanceTemplates/example-it",
 "versions": [
  {
   "name": "v3",
   "instanceTemplate": "global/instanceTemplates/example-it",
   "targetSize": {
    "calculated": 3
   }
  }
 ]...
}

O Compute Engine preenche automaticamente o campo instanceTemplate de nível superior e o campo versions para manter a compatibilidade com versões anteriores. É recomendável especificar o campo versions e omitir o campo instanceTemplates de nível superior sempre que possível. Porém, se o código de seu aplicativo definir atualmente o campo instanceTemplate, essa ainda será uma solicitação válida.

Para saber mais sobre o Managed Instance Group Updater, leia Como atualizar grupos de instâncias gerenciadas.

(Avançado) Como implementar modelos de instância canário com um grupo de instâncias gerenciadas

É possível criar um grupo de instâncias gerenciadas em que há dois grupos de VMs que usam modelos de instância diferentes. Por exemplo, é possível criar um grupo de instâncias gerenciadas que tenha 20 instâncias de VM. 10 VMs são executadas em uma imagem operacional específica, enquanto o restante é executado em uma imagem de sistema operacional diferente. Esse recurso permite comparar as duas versões diferentes de modelo de instância antes de decidir qual usar.

Na API, crie uma solicitação POST para o seguinte URL:

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

No corpo da solicitação, omita o campo instanceTemplates de nível superior e mantenha a propriedade versions com dois modelos de instância definidos. Em cada objeto versions, especifique um modelo de instância. Para um dos objetos versions, mas não para ambos, você precisa especificar targetSize. Por exemplo, a solicitação a seguir cria um grupo de instâncias em que 50% das instâncias de VM usam o modelo de instância example-template e o restante usa o modelo small-machine-type:

{
  "baseInstanceName": "example-instances",
  "name": "example-group",
  "targetSize": 5,
  "versions":
  [
    {
      "instanceTemplate": "global/instanceTemplates/example-template",
      "targetSize":
      {
        "percent": 50
      }
    },
   {
     "instanceTemplate": "global/instanceTemplates/small-machine-type"
   }
  ]
}

Grupos de instâncias gerenciadas e IAM

Todas as operações realizadas pelo Compute Engine como parte do grupo de instâncias gerenciadas são executadas com a conta de serviço das APIs do Google do projeto. Essa conta de serviço por projeto tem um endereço de e-mail como este:

[PROJECT_ID]@cloudservices.gserviceaccount.com

em que

  • [PROJECT_ID] é o código numérico do projeto correspondente.

A conta de serviço das APIs do Google é diferente da conta de serviço padrão do Compute Engine.

Cabe a você garantir que a conta de serviço usada pelo grupo de instâncias gerenciadas tenha privilégios suficientes para criar instâncias de máquina virtual com base no modelo de instância. Em particular, isso significa que a conta de serviço precisa receber os papéis compute.instanceAdmin.v1 e serviceAccountUser (opcional) para criar e gerenciar instâncias no grupo. O papel serviceAccountUser será necessário somente se o grupo de instâncias gerenciadas for criar instâncias que possam ser executadas como uma conta de serviço. Tenha também em mente que essa conta é utilizada por outros processos, incluindo o Deployment Manager.

Ao criar um grupo de instâncias gerenciadas ou atualizar um modelo de instância, o Compute Engine confirma que a conta de serviço das APIs do Google:

  • recebeu o papel serviceAccountUser no modelo de instância, se você planeja criar instâncias que possam ser executadas como uma conta de serviço;
  • tem permissão para todos os recursos referenciados nos modelos de instância, como imagens, discos, redes VPC e sub-redes.

Para saber mais sobre contas de serviço, leia a visão geral das contas de serviço.

Como atualizar todas as instâncias em um grupo de instâncias gerenciadas

Consulte Como atualizar grupos de instâncias gerenciadas.

Solução de problemas

Meu grupo de instâncias gerenciadas não consegue criar uma instância. Qual é o problema?

Há vários problemas que podem impedir que o grupo de instâncias crie ou recrie uma instância. Veja a seguir alguns problemas comuns:

  • O grupo de instâncias gerenciadas está tentando criar ou recriar a instância e o disco permanente de inicialização, mas o disco já existe. Por padrão, a criação de novos discos permanentes de inicialização ocorre quando instâncias novas são criadas. Esses discos recebem o nome da instância. Se uma instância tiver o nome my-awesome-instance, o disco também se chamará my-awesome-instance. Se já existir um disco permanente com esse nome, haverá uma falha na solicitação. Exclua o disco permanente para resolver esse problema.

  • O modelo de instância definiu a opção disks.autoDelete como false para discos permanentes de inicialização, de modo que, quando uma instância for excluída (por causa da recuperação automática, por exemplo), o disco permanente não será excluído. Quando o grupo de instâncias gerenciadas tentou recriar a instância, teve o mesmo problema de já haver um disco permanente com um nome igual ao dela. Exclua o disco permanente para resolver o problema imediato e atualize o modelo de instância para definir disks.autoDelete como true, caso queira que os discos permanentes de inicialização sejam excluídos com a instância.

  • O modelo de instância pode ser inválido. Se você atualizou o modelo de instância recentemente, pode haver uma propriedade inválida que faz com que o grupo de instâncias gerenciadas não consiga criar a instância. Alguns exemplos de propriedades inválidas:

    • Você especificou um recurso que não existe, como uma imagem de origem.
    • Você escreveu um nome de recurso incorretamente.
    • Você tentou anexar discos permanentes que não são de inicialização no modo de leitura e gravação. Como os grupos de instâncias contêm várias instâncias, só é possível anexar discos extras que você quer compartilhar entre todas as instâncias do grupo no modo somente leitura.

A seguir

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Compute Engine