Crie um MIG com VMs em várias zonas numa região

Este documento descreve como criar um grupo de instâncias gerido (MIG) com as respetivas VMs distribuídas por várias zonas numa região. A distribuição da carga da aplicação por várias zonas protege a sua carga de trabalho contra falhas zonais. Se ocorrer uma falha zonal, a sua aplicação pode continuar a servir a partir de instâncias em execução nas zonas disponíveis restantes na mesma região.

Este tipo de MIG também é conhecido como MIG regional. Para mais informações, consulte o artigo Acerca dos MIGs regionais.

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.

Limitações

Para ver a lista completa de limitações do MIG, que varia consoante a configuração que usa, consulte o artigo Limitações do MIG.

Crie um MIG com VMs em várias zonas numa região

Use a Trusted Cloud console, a CLI gcloud, o Terraform ou o REST.

Consola

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

    Aceda a Grupos de instâncias

    Os passos restantes aparecem na Trusted Cloud consola.

  2. Clique em Criar grupo de instâncias para criar um novo grupo de instâncias.
  3. Selecione uma das opções do novo grupo de instâncias gerido:
  4. Atribua um nome e, opcionalmente, uma descrição ao grupo de instâncias.
  5. Escolha um modelo de instância para o grupo de instâncias ou crie um novo.
  6. Em Número de instâncias ou em Ajuste de escala automático, especifique o número de instâncias para este grupo. Lembre-se de aprovisionar VMs suficientes para suportar a sua aplicação se ocorrer uma falha de zona.
  7. Em Localização, selecione Várias zonas.
  8. Escolha uma região e selecione as zonas que quer usar. Se escolheu um modelo de instância regional, a Região é selecionada automaticamente com base na região do modelo.
  9. Em Forma de distribuição do alvo, selecione Uniforme. Se quiser selecionar um formato diferente, consulte o artigo Defina um formato de distribuição alvo para VMs num MIG regional.
  10. Se quiser desativar a redistribuição proativa de instâncias, em Redistribuição de instâncias, desmarque a caixa de verificação Permitir redistribuição de instâncias.
  11. Continue com o resto do processo de criação do MIG.
  12. Para criar o MIG, clique em Criar.

gcloud

Todos os MIGs requerem um modelo de instância. Se não tiver um, crie um modelo de instância. Por exemplo, o comando seguinte cria um modelo de instância na região us-east1 com propriedades de instância predefinidas:

gcloud compute instance-templates create example-template --instance-template-region us-east1

Quando cria o MIG, pode especificar o ID ou o nome de um modelo de instância. A Google recomenda que especifique o ID porque, ao contrário dos nomes, os IDs dos modelos de instâncias não podem ser reutilizados. Para ver o ID exclusivo do modelo de instância que criou, use o comando describe:

gcloud compute instance-templates describe example-template --region us-east1 --format="value(id)"

Em seguida, use o instance-groups managed create comando com a flag --region. Por exemplo, o comando seguinte cria um MIG regional em três zonas na região us-east1:

gcloud compute instance-groups managed create example-rmig \
    --template projects/my-project/regions/us-east1/instanceTemplates/1234567890 \
    --size 30 \
    --region us-east1

Se quiser selecionar zonas específicas que o grupo deve usar, forneça a sinalização --zones:

gcloud compute instance-groups managed create example-rmig \
    --template projects/my-project/regions/us-east1/instanceTemplates/1234567890 \
    --size 30 \
    --zones us-east1-b,us-east1-c

Se não precisar de usar zonas específicas, pode especificar todas as zonas e usar um formato de distribuição equilibrado. Para mais informações, consulte o artigo Distribuição de VMs por zonas.

Se quiser desativar a redistribuição proativa de instâncias, consulte o artigo Redistribuição proativa de instâncias.

Terraform

Se ainda não criou um modelo de instância, que especifica o tipo de máquina, a imagem do disco de arranque, a rede e outras propriedades da VM que quer para cada VM no MIG, crie um modelo de instância.

Para criar um GIG regional, pode usar o google_compute_region_instance_group_manager recurso.

resource "google_compute_region_instance_group_manager" "default" {
  name                      = "example-rmig"
  region                    = "us-east1"
  distribution_policy_zones = ["us-east1-b", "us-east1-c"]
  target_size               = 30
  base_instance_name        = "instance"
  version {
    instance_template = google_compute_instance_template.default.id
  }
}

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

