Adicionar flexibilidade de instância


Este documento descreve como adicionar flexibilidade de instância que permite definir vários tipos de máquina em um MIG.

É possível adicionar flexibilidade de instância ao criar um MIG ou editar um MIG existente. Para adicionar 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 que você listou na política com base na disponibilidade de recursos. Você também pode atribuir classificações às listas de tipos de máquina 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. A autenticação é o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud. Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no Compute Engine selecionando uma das seguintes opções:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    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. To initialize the gcloud CLI, run the following command:

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

      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.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Para mais informações, consulte 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, se ainda não tiver um. Em seguida, é possível criar 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 destas formas:

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. Defina um local da seguinte maneira:

      1. Role até a seção Local e selecione Várias zonas.

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

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

      4. Na caixa de diálogo que aparece, 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 que aparece, 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ê quer no grupo.

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

    A janela Seleções de instâncias é 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 de instância.

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

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

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

  8. Na janela Seleções de instâ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, 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 são compatíveis com a flexibilidade de instância. No entanto, se você quiser criar um MIG em uma única zona, defina a forma de distribuição de destino como any-single-zone. Além disso, se você quiser uma zona específica, use a forma de distribuição any-single-zone e inclua a flag --zones ZONE.

Substitua:

  • INSTANCE_GROUP_NAME: o nome do MIG;
  • REGION: a região em que você quer criar a MIG.
  • TARGET_SIZE: o número de VMs que você quer que o MIG crie e mantenha.
  • INSTANCE_TEMPLATE: o nome do modelo de instância.
  • SHAPE: o formato de distribuição de destino. O valor pode ser balanced ou any-single-zone. Os outros formatos de distribuição de destino não são compatíveis.
  • MACHINE_TYPE: os tipos de máquina que você quer configurar no MIG, por exemplo, n1-standard-16,n2-standard-16,e2-standard-16.

Terraform

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

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

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

  target_size                      = 3
  distribution_policy_target_shape = "ANY_SINGLE_ZONE"

  version {
    instance_template = google_compute_instance_template.default.id
  }

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

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

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

REST

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

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

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

Os MIGs zonais não são compatíveis com a flexibilidade de instância. No entanto, se você quiser criar um MIG em uma única zona, defina 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 a 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.
  • SHAPE: o formato de distribuição de destino. O valor pode ser BALANCED ou ANY_SINGLE_ZONE. Os outros formatos de distribuição de destino não são compatíveis.
  • INSTANCE_SELECTION: o nome da lista de tipos de máquinas.
  • MACHINE_TYPE: os tipos de máquina que você quer configurar no MIG, por exemplo, "n1-standard-16","n2-standard-16","e2-standard-16".

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. Defina um local da seguinte maneira:

      1. Role até a seção Local e selecione Várias zonas.

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

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

      4. Na caixa de diálogo que aparece, 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 que aparece, 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ê quer no grupo.

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

    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 Seleção de nova instância, faça o seguinte:

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

      2. No campo Rank, insira a ordem de preferência entre as seleções de instância adicionadas 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 à seleção de instâncias, 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 \
    --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ância. No entanto, se você quiser criar um MIG em uma única zona, defina a forma de distribuição de destino como any-single-zone. Além disso, se você quiser uma zona específica, use a forma de distribuição any-single-zone e inclua a flag --zones ZONE.

Substitua:

  • INSTANCE_GROUP_NAME: o nome do MIG;
  • REGION: a região em que você quer criar a MIG.
  • TARGET_SIZE: o número de VMs que você quer que o MIG crie e mantenha.
  • INSTANCE_TEMPLATE: o nome do modelo de instância.
  • SHAPE: o formato de distribuição de destino. O valor pode ser balanced ou any-single-zone. Os outros formatos de distribuição de destino não são compatíveis.
  • INSTANCE_SELECTION: o nome da lista de tipos de máquina. É possível adicionar várias listas com preferências diferentes.
  • MACHINE_TYPE: os tipos de máquina que você quer configurar no MIG.

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 e preferências 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_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ância. No entanto, se você quiser criar um MIG em uma única zona, defina a forma de distribuição de destino como ANY_SINGLE_ZONE. Além disso, se você quiser uma zona específica, use a forma de distribuição ANY_SINGLE_ZONE e inclua o campo distributionPolicy.zones[].zone na solicitação.

Substitua:

  • PROJECT_ID: o ID do projeto.
  • REGION: a região em que você quer criar a 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.
  • SHAPE: o formato de distribuição de destino. O valor pode ser BALANCED ou ANY_SINGLE_ZONE.
  • ZONE: a zona em que você quer criar a MIG. Use esse campo se quiser criar um MIG regional em uma zona específica. Caso contrário, pule este campo.
  • INSTANCE_SELECTION: o nome da lista de tipos de máquinas. É possível adicionar várias listas com preferências diferentes.
  • MACHINE_TYPE: os tipos de máquina que você quer configurar no MIG.
  • RANK: o número que representa a ordem de preferência. Um valor menor significa preferência mais alta.

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áquina e também 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â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.

Se você quiser adicionar uma seleção de instância a uma política de flexibilidade de instância existente, consulte Mudar a configuração de flexibilidade de instância.

Adicione flexibilidade de instância a um MIG de uma destas formas:

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. Na seção Seleções de instância, clique em Adicionar seleções de instância.

    A janela Seleções de instâncias é 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 de instância.

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

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

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

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

  6. 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 em que você quer adicionar flexibilidade à instância.
  • REGION: a região em que o MIG está localizado.
  • MACHINE_TYPE: os tipos de máquina que você quer configurar no MIG, por exemplo, n1-standard-16,n2-standard-16,e2-standard-16.

REST

Para adicionar vários tipos de máquina a um MIG, faça uma solicitação PATCH para o 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 em que você quer adicionar flexibilidade à instância.
  • INSTANCE_SELECTION: um nome para a lista de tipos de máquinas.
  • MACHINE_TYPE: os tipos de máquina que você quer configurar no MIG, por exemplo, "n1-standard-16","n2-standard-16","e2-standard-16".
  • RANK: o número que representa a ordem de preferência. Um valor menor significa 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. Na seção Seleções de instância, clique em Adicionar seleções de instância.

    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 Seleção de nova instância, faça o seguinte:

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

      2. No campo Rank, insira a ordem de preferência entre as seleções de instância adicionadas 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 à seleção de instâncias, clique em Concluído.

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

  6. 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 em que você quer adicionar flexibilidade à instância.
  • REGION: a região em que o MIG está localizado.
  • INSTANCE_SELECTION: o nome da lista de tipos de máquina. É possível adicionar várias listas com preferências diferentes.
  • MACHINE_TYPE: os tipos de máquina que você quer configurar no MIG.

REST

Para adicionar vários tipos de máquina e preferências a um MIG, faça uma solicitação PATCH para o 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. É possível adicionar várias listas com preferências diferentes.
  • MACHINE_TYPE: os tipos de máquina que você quer configurar no MIG.

A seguir