Adicionar flexibilidade de instância

Neste documento, descrevemos como adicionar flexibilidade de instâncias que permite definir vários tipos de máquina em um MIG.

É possível adicionar flexibilidade de instâncias ao criar um MIG ou editando um MIG atual. Para adicionar a flexibilidade, configure uma política de flexibilidade de instâncias no MIG. A política substitui o tipo de máquina especificado no modelo de instância. Sempre que o MIG cria uma instância de máquina virtual (VM), ele seleciona automaticamente um dos tipos de máquina listados na política com base na disponibilidade de recursos. Também é possível atribuir classificações às listas de tipos de máquina para indicar sua preferência.

Para saber como a flexibilidade de instâncias funciona em um MIG, consulte Sobre a flexibilidade de instâncias.

Antes de começar

  • Verifique se você escolheu tipos de máquina compatíveis com a região em que o MIG está localizado. Para conferir os tipos de máquina em uma região, consulte Regiões e zonas disponíveis.

  • Se você quiser criar VMs spot em um MIG, verifique a disponibilidade de recursos antes de adicionar VMs ao MIG. Verificar a disponibilidade de recursos ajuda a reduzir as chances de encontrar erros de disponibilidade de recursos. Para instruções, consulte Ver a disponibilidade de recursos de VMs spot.
  • 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 do Google Cloud para acessar os serviços e as APIs do 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 desta 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 externo (IdP), 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 desta 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 .

Como criar um MIG com flexibilidade de instância

Antes de criar um MIG, você precisa criar um modelo de instância, caso ainda não tenha um. Em seguida, crie um MIG com flexibilidade de instâncias para substituir o tipo de máquina especificado no modelo de instância.

Crie um MIG com flexibilidade de instâncias de uma das seguintes maneiras:

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 de instância 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 será aberta, 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 que aparece, clique em Excluir.

    3. Volte para 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âncias.

    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 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 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âncias. 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 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âncias. 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 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á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".

Criar um MIG com vários tipos de máquina e preferências

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 de instância 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 será aberta, 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 que aparece, clique em Excluir.

    3. Volte para 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. Repita as etapas a seguir para cada seleção de instância que você quer adicionar no MIG.

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

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

      2. No campo Classificação, insira a ordem de preferência entre as seleções de instâncias que você adiciona ao MIG.

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

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

  8. Depois de adicionar as seleções de instância, 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 e preferências, use o comando instance-groups managed create.

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 "name=INSTANCE_SELECTION_1,machine-type=MACHINE_TYPE_1,machine-type=MACHINE_TYPE_2,rank=RANK_1" \
    --instance-selection "name=INSTANCE_SELECTION_2,machine-type=MACHINE_TYPE_3,machine-type=MACHINE_TYPE_4,rank=RANK_2"

Os MIGs zonais não são compatíveis com a flexibilidade de instâncias. 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 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. 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.
  • RANK: um número que representa sua ordem de preferência para a seleção de instâncias. Um valor mais baixo significa uma preferência mais alta.

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 e preferências, 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          = "best-choice"
      rank          = 1
      machine_types = ["n1-standard-1", "n1-standard-2"]
    }
    instance_selections {
      name          = "still-ok"
      rank          = 2
      machine_types = ["n2-standard-1"]
    }
    instance_selections {
      name          = "if-nothing-else"
      rank          = 3
      machine_types = ["e2-standard-2"]
    }
  }

  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 e preferências, faça uma solicitação POST ao 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_1": {
        "machineTypes": [
          "MACHINE_TYPE_1",
          "MACHINE_TYPE_2",
          ...
        ],
        "rank": RANK_1
      },
      "INSTANCE_SELECTION_2": {
        "machineTypes": [
          "MACHINE_TYPE_3",
          "MACHINE_TYPE_4",
          ...
        ],
        "rank": RANK_2
      },
      ...
    }
  }
}

Os MIGs zonais não são compatíveis com a flexibilidade de instâncias. 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 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. 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.
  • RANK: um número que representa sua ordem de preferência para a seleção de instâncias. Um valor mais baixo significa uma preferência mais alta.

Criar um MIG com vários tipos de máquina, preferências e outras substituições

