Adicione flexibilidade de instância


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

Você pode adicionar flexibilidade de instância ao criar um MIG ou ao 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. Cada vez 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 funciona a flexibilidade de instâncias em um MIG, consulte Sobre flexibilidade de instâncias .

Antes de começar

  • Certifique-se de escolher tipos de máquinas compatíveis com a região onde seu MIG está localizado. Para ver os tipos de máquinas em uma região, consulte Regiões e zonas disponíveis .
  • Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar no Compute Engine selecionando uma das seguintes opções:

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

    Console

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

    gcloud

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

      gcloud init

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

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

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

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

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

        gcloud init
      4. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

        If an authentication error is returned, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.

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

      REST

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

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

        gcloud init

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

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

Crie um MIG com flexibilidade de instância

Antes de criar um MIG, você deve primeiro criar um modelo de instância , caso ainda não tenha um. Você pode então 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 das seguintes maneiras:

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

Console

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

    Vá para grupos de instâncias

  2. Clique em Criar grupo de instâncias .

  3. No campo Nome , insira um nome para o MIG.

  4. Na lista Modelo de instância , selecione o modelo de instância que deseja usar para o MIG.

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

    1. Defina um local da seguinte forma:

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

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

      3. No campo Formato de distribuição alvo , selecione Balanceado ou Qualquer zona única .

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

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

      1. Na seção Escalonamento automático , no menu suspenso Modo de escalonamento automático , clique em Excluir configuração de escalonamento automático .

      2. Na caixa de diálogo exibida, clique em Excluir .

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

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

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

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

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

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

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

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

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

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

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

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

  10. Clique em Criar .

gcloud

Para criar um MIG regional com vários tipos de máquinas, use o comando instance-groups managed create da seguinte maneira:

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --region REGION \
    --size TARGET_SIZE \
    --template INSTANCE_TEMPLATE \
    --target-distribution-shape SHAPE \
    --instance-redistribution-type none \
    --instance-selection-machine-types MACHINE_TYPE,MACHINE_TYPE,...

Os MIGs zonais não oferecem suporte à flexibilidade de instância. No entanto, se desejar criar um MIG em uma única zona, defina o formato de distribuição de destino como any-single-zone . Além disso, se você quiser uma zona específica, use o formato de distribuição any-single-zone e inclua o sinalizador --zones ZONE .

Substitua o seguinte:

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

Terraforma

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

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

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

  target_size                      = 3
  distribution_policy_target_shape = "ANY_SINGLE_ZONE"

  version {
    instance_template = google_compute_instance_template.default.id
  }

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

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

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

DESCANSAR

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

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

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

Os MIGs zonais não oferecem suporte à flexibilidade de instância. No entanto, se desejar criar um MIG em uma única zona, defina o formato de distribuição de destino como ANY_SINGLE_ZONE . Além disso, se você quiser uma zona específica, use o formato de distribuição ANY_SINGLE_ZONE e inclua o campo distributionPolicy.zones[].zone na solicitação.

Substitua o seguinte:

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

Crie um MIG com vários tipos de máquinas e preferências

Console

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

    Vá para grupos de instâncias

  2. Clique em Criar grupo de instâncias .

  3. No campo Nome , insira um nome para o MIG.

  4. Na lista Modelo de instância , selecione o modelo de instância que deseja usar para o MIG.

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

    1. Defina um local da seguinte forma:

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

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

      3. No campo Formato de distribuição alvo , selecione Balanceado ou Qualquer zona única .

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

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

      1. Na seção Escalonamento automático , no menu suspenso Modo de escalonamento automático , clique em Excluir configuração de escalonamento automático .

      2. Na caixa de diálogo exibida, clique em Excluir .

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

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

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

    A janela de seleções de instância é aberta. Repita as etapas a seguir para cada seleção de instância que deseja adicionar ao 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 da instância.

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

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

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

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

  8. Após concluir a adição das seleções de instância, clique em Concluído .

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

  10. Clique em Criar .

gcloud

Para criar um MIG regional com vários tipos de máquinas 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 oferecem suporte à flexibilidade de instância. No entanto, se desejar criar um MIG em uma única zona, defina o formato de distribuição de destino como any-single-zone . Além disso, se você quiser uma zona específica, use o formato de distribuição any-single-zone e inclua o sinalizador --zones ZONE .

Substitua o seguinte:

  • INSTANCE_GROUP_NAME : o nome do MIG.
  • REGION : a região na qual deseja criar o MIG.
  • TARGET_SIZE : o número de VMs que você deseja que o MIG crie e mantenha.
  • INSTANCE_TEMPLATE : o nome do modelo de instância.
  • SHAPE : a forma de distribuição alvo. O valor pode ser balanced ou any-single-zone . As outras formas de distribuição de destino não são suportadas.
  • INSTANCE_SELECTION : o nome da lista de tipos de máquinas. Você pode adicionar várias listas com preferências diferentes.
  • MACHINE_TYPE : os tipos de máquinas que você deseja configurar no MIG.

