Crie um MIG com vários tipos de máquinas


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

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

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 , necessário para criar um grupo de instâncias gerenciadas.
  • Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar 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. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.
    3. Terraform

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

      1. Install the Google Cloud CLI.
      2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      3. To initialize the gcloud CLI, run the following command:

        gcloud init
      4. 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, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.

      Confira mais informações em Set up authentication for a local development environment.

      REST

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

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.

Crie um MIG com vários tipos de máquinas

Console

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

    Vá para grupos 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 de instância que deseja usar para o MIG.

  5. Antes de especificar o número de instâncias e adicionar seleções de instância , você precisa fazer o seguinte:

    1. Defina um local da seguinte forma:

      1. Role mais até a seção Localização e selecione Zonas múltiplas .

      2. Nos menus suspensos Regiões e Zonas , selecione uma região e as zonas nas quais você deseja 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 alvo , selecione Balanceado 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 exibida, clique em Excluir .

    3. Role de volta para o campo Número de instâncias .

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

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

    A janela de seleções de instância é aberta.

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

    2. Na seção Seleção de nova instância , faça o seguinte:

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

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

        Repita esta etapa para cada tipo de máquina que você deseja adicionar à seleção de instância.

      3. Depois de adicionar os tipos de máquina à seleção de instância, clique em Concluído .

  8. Na janela de seleções de instância , 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áquinas, 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 \
    --target-distribution-shape SHAPE \
    --instance-redistribution-type none \
    --instance-selection-machine-types MACHINE_TYPE,MACHINE_TYPE,...

Os MIGs zonais não oferecem suporte à flexibilidade de instância. No entanto, se desejar 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 sinalizador --zones ZONE .

Substitua o seguinte:

  • INSTANCE_GROUP_NAME : o nome do MIG.
  • REGION : a região onde deseja criar o MIG.
  • TARGET_SIZE : o número de VMs que você deseja que o MIG crie e mantenha.
  • INSTANCE_TEMPLATE : o nome do modelo de instância.
  • SHAPE : a forma de distribuição alvo. O valor pode ser balanced ou any-single-zone . As outras formas de distribuição de destino não são suportadas.
  • MACHINE_TYPE : os tipos de máquina que você deseja configurar no MIG — por exemplo, n1-standard-16,n2-standard-16,e2-standard-16 .

Terraforma

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

Para criar um MIG regional com vários tipos de máquinas, 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 .

DESCANSAR

Para criar um MIG regional com vários tipos de máquinas, 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 oferecem suporte à flexibilidade de instância. No entanto, se desejar 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 o seguinte:

  • PROJECT_ID : seu ID do projeto .
  • REGION : a região onde deseja criar o MIG.
  • INSTANCE_GROUP_NAME : o nome do MIG.
  • TARGET_SIZE : o número de VMs que você deseja que o MIG crie e mantenha.
  • INSTANCE_TEMPLATE_URL : a URL do modelo de instância.
  • SHAPE : a forma de distribuição alvo. O valor pode ser BALANCED ou ANY_SINGLE_ZONE . As outras formas de distribuição de destino não são suportadas.
  • INSTANCE_SELECTION : o nome da lista de tipos de máquinas.
  • MACHINE_TYPE : os tipos de máquina que você deseja configurar no MIG — por exemplo, "n1-standard-16","n2-standard-16","e2-standard-16" .

O que vem a seguir