Como criar grupos de instâncias gerenciadas

Neste documento, você verá como criar um grupo gerenciado de instâncias (MIG, na sigla em inglês). Um MIG é um grupo de instâncias de máquina virtual (VM) que você controla como uma entidade única. Os MIGs são compatíveis com recursos como recuperação automática, balanceamento de carga, escalonamento automático atualização automática e cargas de trabalho com estado.

É possível criar MIGs regionais ou MIGs zonais. Os MIGs regionais fornecem uma disponibilidade maior em comparação aos MIGs zonais, porque as instâncias em um MIG regional são distribuídas em várias zonas em uma única região. Neste documento, você verá informações sobre como criar MIGs zonais ou regionais. No entanto, os MIGs regionais têm outras opções e considerações. Para mais informações sobre MIGs regionais, consulte a Visão geral sobre MIGs regionais.

Para mais informações conceituais sobre grupos de instâncias e os recursos deles, consulte a Visão geral dos grupos de instâncias.

Antes de começar

Limitações

  • Com um MIG regional, é possível criar até 2.000 VMs em uma região, com um máximo de 1.000 VMs por zona. Com um MIG zonal, é possível criar até 1.000 VMs. Se você precisar de mais VMs, entre em contato com o suporte.
  • Ao atualizar um MIG, é possível especificar até 1.000 VMs em uma única solicitação.
  • Para um MIG com estado, analise as limitações desse tipo de MIG.

  • Se você quiser um MIG regional, consulte as limitações desse tipo de MIG.

  • A VPC compartilhada em interfaces diferentes de nic0 para grupos de instâncias gerenciadas é compatível com a ferramenta gcloud e a API, mas não no Console do Cloud.

MIGs sem estado ou com estado

É possível usar MIGs para veiculação sem estado ou cargas de trabalho em lote, como um front-end de site ou processamento de imagem de uma fila, ou para aplicativos com estado, como bancos de dados ou aplicativos legados.

Como usar MIGs para aplicativos sem estado

Os aplicativos sem estado não dependem do estado específico da instância de máquina virtual (VM) subjacente a ser executada. Se você usar um MIG sem estado, seu aplicativo não poderá depender de propriedades da VM que não permaneçam, como o conteúdo de discos anexados ou dados na memória. Se o aplicativo exigir a preservação das propriedades da VM, consulte Como configurar MIGs com estado.

O comportamento padrão de todos os discos permanentes em um MIG é excluí-los ou recriá-los quando a VM correspondente for excluída ou recriada. Portanto, não dependa dos discos anexados como dados permanentes. Para manter seus dados em um MIG sem estado, recomendamos manter regularmente as imagens personalizadas atualizadas com software e configurações atualizados ou usar scripts de inicialização e configurar os aplicativos para fazer backup dos dados necessários em outro local centralizado, como o Cloud Storage.

Nos modelos de instância, é possível especificar uma imagem do contêiner ou uma imagem personalizada com scripts de inicialização relevantes. Assim, quando uma VM for recriada, ela terá os aplicativos necessários instalados e acesso aos dados obrigatórios. Para mais informações sobre como criar modelos de instância, consulte Modelos de instância determinísticos.

Como usar MIGs para aplicativos com estado

Os grupos gerenciados de instâncias também são compatíveis com aplicativos com estado. Um MIG com estado preserva o estado exclusivo de cada VM (nome da instância de VM, discos permanentes anexados e/ou metadados) na reinicialização, recriação, recuperação automática ou atualização de máquina.

Use MIGs com estado para aplicativos que tenham dados com estado ou configuração, como bancos de dados, aplicativos de processamento de dados, aplicativos legados e cargas de trabalho em lote de longa duração com pontos de verificação.

Use MIGs com estado sempre que implantar um aplicativo ou cluster com estado no Compute Engine e quiser melhorar a disponibilidade com recuperação automática e implantação em várias zonas ou se quiser simplificar e acelerar atualizações com atualizações automáticas em andamento.

Para informações sobre como criar um MIG com estado ou adicionar uma configuração com estado a um MIG atual, consulte Como configurar MIGs com estado.