Ao criar um MIG com vários tipos de máquina, é possível definir uma plataforma de CPU mínima e definições de disco para cada seleção de instância.

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 de instância 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 será aberta, 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 que aparece, clique em Excluir.

    3. Volte para 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. Repita as etapas a seguir para cada seleção de instância que você quer adicionar no MIG.

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

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

      2. No campo Classificação, insira a ordem de preferência entre as seleções de instâncias que você adiciona ao MIG.

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

      4. Se você quiser substituir a plataforma de CPU mínima especificada no modelo de instância, marque a caixa de seleção Substituir a plataforma de CPU para esta seleção. Na lista Plataforma de CPU, selecione a plataforma que você quer usar para a seleção de instâncias.

      5. Se você quiser modificar a configuração de disco especificada no modelo de instância ou anexar um armazenamento, marque a caixa de seleção Modificar discos.

        • Para substituir o disco de inicialização, na seção Disco de inicialização, clique em Alterar e siga as instruções.

        • Para anexar um armazenamento, clique em Adicionar novo disco ou Anexar disco atual e siga as instruções.

      6. Depois de adicionar os tipos de máquina e as substituições, clique em Concluído.

  8. Depois de adicionar as seleções de instância, clique em Concluído.

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

  10. Clique em Criar.

gcloud

Use o comando instance-groups managed create.

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --region REGION \
    --size TARGET_SIZE \
    --template INSTANCE_TEMPLATE_URL \
    --force-update-on-repair \
    --target-distribution-shape SHAPE \
    --instance-redistribution-type none \
    --instance-flexibility-policy={"instanceSelections": \
        {"INSTANCE_SELECTION_1":{"rank":RANK_1,"machineTypes":["MACHINE_TYPE_1","MACHINE_TYPE_2"],"minCpuPlatform":"MIN_CPU_PLATFORM_1","disks":[{"deviceName":"DEVICE_NAME_1","boot":true,"initializeParams":{"sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE_NAME"}}]}, \
        "INSTANCE_SELECTION_2":{"rank":RANK_2,"machineTypes":["MACHINE_TYPE_3","MACHINE_TYPE_4"],"minCpuPlatform":"MIN_CPU_PLATFORM_2","disks":[{"deviceName":"DEVICE_NAME_2","boot":true,"initializeParams":{"sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE_NAME"}}]}}}

Também é possível usar um arquivo YAML ou JSON para configurar a política de flexibilidade de instâncias. Para fazer isso, use a flag --flags-file em vez da flag --instance-flexibility-policy e especifique o nome do arquivo. Por exemplo, use --flags-file=FILE_NAME.YAML.

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. 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.
  • MIN_CPU_PLATFORM: a plataforma de CPU mínima para as instâncias.
  • DEVICE_NAME: o nome do dispositivo para o disco.
  • IMAGE_PROJECT: o ID do projeto da imagem de origem.
  • IMAGE_NAME: o nome da imagem de origem.
  • RANK: um número que representa sua ordem de preferência para a seleção de instâncias. Um valor mais baixo significa uma preferência mais alta.

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, preferências e outras substituições, use o recurso google_compute_region_instance_group_manager.

