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.

Você também pode 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. 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

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

      gcloud init

      Se você estiver usando um provedor de identidade externo (IdP), primeiro faça login na CLI gcloud com sua identidade federada.

    2. Set a default region and zone.

    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.

      Instale a CLI do Google Cloud.

      Se você estiver usando um provedor de identidade externo (IdP), primeiro faça login na CLI gcloud com sua identidade federada.

      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.

      If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

    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 a CLI gcloud.

      Instale a CLI do Google Cloud.

      Se você estiver usando um provedor de identidade externo (IdP), primeiro faça login na CLI gcloud com sua identidade federada.

    Para mais informações, consulte 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 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. Defina um local da seguinte forma:

      1. Role a tela até a seção Local e 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 Forma de distribuição de destino, selecione Equilibrado ou Qualquer zona única.

      4. Na caixa de diálogo exibida, clique em Desativar redistribuição de instâncias.

    2. Exclua a configuração de escalonamento automático da seguinte maneira:

      1. Na seção Escalonamento automático, 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 de instâncias.

    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ância, 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 à seleção de instâncias, clique em Concluído.

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

  9. Deixe os outros campos nas 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 o formato 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 VMs 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 ou any-single-zone. Os outros formatos de distribuição de destino não são compatíveis.
  • 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 o formato de distribuição de destino como ANY_SINGLE_ZONE. Além disso, se você quiser uma zona específica, use o formato 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 VMs 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 ou ANY_SINGLE_ZONE. Os outros formatos de distribuição de destino não são compatíveis.
  • INSTANCE_SELECTION: o nome da lista de tipos de máquina.
  • 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