Criar um MIG com vários tipos de máquina

Neste documento, descrevemos como criar um grupo gerenciado de instâncias (MIG) com flexibilidade de instância, que permite especificar vários tipos de máquina no MIG.

A flexibilidade de instâncias ajuda a melhorar a capacidade de obtenção de recursos, principalmente para aplicativos que podem operar em diferentes tipos de máquinas e que exigem capacidade em grande escala ou hardware com alta demanda. Para mais informações, consulte Sobre a flexibilidade de instâncias.

Também é possível ler sobre outros cenários básicos para criar um MIG.

Antes de começar

  • Crie um modelo de instância, que é necessário para criar um grupo de instâncias gerenciadas.
  • Configure a autenticação, caso ainda não tenha feito isso. Com isso, você confirma 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:

    Selecione a guia para como planeja usar as amostras nesta página:

    Console

    Quando você usa o console Google Cloud para acessar os serviços e as APIs Google Cloud , não é necessário configurar a autenticação.

    gcloud

    1. Instale a CLI do Google Cloud. Após a instalação, inicialize a Google Cloud CLI executando o seguinte comando:

      gcloud init

      Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.

  • Defina uma região e uma zona padrão.
  • Terraform

    Para usar os exemplos do Terraform nesta página em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e configure o Application Default Credentials com suas credenciais de usuário.

    1. Instale a CLI do Google Cloud.

    2. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.

    3. Se você estiver usando um shell local, crie credenciais de autenticação local para sua conta de usuário:

      gcloud auth application-default login

      Não é necessário fazer isso se você estiver usando o Cloud Shell.

      Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.

    Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

    REST

    Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.

      Instale a CLI do Google Cloud.

      Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.

    Saiba mais em Autenticar para usar REST na documentação de autenticação do Google Cloud .

Criar um MIG com vários tipos de máquina

Console

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

    Acesse grupo de instâncias

  2. Clique em Criar grupo de instâncias.

  3. No campo Nome, insira um nome para o MIG.

  4. Na lista Modelo de instância, selecione o modelo que você quer usar para o MIG.

  5. Antes de especificar o Número de instâncias e adicionar Seleções de instâncias, faça o seguinte:

    1. Acesse a seção Local na página e defina um local da seguinte maneira:

      1. Selecione Várias zonas.

      2. Nos menus suspensos Regiões e Zonas, selecione uma região e as zonas em que você quer criar as VMs no MIG. Se você selecionou um modelo de instância regional, a região desse modelo será selecionada por padrão.

      3. No campo Formato de distribuição de destino, selecione Equilibrado, Qualquer ou Qualquer zona única.

        • Se você selecionar Equilibrada ou Qualquer zona única, na caixa de diálogo que abrir, clique em Desativar redistribuição de instâncias.

        • Se você selecionar Qualquer, verifique se a caixa de seleção Permitir redistribuição de instâncias não está marcada.

    2. Acesse a seção Escalonamento automático na página e exclua a configuração de escalonamento automático da seguinte maneira:

      1. No menu suspenso Modo de escalonamento automático, clique em Excluir configuração de escalonamento automático.

      2. Na caixa de diálogo aberta, clique em Excluir.

    3. Role a tela de volta até o campo Número de instâncias.

  6. No campo Número de instâncias, especifique o número de VMs que você quer no grupo.

  7. Na seção Seleções de instâncias, clique em Adicionar seleções.

    A janela Seleções de instâncias é aberta.

    1. Clique em Adicionar seleção de instância.

    2. Na seção Nova seleção de instâncias, faça o seguinte:

      1. No campo Nome, insira um nome para a seleção de instâncias.

      2. Na seção Tipos de máquina, clique em Adicionar tipo de máquina, selecione um tipo de máquina que você quer adicionar na seleção de instâncias e clique em Concluído.

        Repita essa etapa para cada tipo de máquina que você quer adicionar à seleção de instâncias.

      3. Depois de adicionar os tipos de máquina, clique em Concluído.

  8. Na janela Seleções de instâncias, clique em Concluído.

  9. Deixe os outros campos com as configurações padrão ou modifique conforme necessário.

  10. Clique em Criar.

gcloud

Para criar um MIG regional com vários tipos de máquina, use o comando instance-groups managed create da seguinte maneira:

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --region REGION \
    --size TARGET_SIZE \
    --template INSTANCE_TEMPLATE_URL \
    --target-distribution-shape SHAPE \
    --instance-redistribution-type none \
    --instance-selection-machine-types MACHINE_TYPE,MACHINE_TYPE,...

