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

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

A flexibilidade das instâncias ajuda a melhorar a obtenção de recursos, especialmente para aplicações que podem funcionar em diferentes tipos de máquinas e que requerem capacidade em grande escala ou hardware com elevada procura. Para mais informações, consulte o artigo Acerca da flexibilidade das instâncias.

Também pode ler acerca de outros cenários básicos para criar um GIG.

Antes de começar

  • Crie um modelo de instância, que é necessário para criar um grupo de instâncias gerido.
  • Se ainda não o tiver feito, configure a autenticação. A autenticação valida a sua identidade para aceder a Trusted Cloud by S3NS serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-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 Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.

    gcloud

    1. Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init
    2. Set a default region and zone.

    Terraform

    Para usar os exemplos do Terraform nesta página num ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure as credenciais predefinidas da aplicação com as suas credenciais de utilizador.

      Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada.

      Create local authentication credentials for your user account:

      gcloud auth application-default login

      If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

    Para mais informações, consulte Set up authentication for a local development environment.

    REST

    Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.

      Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada.

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

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

Consola

  1. Na Trusted Cloud consola, aceda à página Grupos de instâncias.

    Aceda a Grupos de instâncias

  2. Clique em Criar grupo de instâncias.

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

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

  5. Antes de poder especificar o Número de instâncias e adicionar Seleções de instâncias, tem de fazer o seguinte:

    1. Aceda à secção Localização na página e defina uma localização da seguinte forma:

      1. Selecione Várias zonas.

      2. Nos menus pendentes Regiões e Zonas, selecione uma região e as zonas nas quais quer criar as VMs no MIG. Se selecionou um modelo de instância regional, a região desse modelo é selecionada por predefinição.

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

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

    2. Aceda à secção Ajuste automático na página e elimine a configuração do ajuste automático da seguinte forma:

      1. No menu pendente Modo de ajuste automático da escala, clique em Eliminar configuração do ajuste automático da escala.

      2. Na caixa de diálogo apresentada, clique em Eliminar.

    3. Desloque a página para trás até ao campo Número de instâncias.

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

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

    É aberta a janela Seleções de instâncias.

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

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

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

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

        Repita este passo para cada tipo de máquina que quer adicionar à seleção de instâncias.

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

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

  9. Deixe os outros campos nas respetivas predefinições ou modifique-os 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 forma:

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 suportam a flexibilidade das instâncias. No entanto, se quiser criar um MIG numa única zona, defina a forma de distribuição de destino como any-single-zone. Além disso, se quiser uma zona específica, use a forma de distribuição any-single-zonee inclua a flag --zones ZONE.

Substitua o seguinte:

  • INSTANCE_GROUP_NAME: o nome do MIG.
  • REGION: a região onde quer criar o MIG.
  • TARGET_SIZE: o número de VMs que quer que o MIG crie e mantenha.
  • INSTANCE_TEMPLATE_URL: o URL do modelo de instância que quer usar para criar VMs 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: a forma de distribuição alvo. O valor pode ser balanced ou any-single-zone. As outras formas de distribuição de alvos não são suportadas.
  • MACHINE_TYPE: os tipos de máquinas que quer configurar no MIG, por exemplo, n1-standard-16,n2-standard-16,e2-standard-16.

Terraform

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

Para criar um GIG 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 os comandos básicos do Terraform.

REST

Para criar um GIG regional com vários tipos de máquinas, faça um pedido 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": {
        "machineTypes": [
          "MACHINE_TYPE_1",
          "MACHINE_TYPE_2",
          ...
        ]
      }
    }
  }
}

Os MIGs zonais não suportam a flexibilidade das instâncias. No entanto, se quiser criar um MIG numa única zona, defina a forma de distribuição de destino como ANY_SINGLE_ZONE. Além disso, se quiser uma zona específica, use a forma de distribuição ANY_SINGLE_ZONE e inclua o campo distributionPolicy.zones[].zone no pedido.

Substitua o seguinte:

  • PROJECT_ID: o seu ID do projeto.
  • REGION: a região onde quer criar o MIG.
  • INSTANCE_GROUP_NAME: o nome do MIG.
  • TARGET_SIZE: o número de VMs que quer que o MIG crie e mantenha.
  • INSTANCE_TEMPLATE_URL: o URL do modelo de instância que quer usar para criar VMs 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: a forma de distribuição alvo. O valor pode ser BALANCED ou ANY_SINGLE_ZONE. As outras formas de distribuição de alvos não são suportadas.
  • INSTANCE_SELECTION: o nome da lista de tipos de máquinas.
  • MACHINE_TYPE: os tipos de máquinas que quer configurar no MIG, por exemplo, "n1-standard-16","n2-standard-16","e2-standard-16".

O que se segue?