Terraforma

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

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

DESCANSAR

Para criar um MIG regional com vários tipos de máquinas 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 oferecem suporte à flexibilidade de instância. No entanto, se desejar criar um MIG em uma única zona, defina o formato de distribuição de destino como ANY_SINGLE_ZONE . Além disso, se você quiser uma zona específica, use o formato de distribuição ANY_SINGLE_ZONE e inclua o campo distributionPolicy.zones[].zone na solicitação.

Substitua o seguinte:

  • PROJECT_ID : seu ID do projeto .
  • REGION : a região onde deseja criar o MIG.
  • INSTANCE_GROUP_NAME : o nome do MIG.
  • TARGET_SIZE : o número de VMs que você deseja que o MIG crie e mantenha.
  • INSTANCE_TEMPLATE_URL : a URL do modelo de instância.
  • SHAPE : a forma de distribuição alvo. O valor pode ser BALANCED ou ANY_SINGLE_ZONE .
  • ZONE : a zona onde deseja criar o MIG. Use este campo se desejar criar um MIG regional em uma zona específica. Caso contrário, você pode pular este campo.
  • INSTANCE_SELECTION : o nome da lista de tipos de máquinas. Você pode adicionar várias listas com preferências diferentes.
  • MACHINE_TYPE : os tipos de máquinas que você deseja configurar no MIG.
  • RANK : o número que representa a ordem de preferência. Um valor mais baixo significa maior preferência.

Adicione flexibilidade de instância a um MIG existente

Você pode adicionar flexibilidade de instância a um MIG existente. Você pode definir vários tipos de máquinas e também definir preferências para determinados tipos de máquinas.

Se o seu MIG já tiver VMs, essas VMs continuarão a usar o tipo de máquina especificado no modelo de instância. Se você quiser que as VMs existentes 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 existentes e redimensione o MIG para o número necessário de VMs. Ao redimensionar, as novas VMs usarão os tipos de máquinas da política.

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

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

Adicione vários tipos de máquinas

Console

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

    Vá para grupos de instâncias

  2. Clique no nome do MIG no qual deseja 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 de seleções de instância é aberta.

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

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

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

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

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

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

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

  6. Clique em Salvar .

gcloud

Para adicionar vários tipos de máquinas a um MIG existente, 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 o seguinte:

  • INSTANCE_GROUP_NAME : o nome do MIG ao qual você deseja adicionar flexibilidade de instância.
  • REGION : região onde o MIG está localizado.
  • MACHINE_TYPE : os tipos de máquina que você deseja configurar no MIG — por exemplo, n1-standard-16,n2-standard-16,e2-standard-16 .

DESCANSAR

Para adicionar vários tipos de máquinas a um MIG existente, 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 o seguinte:

  • PROJECT_ID : seu ID do projeto .
  • REGION : região onde o MIG está localizado.
  • INSTANCE_GROUP_NAME : o nome do MIG ao qual você deseja adicionar flexibilidade de instância.
  • INSTANCE_SELECTION : um nome para a lista de tipos de máquinas.
  • MACHINE_TYPE : os tipos de máquina que você deseja configurar no MIG — por exemplo, "n1-standard-16","n2-standard-16","e2-standard-16" .
  • RANK : o número que representa a ordem de preferência. Um valor mais baixo significa maior preferência.

Adicione vários tipos de máquinas e preferências

Console

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

    Vá para grupos de instâncias

  2. Clique no nome do MIG no qual deseja 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 de seleções de instância é aberta. Repita as etapas a seguir para cada seleção de instância que deseja adicionar ao 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 da instância.

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

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

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

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

  5. Após concluir a adição das seleções de instância, clique em Concluído .

  6. Clique em Salvar .

gcloud

Para adicionar vários tipos de máquinas e preferências a um MIG existente, 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 o seguinte:

  • INSTANCE_GROUP_NAME : o nome do MIG ao qual você deseja adicionar flexibilidade de instância.
  • REGION : região onde o MIG está localizado.
  • INSTANCE_SELECTION : o nome da lista de tipos de máquinas. Você pode adicionar várias listas com preferências diferentes.
  • MACHINE_TYPE : os tipos de máquinas que você deseja configurar no MIG.

DESCANSAR

Para adicionar vários tipos de máquina e preferências a um MIG existente, 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 o seguinte:

  • PROJECT_ID : seu ID do projeto .
  • REGION : região onde o MIG está localizado.
  • INSTANCE_GROUP_NAME : o nome do MIG.
  • INSTANCE_SELECTION : o nome da lista de tipos de máquinas. Você pode adicionar várias listas com preferências diferentes.
  • MACHINE_TYPE : os tipos de máquinas que você deseja configurar no MIG.

O que vem a seguir