Adicionar flexibilidade de instância

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

É possível adicionar flexibilidade de instância ao criar ou editar um MIG. Para adicionar a flexibilidade, configure uma política de flexibilidade de instância 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. Você também pode atribuir classificações às listas de tipos de máquinas para indicar sua preferência.

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

Antes de começar

  • Escolha 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.
  • 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 serviços Google Cloud e APIs, 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 gcloud CLI 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 gcloud CLI 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 desta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.

      Instale a CLI do Google Cloud.

      Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI 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, crie um modelo de instância, se você ainda não tiver um. Em seguida, crie um MIG com flexibilidade de instância para substituir o tipo de máquina especificado no modelo de instância.

Crie um MIG com flexibilidade de instância 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 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 Forma de distribuição de destino, selecione Equilibrado, Qualquer ou Qualquer zona única.

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

        • 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 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 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âncias. 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á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 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 Forma de distribuição de destino, selecione Equilibrado, Qualquer ou Qualquer zona única.

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

        • 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. 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â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. No campo Classificação, insira a ordem de preferência entre as seleções de instâncias que você adiciona para o 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 concluir a adição das 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 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 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. As outras formas de distribuição de destino não são compatíveis.
  • INSTANCE_SELECTION: o nome da lista de tipos de máquinas.
  • 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 seleção de instâncias. Um valor menor significa uma preferência maior.

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 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_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 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. As outras formas de distribuição de destino não são compatíveis.
  • INSTANCE_SELECTION: o nome da lista de tipos de máquinas.
  • 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 seleção de instâncias. Um valor menor significa uma preferência maior.

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

Ao criar um MIG com vários tipos de máquina, é possível definir uma plataforma mínima de CPU 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 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 Forma de distribuição de destino, selecione Equilibrado, Qualquer ou Qualquer zona única.

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

        • 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. 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â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. No campo Classificação, insira a ordem de preferência entre as seleções de instâncias que você adiciona para o 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 quiser substituir a plataforma mínima de CPU 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 substituir a configuração de disco especificada no modelo de instância ou anexar um armazenamento, marque a caixa de seleção Substituir 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 existente 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 concluir a adição das 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

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

Você também pode usar um arquivo YAML ou JSON para configurar a política de flexibilidade de instância. Para 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. As outras formas de distribuição de destino não são compatíveis.
  • INSTANCE_SELECTION: o nome da lista de tipos de máquinas.
  • MACHINE_TYPE: os tipos de máquina que você quer configurar no MIG.
  • MIN_CPU_PLATFORM: a plataforma mínima de CPU 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 seleção de instâncias. Um valor menor significa uma preferência maior.

REST

Faça uma solicitação POST ao método regionInstanceGroupManagers.insert da versão 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. As outras formas de distribuição de destino não são compatíveis.
  • INSTANCE_SELECTION: o nome da lista de tipos de máquinas.
  • MACHINE_TYPE: os tipos de máquina que você quer configurar no MIG.
  • MIN_CPU_PLATFORM: a plataforma mínima de CPU 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 seleção de instâncias. Um valor menor significa uma preferência maior.

Adicionar flexibilidade de instância a um MIG

É possível adicionar flexibilidade de instância a um MIG. É possível definir vários tipos de máquinas e preferências para alguns deles.

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ância, 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ância, consulte Alterar a configuração de flexibilidade de instância.

Adicione flexibilidade de instância 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ância 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â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.

  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áquinas.
  • 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 seleção de instâncias. Um valor menor significa uma preferência maior.

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ância 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â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. No campo Classificação, insira a ordem de preferência entre as seleções de instâncias que você adiciona para o 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 concluir a adição das seleções de instâncias, 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áquinas.
  • 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 seleção de instâncias. Um valor menor significa uma preferência maior.

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áquinas.
  • 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 seleção de instâncias. Um valor menor significa uma preferência maior.

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

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ância 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â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. No campo Classificação, insira a ordem de preferência entre as seleções de instâncias que você adiciona para o 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 quiser substituir a plataforma mínima de CPU 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 substituir a configuração de disco especificada no modelo de instância ou anexar um armazenamento, marque a caixa de seleção Substituir 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 existente 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 concluir a adição das seleções de instâncias, 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 atual, use o comando instance-groups managed update Beta.

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

Você também pode usar um arquivo YAML ou JSON para configurar a política de flexibilidade de instância. Para 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áquinas.
  • MACHINE_TYPE: os tipos de máquina que você quer configurar no MIG.
  • MIN_CPU_PLATFORM: a plataforma mínima de CPU 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 seleção de instâncias. Um valor menor significa uma preferência maior.

REST

Para adicionar vários tipos de máquina, preferências e substituições de propriedades de instância a um MIG atual, 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áquinas.
  • MACHINE_TYPE: os tipos de máquina que você quer configurar no MIG.
  • MIN_CPU_PLATFORM: a plataforma mínima de CPU 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 seleção de instâncias. Um valor menor significa uma preferência maior.

Exemplo de arquivo YAML para configurar a flexibilidade da instância

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

Confira 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