Como criar um grupo de instâncias gerenciadas

Um MIG cria cada uma das instâncias gerenciadas com base nos modelos de instância e na configuração com estado opcional que você especificar. Cada instância gerenciada é uma entidade de dados no MIG que contém o status atual e o estado pretendido de uma instância de VM real. Os MIGs mantêm a alta disponibilidade dos aplicativos mantendo proativamente a disponibilidade das VMs reais, ou seja, no estado RUNNING.

É possível criar um MIG usando o Console do Google Cloud, a ferramenta gcloud ou a API Compute Engine. Se você prefere criar um MIG regional, consulte Como criar MIGs regionais.

Console

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

    Acesse grupo de instâncias

  2. Clique em Criar um grupo de instâncias.

  3. Se você quiser criar um MIG com estado, selecione a opção Novo grupo gerenciado de instâncias (com estado). Para ajudar você a decidir, consulte Quando usar MIGs com estado.

  4. Insira um nome para o MIG e selecione a zona em que você quer localizar o grupo.

  5. Em Tipo de grupo, selecione Grupo de instâncias gerenciadas.

  6. Em Modelo de instância, selecione um modelo de instância. Se nenhum modelo estiver disponível, crie um modelo de instância.

  7. Especifique o número de instâncias que você quer criar no grupo.

  8. Como opção, para MIGs sem estado, ative o Escalonamento automático para que o grupo adicione ou remova instâncias automaticamente com base na utilização.

  9. Também é possível ativar a recuperação automática para executar a verificação de integridade baseada em aplicativo nas VMs do grupo.

  10. Clique em Criar para gerar o novo grupo.

gcloud

Crie um grupo de instâncias com o comando instance-groups managed create.

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --size SIZE \
    --template INSTANCE_TEMPLATE \
    --zone ZONE

Substitua:

  • INSTANCE_GROUP_NAME: o nome desse grupo de instâncias.
  • SIZE: o tamanho do grupo de instâncias.
  • INSTANCE_TEMPLATE: o nome do modelo de instância a ser usado para este grupo.
  • ZONE: uma das zonas disponíveis para o Compute Engine. Se você quiser criar um MIG regional, consulte Como criar e gerenciar MIGs regionais.

Também é possível fornecer a sinalização --base-instance-name. Como essas VMs são baseadas em um modelo comum, cada VM recebe uma string aleatória como parte do nome dela. O nome de base precede essa string aleatória. Por exemplo, se você definir o nome base como test, as VMs terão nomes como test-yahs e test-qtyz. Se você precisar de nomes específicos, consulte Como criar instâncias com nomes específicos em MIGs.

Por exemplo, o comando a seguir cria um grupo de instâncias chamado example-group, com nome de VM 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

Chame o método instanceGroupManagers.insert ou o método regionInstanceGroupManagers.insert. No corpo da solicitação, especifique o nome e o tamanho do grupo e o URL do modelo de instância.

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

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

Substitua:

  • PROJECT_ID: o ID do projeto para a solicitação.
  • ZONE: a zona da solicitação. Para um MIG regional, substitua zones/ZONE por regions/REGION e especifique uma região. Para mais informações, consulte Como criar e gerenciar MIGs regionais.
  • INSTANCE_GROUP_NAME: o nome desse grupo de instâncias.
  • SIZE: o tamanho do grupo de instâncias.
  • INSTANCE_TEMPLATE: o modelo de instância a ser usado para esse grupo.

Como opção, é possível fornecer o campo base-name. Como essas VMs são baseadas em um modelo comum, cada VM recebe uma string aleatória como parte do nome dela. O nome de base precede essa string aleatória. Por exemplo, se você definir o nome base como test, as VMs terão nomes como test-yahs e test-qtyz. Se você precisar de nomes específicos, consulte Como criar instâncias com nomes específicos em MIGs.

Dependendo de como você configura e age em um MIG, várias políticas e ações podem afetar as instâncias no grupo. Para determinar quais instâncias gerenciadas estão em execução, consulte Como verificar o status de instâncias gerenciadas.