REST

Todos os MIGs requerem um modelo de instância. Se não tiver um, crie um modelo de instância.

Quando cria o MIG, pode especificar o ID ou o nome de um modelo de instância. A Google recomenda que especifique o ID porque, ao contrário dos nomes, não é possível reutilizar os IDs dos modelos de instâncias. Para ver o ID exclusivo do modelo de instância que criou, use o método get no modelo de instância regional ou global que criou.

Em seguida, crie um pedido POST para o método regionInstanceGroupManagers.insert. No corpo do pedido, especifique o nome do grupo, o tamanho do grupo e o URL do modelo de instância. Opcionalmente, especifique outros campos, como o nome base das instâncias no grupo.

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

{
  "baseInstanceName": "BASE_INSTANCE_NAME",
  "instanceTemplate": "INSTANCE_TEMPLATE_URL",
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": "TARGET_SIZE"
}

Substitua o seguinte:

  • PROJECT_ID: o ID do projeto para este pedido.
  • REGION: a região do grupo.
  • BASE_INSTANCE_NAME: (opcional) o nome da instância para cada instância de VM criada como parte do grupo. Por exemplo, um nome de instância base de example-instance cria instâncias com nomes como example-instance-[RANDOM_STRING], em que [RANDOM_STRING] é gerado pelo servidor.
  • 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
  • TARGET_SIZE: o número alvo de VMs para o grupo.

Se quiser selecionar zonas específicas ou se estiver a criar VMs numa região com menos ou mais de três zonas, inclua a propriedade distributionPolicy no seu pedido e forneça uma lista de zonas. Substitua ZONE pelo nome de uma zona para criar VMs.

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

{
  "baseInstanceName": "BASE_INSTANCE_NAME",
  "instanceTemplate": "INSTANCE_TEMPLATE_URL",
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": "TARGET_SIZE",
  "distributionPolicy": {
     "zones": [
       {"zone": "zones/ZONE"},
       {"zone": "zones/ZONE"}
      ]
   }
}

Por exemplo, o seguinte comando cria um MIG regional denominado example-rmig com 10 instâncias geridas distribuídas pelas zonas us-east1-b e us-east1-c:

POST https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-east1/instanceGroupManagers

{
  "instanceTemplate": "projects/my-project/regions/us-east1/instanceTemplates/1234567890",
  "name": "example-rmig",
  "targetSize": 10,
  "distributionPolicy": {
      "zones": [
        {"zone": "zones/us-east1-b"},
        {"zone": "zones/us-east1-c"}
      ]
   }
}

Consoante a forma como configura e age num MIG, várias políticas e ações podem afetar as instâncias no grupo. Para determinar que instâncias geridas estão em funcionamento, consulte o artigo Verificar o estado das instâncias geridas.

Se não existir capacidade suficiente em cada zona para suportar VMs para o grupo, o Compute Engine cria o maior número possível de VMs e continua a tentar criar as VMs restantes quando estiver disponível capacidade adicional.

Se não especificar explicitamente zonas individuais no seu pedido, o Compute Engine escolhe automaticamente três zonas para criar VMs. Se precisar de criar VMs em mais ou menos de três zonas, ou quiser escolher as zonas usadas, pode fornecer uma lista de zonas no seu pedido. Para mais informações, consulte a secção Seleção de zonas.

Distribuição de VMs por zonas

Por predefinição, um MIG regional distribui VMs uniformemente pelas zonas selecionadas. Como está a criar um GIG regional, tenha em atenção que determinados recursos são zonais, como as GPUs e os discos persistentes existentes. Se o modelo de instância do MIG especificar recursos zonais, tem de se certificar de que todos esses recursos estão presentes em todas as zonas selecionadas para que possam ser anexados às VMs criadas pelo MIG regional. Em alternativa, se quiser que o grupo verifique a existência de recursos zonais, pode definir o formato de distribuição de destino do MIG para criar instâncias apenas em zonas que contenham esses recursos.

Para mais informações, consulte os seguintes documentos:

Redistribuição proativa de instâncias

A redistribuição proativa de instâncias está ativada por predefinição. Se precisar de gerir manualmente o número de VMs em cada zona ou se precisar de definir o formato de distribuição alvo do MIG como BALANCED ou ANY_SINGLE_ZONE, tem de desativar a redistribuição proativa de instâncias.

Para mais informações, consulte os seguintes documentos:

O que se segue?