Os MIGs zonais não são compatíveis com a flexibilidade de instância. No entanto, se você quiser criar um MIG em uma única zona, defina a forma de distribuição de destino como any-single-zone. Além disso, se você quiser uma zona específica, use a forma de distribuição any-single-zone e inclua a flag --zones ZONE.

Substitua:

  • INSTANCE_GROUP_NAME: o nome do MIG;
  • REGION: a região em que você quer criar o MIG.
  • TARGET_SIZE: o número de VMs que você quer que o MIG crie e mantenha.
  • INSTANCE_TEMPLATE_URL: o URL do modelo de instância que você quer usar para criar instâncias no MIG. O URL pode conter o ID ou o nome do modelo de instância. Especifique um dos seguintes valores:
    • Para um modelo de instância regional: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID.
    • Para um modelo de instância global: INSTANCE_TEMPLATE_ID
  • SHAPE: o formato de distribuição de destino. O valor pode ser balanced, any ou any-single-zone.
  • MACHINE_TYPE: os tipos de máquina que você quer configurar no MIG, por exemplo, n1-standard-16,n2-standard-16,e2-standard-16.

Terraform

Se você ainda não criou um modelo de instância, que especifica as propriedades de VM que você quer para cada VM no MIG, crie um modelo de instância.

Para criar um MIG regional com vários tipos de máquina, use o recurso google_compute_region_instance_group_manager.

resource "google_compute_region_instance_group_manager" "default" {
  name               = "flex-igm"
  base_instance_name = "tf-test-flex-igm"
  region             = "us-central1"

  target_size                      = 3
  distribution_policy_target_shape = "ANY_SINGLE_ZONE"

  version {
    instance_template = google_compute_instance_template.default.id
  }

  instance_flexibility_policy {
    instance_selections {
      name          = "default-instance-selection"
      machine_types = ["n1-standard-16", "n2-standard-16", "e2-standard-16"]
    }
  }

  update_policy {
    instance_redistribution_type = "NONE"
    type                         = "OPPORTUNISTIC"
    minimal_action               = "REPLACE"
    max_surge_fixed              = 0
    max_unavailable_fixed        = 6
  }
}

Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.

REST

Para criar um MIG regional com vários tipos de máquina, faça uma solicitação POST para o método regionInstanceGroupManagers.insert.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers

{
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": TARGET_SIZE,
  "instanceTemplate": "INSTANCE_TEMPLATE_URL",
  "distributionPolicy": {
    "targetShape": "SHAPE"
  },
  "updatePolicy": {
    "instanceRedistributionType": "NONE"
  },
  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "INSTANCE_SELECTION": {
        "machineTypes": [
          "MACHINE_TYPE_1",
          "MACHINE_TYPE_2",
          ...
        ]
      }
    }
  }
}

Os MIGs zonais não são compatíveis com a flexibilidade de instância. No entanto, se você quiser criar um MIG em uma única zona, defina a forma de distribuição de destino como ANY_SINGLE_ZONE. Além disso, se você quiser uma zona específica, use a forma de distribuição ANY_SINGLE_ZONE e inclua o campo distributionPolicy.zones[].zone na solicitação.

Substitua:

  • PROJECT_ID: o ID do projeto.
  • REGION: a região em que você quer criar o MIG.
  • INSTANCE_GROUP_NAME: o nome do MIG;
  • TARGET_SIZE: o número de VMs que você quer que o MIG crie e mantenha.
  • INSTANCE_TEMPLATE_URL: o URL do modelo de instância que você quer usar para criar instâncias no MIG. O URL pode conter o ID ou o nome do modelo de instância. Especifique um dos seguintes valores:
    • Para um modelo de instância regional: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID.
    • Para um modelo de instância global: INSTANCE_TEMPLATE_ID
  • SHAPE: o formato de distribuição de destino. O valor pode ser BALANCED, ANY ou ANY_SINGLE_ZONE.
  • INSTANCE_SELECTION: o nome da lista de tipos de máquinas.
  • MACHINE_TYPE: os tipos de máquina que você quer configurar no MIG, por exemplo, "n1-standard-16","n2-standard-16","e2-standard-16".

A seguir