resource "google_compute_region_instance_group_manager" "default" {
  provider           = google-beta
  name               = "flex-igm"
  base_instance_name = "flex-igm-instance"
  region             = "us-central1"

  target_size                      = 2
  distribution_policy_target_shape = "ANY"

  version {
    instance_template = google_compute_instance_template.default.id
  }

  instance_flexibility_policy {
    instance_selections {
      name          = "first-preference"
      rank          = 1
      machine_types = ["n4-standard-4"]
      disks {
        auto_delete  = true
        device_name  = "boot"
        boot         = true
        source_image = "projects/debian-cloud/global/images/family/debian-12"
        disk_size_gb = 10
        disk_type    = "hyperdisk-balanced"
      }
    }

    instance_selections {
      name             = "second-preference"
      rank             = 2
      machine_types    = ["n2-standard-4"]
      min_cpu_platform = "Intel Ice Lake"
      disks {
        auto_delete  = true
        device_name  = "boot"
        boot         = true
        source_image = "projects/debian-cloud/global/images/family/debian-12"
        disk_size_gb = 10
        disk_type    = "pd-ssd"
      }
    }
  }

  instance_lifecycle_policy {
    force_update_on_repair = "YES"
  }

  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

Faça uma solicitação POST ao método regionInstanceGroupManagers.insert Beta.

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

{
"name": "INSTANCE_GROUP_NAME",
"targetSize": "TARGET_SIZE",
"instanceTemplate": "INSTANCE_TEMPLATE_URL",
"distributionPolicy": {
  "targetShape": "SHAPE"
},
"updatePolicy": {
  "instanceRedistributionType": "NONE"
},
"instanceLifecyclePolicy": {
  "forceUpdateOnRepair": "YES",
},
"instanceFlexibilityPolicy": {
  "instanceSelections": {
    "INSTANCE_SELECTION_1": {
      "machineTypes": ["MACHINE_TYPE_1", "MACHINE_TYPE_2", …],
      "minCpuPlatform": "MIN_CPU_PLATFORM_1",
      "disks": [
        {
          "deviceName": "DEVICE_NAME_1",
          "initializeParams": {
            "sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE_NAME"
          },
          "boot": true
        }
      ],
      "rank": RANK_1
    },
    "INSTANCE_SELECTION_2": {
      "machineTypes": ["MACHINE_TYPE_3", "MACHINE_TYPE_4", …],
      "minCpuPlatform": "MIN_CPU_PLATFORM_2",
      "disks": [
        {
          "deviceName": "DEVICE_NAME_2",
          "initializeParams": {
            "sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE_NAME"
          },
          "boot": true
        }
      ],
      "rank": RANK_2
    }
  }
}
}

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. 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.
  • MIN_CPU_PLATFORM: a plataforma de CPU mínima para as instâncias.
  • DEVICE_NAME: o nome do dispositivo para o disco.
  • IMAGE_PROJECT: o ID do projeto da imagem de origem.
  • IMAGE_NAME: o nome da imagem de origem.
  • RANK: um número que representa sua ordem de preferência para a seleção de instâncias. Um valor mais baixo significa uma preferência mais alta.

Adicionar flexibilidade de instâncias a um MIG atual

É possível adicionar flexibilidade de instâncias a um MIG. É possível definir vários tipos de máquina e também definir preferências para determinados tipos de máquina.

Se o MIG já tiver VMs, elas vão continuar usando o tipo de máquina especificado no modelo de instância. Se você quiser que as VMs atuais no MIG usem os tipos de máquina da política de flexibilidade de instâncias, depois de adicionar a política, exclua as VMs atuais e redimensione o MIG para o número necessário de VMs. Ao redimensionar, as novas VMs vão usar os tipos de máquina da política.

Para modificar uma política de flexibilidade de instâncias, consulte Mudar a configuração de flexibilidade de instâncias.

Adicione flexibilidade de instâncias a um MIG de uma das seguintes maneiras:

Adicionar 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 no nome do MIG em que você quer definir vários tipos de máquina.

  3. Clique em Editar.

  4. Clique em Flexibilidade de instâncias para abrir a seção.

  5. 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âncias.

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

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

  7. Clique em Salvar.

gcloud

Para adicionar vários tipos de máquina a um MIG, use o comando instance-groups managed update.

gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
    --region REGION \
    --instance-selection-machine-types MACHINE_TYPE,MACHINE_TYPE,...

Substitua:

  • INSTANCE_GROUP_NAME: o nome do MIG.
  • REGION: a região em que o MIG está localizado.
  • MACHINE_TYPE: os tipos de máquina que você quer configurar no MIG.

REST

Para adicionar vários tipos de máquina a um MIG, faça uma solicitação PATCH ao método regionInstanceGroupManagers.patch.

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

{
  "instanceFlexibilityPolicy": {
    "instanceSelections": {
    "INSTANCE_SELECTION": {
        "machineTypes": [
          "MACHINE_TYPE_1",
          "MACHINE_TYPE_2"
          ...
        ]
      }
    }
  }
}

Substitua:

  • PROJECT_ID: o ID do projeto.
  • REGION: a região em que o MIG está localizado.
  • INSTANCE_GROUP_NAME: o nome do MIG.
  • INSTANCE_SELECTION: o nome da lista de tipos de máquina.
  • MACHINE_TYPE: os tipos de máquina que você quer configurar no MIG.
  • RANK: um número que representa sua ordem de preferência para a seleção de instâncias. Um valor mais baixo significa uma preferência mais alta.

Adicionar vários tipos de máquina e preferências

Console

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

    Acesse grupo de instâncias

  2. Clique no nome do MIG em que você quer definir vários tipos de máquina.

  3. Clique em Editar.

  4. Clique em Flexibilidade de instâncias para abrir a seção.

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

    A janela Seleções de instâncias é aberta. Repita as etapas a seguir para cada seleção de instância que você quer adicionar no MIG.

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

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

      2. No campo Classificação, insira a ordem de preferência entre as seleções de instâncias que você adiciona ao MIG.

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

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

  6. Depois de adicionar as seleções de instância, clique em Concluído.

  7. Clique em Salvar.

gcloud

Para adicionar vários tipos de máquina e preferências a um MIG, use o comando instance-groups managed update.

gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
    --region REGION \
    --instance-selection "name=INSTANCE_SELECTION_1,machine-type=MACHINE_TYPE_1,machine-type=MACHINE_TYPE_2,rank=RANK_1" \
    --instance-selection "name=INSTANCE_SELECTION_2,machine-type=MACHINE_TYPE_3,machine-type=MACHINE_TYPE_4,rank=RANK_2"

Substitua:

  • INSTANCE_GROUP_NAME: o nome do MIG.
  • REGION: a região em que o MIG está localizado.
  • INSTANCE_SELECTION: o nome da lista de tipos de máquina.
  • MACHINE_TYPE: os tipos de máquina que você quer configurar no MIG.
  • RANK: um número que representa sua ordem de preferência para a seleção de instâncias. Um valor mais baixo significa uma preferência mais alta.

REST

Para adicionar vários tipos de máquina e preferências a um MIG, faça uma solicitação PATCH ao método regionInstanceGroupManagers.patch.

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

{
  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "INSTANCE_SELECTION_1": {
        "machineTypes": [
          "MACHINE_TYPE_1",
          "MACHINE_TYPE_2"
        ],
        "rank": RANK_1
      },
      "INSTANCE_SELECTION_2": {
        "machineTypes": [
          "MACHINE_TYPE_3",
          "MACHINE_TYPE_4"
        ],
        "rank": RANK_2
      }
    }
  }
}