Alteração do modelo de instância de um grupo de instâncias gerenciadas

Para saber como aplicar um novo modelo de instância a um MIG, consulte Como atualizar instâncias em um MIG.

Como redimensionar um grupo de instâncias gerenciadas

Para adicionar ou remover VMs em um MIG, é possível:

Redimensionamento automático de 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 Como escalonar grupos de instâncias automaticamente.

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 de DELETING, CREATING e RECREATING 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.

Redimensione um grupo gerenciado de instâncias usando o Console do Google Cloud, a ferramenta gcloud ou a API Compute Engine.

Console

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

    Acesse grupo 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 para modificar o grupo gerenciado de instâncias.

  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 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.

  5. Clique em Salvar para aplicar o novo modelo.

gcloud

Use o comando resize.

gcloud compute instance-groups managed resize INSTANCE_GROUP_NAME \
    --size NEW_SIZE \
    --zone ZONE

API

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 por regions/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, poderá desativar o modo de criação configurando 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 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.

O modo de repetição de criação desativada é 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.

Para redimensionar um grupo gerenciado de instâncias no modo de novas tentativas de criação desativada, use a ferramenta gcloud ou a API Compute Engine.

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 \
    --zone ZONE

API

Chame o método resizeAdvanced Beta para um recurso MIG zonal. Especifique o novo tamanho do grupo e o campo noCreationRetries no corpo da solicitação.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeAdvanced

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

É possível ver quais instâncias estão sendo criadas e em qual modo usando o método listManagedInstances. As instâncias que estão sendo criadas no modo de tentativas de criação desativadas têm um currentAction de CREATING_WITHOUT_RETRIES.

Como criar instâncias com nomes específicos em MIGs

Se você tiver um sistema que depende de nomes específicos, poderá criar VMs com esses nomes. Os nomes que você atribuir a essas instâncias gerenciadas persistirão se a VM for recriada. Consulte Como adicionar instâncias com nomes específicos.

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 autoescalador. 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, desative ou exclua o escalonamento 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 gcloud ou a API Compute Engine.

Console

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

    Acesse grupo 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 e uma lista de instâncias incluídas nele.

  3. Na seção Membros, na lista de instâncias, selecione uma ou mais instâncias que você quer excluir.

  4. Clique em Excluir instância. As instâncias selecionadas são excluídas.

gcloud

Use o comando delete-instances.

gcloud compute instance-groups managed delete-instances INSTANCE_GROUP_NAME \
    --instances example-i3n2,example-z2x9 \
    --zone ZONE

API

Chame o método deleteInstances para um recurso MIG zonal ou regional . No corpo da solicitação, inclua os URLs para uma ou mais instâncias que você quer excluir.

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"
 ]
}

Se o grupo for de instâncias gerenciadas por região, substitua zones/ZONE por regions/REGION.

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 de instâncias gerenciadas.

Como abandonar instâncias de um grupo

É possível separar uma instância de VM de um grupo de instâncias gerenciadas para depurar mais facilmente problemas com VMs individuais sem afetar o grupo como um todo. O abandono de uma instância de um grupo também remove essa VM 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. Os grupos de instâncias gerenciadas com um escalonador automático continuam a adicionar ou remover VMs 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 Compute Engine.

Console

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

    Acesse grupo 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 seção Membros, na lista de instâncias, selecione uma ou mais instâncias 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 sem excluí-la, use o comando abandon-instances.

gcloud compute instance-groups managed abandon-instances INSTANCE_GROUP_NAME \
    --instances example-i3n2,example-z2x9 \
    --zone ZONE

API

Chame o método abandonInstances para um recurso MIG zonal ou regional . No corpo da solicitação, inclua os URLs para uma ou mais instâncias que você quer abandonar.

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"
 ]
}

Se o grupo for de instâncias gerenciadas por região, substitua zones/ZONE por regions/REGION.

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 de instâncias gerenciadas.

Como recriar instâncias no grupo

A recriação de uma instância gerenciada exclui a VM especificada e cria uma nova VM usando o modelo de instância atribuído ao grupo de instâncias gerenciadas.