Substitua:

  • PROJECT_ID: o ID do projeto.
  • REGION: a região em que o MIG está localizado.
  • INSTANCE_GROUP_NAME: o nome do MIG.
  • INSTANCE_SELECTION: o nome da lista de tipos de máquina.
  • MACHINE_TYPE: os tipos de máquina que você quer configurar no MIG.
  • RANK: um número que representa sua ordem de preferência para a seleção de instâncias. Um valor mais baixo significa uma preferência mais alta.

Adicionar vários tipos de máquina, preferências e outras substituições

Console

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

    Acesse grupo de instâncias

  2. Clique no nome do MIG em que você quer definir vários tipos de máquina.

  3. Clique em Editar.

  4. Clique em Flexibilidade de instâncias para abrir a seção.

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

    A janela Seleções de instâncias é aberta. Repita as etapas a seguir para cada seleção de instância que você quer adicionar no MIG.

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

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

      2. No campo Classificação, insira a ordem de preferência entre as seleções de instâncias que você adiciona ao MIG.

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

      4. Se você quiser substituir a plataforma de CPU mínima especificada no modelo de instância, marque a caixa de seleção Substituir a plataforma de CPU para esta seleção. Na lista Plataforma de CPU, selecione a plataforma que você quer usar para a seleção de instâncias.

      5. Se você quiser modificar a configuração de disco especificada no modelo de instância ou anexar um armazenamento, marque a caixa de seleção Modificar discos.

        • Para substituir o disco de inicialização, na seção Disco de inicialização, clique em Alterar e siga as instruções.

        • Para anexar um armazenamento, clique em Adicionar novo disco ou Anexar disco atual e siga as instruções.

      6. Depois de adicionar os tipos de máquina e as substituições, clique em Concluído.

  6. Depois de adicionar as seleções de instância, clique em Concluído.

  7. Clique em Salvar.

gcloud

Para adicionar vários tipos de máquina, preferências e substituições de propriedades de instância a um MIG, use o comando beta instance-groups managed update.

gcloud beta compute instance-groups managed update INSTANCE_GROUP_NAME \
    --region REGION \
    --instance-flexibility-policy= '{"instanceSelections": \
        {"INSTANCE_SELECTION_1":{"rank":RANK_1,"machineTypes":["MACHINE_TYPE_1","MACHINE_TYPE_2"],"minCpuPlatform":"MIN_CPU_PLATFORM_1","disks":[{"device-name":"DEVICE_NAME_1","boot":true,"initializeParams":{"sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE_NAME"}}]}, \
        "INSTANCE_SELECTION_2":{"rank":RANK_2,"machineTypes":["MACHINE_TYPE_3","MACHINE_TYPE_4"],"minCpuPlatform":"MIN_CPU_PLATFORM_2","disks":[{"device-name":"DEVICE_NAME_2","boot":true,"initializeParams":{"sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE_NAME"}}]}}}'

Também é possível usar um arquivo YAML ou JSON para configurar a política de flexibilidade de instâncias. Para fazer isso, use a flag --flags-file em vez da flag --instance-flexibility-policy e especifique o nome do arquivo. Por exemplo, use --flags-file=FILE_NAME.YAML.

Substitua:

  • INSTANCE_GROUP_NAME: o nome do MIG.
  • REGION: a região em que o MIG está localizado.
  • INSTANCE_SELECTION: o nome da lista de tipos de máquina.
  • MACHINE_TYPE: os tipos de máquina que você quer configurar no MIG.
  • MIN_CPU_PLATFORM: a plataforma de CPU mínima para as instâncias.
  • DEVICE_NAME: o nome do dispositivo para o disco.
  • IMAGE_PROJECT: o ID do projeto da imagem de origem.
  • IMAGE_NAME: o nome da imagem de origem.
  • RANK: um número que representa sua ordem de preferência para a seleção de instâncias. Um valor mais baixo significa uma preferência mais alta.

REST

Para adicionar vários tipos de máquina, preferências e substituições de propriedades de instância a um MIG, faça uma solicitação PATCH ao método regionInstanceGroupManagers.patch da versão Beta.

PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME

{
  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "INSTANCE_SELECTION_1": {
        "machineTypes": [
          "MACHINE_TYPE_1",
          "MACHINE_TYPE_2"
        ],
        "minCpuPlatform": "MIN_CPU_PLATFORM_1",
        "disks": [
          {
            "deviceName": "DEVICE_NAME_1",
            "initializeParams": {
              "sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE_NAME"
            },
            "boot": true
          }
        ],
        "rank": RANK_1
      },
      "INSTANCE_SELECTION_2": {
        "machineTypes": [
          "MACHINE_TYPE_3",
          "MACHINE_TYPE_4"
        ],
        "minCpuPlatform": "MIN_CPU_PLATFORM_2",
        "disks": [
          {
            "deviceName": "DEVICE_NAME_2",
            "initializeParams": {
              "sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE_NAME"
            },
            "boot": true
          }
        ],
        "rank": RANK_2
      }
    }
  }
}

Substitua:

  • PROJECT_ID: o ID do projeto.
  • REGION: a região em que o MIG está localizado.
  • INSTANCE_GROUP_NAME: o nome do MIG.
  • INSTANCE_SELECTION: o nome da lista de tipos de máquina.
  • MACHINE_TYPE: os tipos de máquina que você quer configurar no MIG.
  • MIN_CPU_PLATFORM: a plataforma de CPU mínima para as instâncias.
  • DEVICE_NAME: o nome do dispositivo para o disco.
  • IMAGE_PROJECT: o ID do projeto da imagem de origem.
  • IMAGE_NAME: o nome da imagem de origem.
  • RANK: um número que representa sua ordem de preferência para a seleção de instâncias. Um valor mais baixo significa uma preferência mais alta.

Exemplo de arquivo YAML para configurar a flexibilidade de instâncias

É possível usar um arquivo YAML ou JSON para configurar a política de flexibilidade de instâncias. Para isso, use a flag --flags-file no comando da CLI gcloud e especifique o nome do arquivo. Por exemplo, use --flags-file=FILE_NAME.YAML.

Veja um exemplo de arquivo YAML:

--instance-flexibility-policy:
  instanceSelections:
    first-preference:
      rank: 1
      machineTypes:
        - n2-standard-8
      minCpuPlatform: "Intel Ice Lake"
      disks:
        - deviceName: data-disk
          boot: false
          initializeParams:
            sourceImage: projects/debian-cloud/global/images/debian-12
            diskType: pd-ssd

A seguir