Use esse método para atualizar as VMs selecionadas para que elas usem o modelo de instância mais recente. 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 VMs selecionadas no grupo gerenciado de instâncias usando a ferramenta gcloud ou a API Compute Engine.

gcloud

Use o comando recreate-instances.

gcloud compute instance-groups managed recreate-instances INSTANCE_GROUP_NAME \
    --instances example-i3n2,example-z2x9 \
    --zone ZONE

API

Chame o método recreateInstances para um recurso MIG zonal ou regional . No corpo da solicitação, inclua os URLs para uma ou mais instâncias que você quer recriar.

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"
 ]
}

Se o grupo for de instâncias gerenciadas por região, substitua zones/ZONE por regions/REGION.

Depois que você fizer uma solicitação para recriar instâncias 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 das instâncias no grupo de instâncias gerenciadas.

Como excluir um grupo de instâncias gerenciadas

Quando você exclui um grupo de instâncias gerenciadas, todas as VMs no grupo são excluídas. Se você precisar manter alguma das VMs nesse grupo de instâncias gerenciadas, abandone as instâncias primeiro para removê-las do grupo. Em seguida, exclua o grupo de instâncias gerenciadas.

Ao excluir um grupo gerenciado de instâncias e as respectivas instâncias usando o Console do Google Cloud ou a ferramenta gcloud, todo escalonador automático anexado é automaticamente excluído. Entretanto, se você usar a API Compute Engine, será necessário primeiro emitir solicitações separadas para excluir todos os escalonadores automáticos anexados com autoscalers.delete ou regionAutoscalers.delete.

Console

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

    Acesse grupo 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 VMs no grupo de instâncias gerenciadas.

gcloud

Use o comando delete.

gcloud compute instance-groups managed delete INSTANCE_GROUP_NAME \
    --zone ZONE

API

Chame o método delete para um recurso MIG zonal ou regional .

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME

Se o grupo for de instâncias gerenciadas por região, substitua zones/ZONE por regions/REGION.

Como criar grupos de instâncias preemptivas

É possível usar grupos de instâncias gerenciadas para criar rapidamente várias instâncias preemptivas, o que pode reduzir os custos das VMs 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. No Console do Cloud, acesse a página Modelos de instância.

    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

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

Chame o método instanceTemplates.insert para criar um novo modelo de instância. Inclua a propriedade scheduling.preemptible e defina-a 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.

Noções básicas sobre 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 Compute Engine: a propriedade instanceTemplate de nível superior e a propriedade versions. Por exemplo, no seguinte grupo de instâncias gerenciadas, observe que os campos instanceTemplate e versions sã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 do seu aplicativo define atualmente o campo instanceTemplate, essa ainda é uma solicitação válida.

Para saber mais, leia sobre a Relação entre versões e campos instanceTemplate.

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

É possível criar um grupo gerenciado de instâncias em que há dois grupos de VMs que usam modelos de instância diferentes. Por exemplo, é possível criar um grupo gerenciado de instâncias que tenha 20 instâncias de VM. Nesse caso, 10 VMs devem ser 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 do modelo de instância antes de decidir qual usar.

Para mais informações, leia sobre Atualizações Canary.

Grupos de instâncias gerenciadas e IAM

Todas as operações realizadas pelo Compute Engine como parte do grupo gerenciado de instâncias são executadas pela 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 o seguinte, em que PROJECT_ID é o ID numérico do projeto correspondente:

PROJECT_ID@cloudservices.gserviceaccount.com

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 recursos com base no modelo de instância. Em particular, isso significa que a conta de serviço precisa receber o papel compute.instanceAdmin.v1 e, como opção, o papel serviceAccountUser, para criar e gerenciar VMs no grupo de instâncias. O papel serviceAccountUser será necessário apenas se o grupo de instâncias gerenciadas criar VMs que podem ser executadas como uma conta de serviço. Lembre-se de que essa conta também é usada 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:

  • tem o papel serviceAccountUser. Importante se você planeja criar instâncias que podem ser executadas como uma conta de serviço;
  • tem permissões 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 instâncias em um MIG.

A seguir