Criar um MIG com VMs em várias zonas em uma região


Neste documento, você verá como criar um grupo gerenciado de instâncias (MIG, na sigla em inglês) com as VMs espalhadas por várias zonas em uma região. A distribuição da carga de aplicativos entre várias zonas protege a carga de trabalho contra falhas zonais. Se ocorrer uma falha na zona, o aplicativo poderá continuar a exibição de instâncias em execução nas zonas disponíveis restantes na mesma região.

Esse tipo de MIG também é conhecido como MIG regional. Para mais informações, consulte Sobre MIGs regionais.

Você também pode ler sobre outros cenários básicos para criar um MIG.

Antes de começar

  • Crie um modelo de instância, que é necessário para criar um grupo de instâncias gerenciadas.
  • 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 da seguinte maneira.

    Selecione a guia para como planeja usar as amostras nesta página:

    Console

    Quando você usa o console do Google Cloud para acessar os serviços e as APIs do Google Cloud, não é necessário configurar a autenticação.

    gcloud

    1. Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

      gcloud init
    2. Defina uma região e uma zona padrão.

    Terraform

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

    1. Instale a CLI do Google Cloud.
    2. Para inicializar a CLI gcloud, execute o seguinte comando:

      gcloud init
    3. Crie as credenciais de autenticação para sua Conta do Google:

      gcloud auth application-default login

    Veja mais informações em: Configurar a autenticação para um ambiente de desenvolvimento local.

    REST

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

      Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

      gcloud init

Limitações

Para conferir a lista completa de limitações do MIG, que varia de acordo com a configuração usada, consulte Limitações do MIG.

Criar um MIG com VMs em várias zonas em uma região

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

Console

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

    Acesse grupo de instâncias

    As etapas restantes serão exibidas automaticamente no console do Google Cloud.

  2. Clique em Criar grupo de instância para criar um novo grupo de instâncias.
  3. Selecione uma das opções Novo grupo de instâncias gerenciadas:
  4. Atribua um nome e, se quiser, uma descrição ao grupo de instâncias.
  5. Selecione um modelo de instância para o grupo ou crie um modelo.
  6. Em Número de instâncias ou em Escalonamento automático, especifique o número de instâncias desse grupo. Lembre-se de provisionar VMs suficientes para dar suporte ao aplicativo se ocorrer uma falha de zona.
  7. Para Local, selecione Várias zonas.
  8. Escolha uma região e selecione as zonas que você quer usar. Se você escolheu um modelo de instância regional, a Região será selecionada automaticamente com base na região do modelo.
  9. Em Forma de distribuição de destino, selecione Uniforme. Se você quiser selecionar uma forma diferente, consulte Definir uma forma de distribuição de destino para VMs em um MIG regional.
  10. Se você quiser desativar a redistribuição proativa de instâncias, em Redistribuição de instâncias, desmarque a caixa de seleção Permitir redistribuição de instâncias.
  11. Continue com o restante do processo de criação do MIG.
  12. Para criar o MIG, clique em Criar.

gcloud

Todos os MIGs exigem um modelo de instância. Caso ainda não tenha um, crie um modelo de instância. Por exemplo, o comando a seguir cria um modelo básico de instância com propriedades padrão:

gcloud compute instance-templates create example-template

Em seguida, use o comando instance-groups managed create com a sinalização --region. Por exemplo, o comando a seguir cria um MIG regional em três zonas dentro da região us-east1:

gcloud compute instance-groups managed create example-rmig \
    --template example-template  \
    --size 30 \
    --region us-east1

Para selecionar zonas específicas que o grupo usará, especifique a sinalização --zones:

gcloud compute instance-groups managed create example-rmig \
    --template example-template \
    --size 30 \
    --zones us-east1-b,us-east1-c

Se você quiser desativar a redistribuição proativa de instâncias, consulte Como desativar a redistribuição proativa de instâncias.

Terraform

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

Para criar um MIG regional, use o recurso google_compute_region_instance_group_manager.

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 Comandos básicos do Terraform.

REST

Todos os MIGs exigem um modelo de instância. Caso ainda não tenha um, crie um modelo de instância.

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

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

{
  "baseInstanceName": "BASE_INSTANCE_NAME",
  "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE_NAME",
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": "TARGET_SIZE"
}

Substitua:

  • PROJECT_ID: o ID do projeto desta solicitação;
  • REGION: a região do grupo;
  • BASE_INSTANCE_NAME: (opcional) o nome da instância de cada instância de VM criada como parte do grupo. Por exemplo, o nome de instância de base example-instance cria instâncias com nomes como example-instance-[RANDOM_STRING], em que [RANDOM_STRING] é gerado pelo servidor;
  • INSTANCE_TEMPLATE_NAME: o modelo de instância a ser usado; Para um modelo de instância regional, especifique o URL completo ou parcial do modelo. Um exemplo de URL completo é https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template, e um URL parcial é projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template.
  • INSTANCE_GROUP_NAME: o nome do MIG;
  • TARGET_SIZE: o número pretendido de VMs para o grupo.

Se você quiser selecionar zonas específicas ou criar VMs em uma região com menos ou mais de três zonas, inclua a propriedade distributionPolicy na solicitação e forneça uma lista de zonas. Substitua ZONE pelo nome de uma zona onde criar VMs.

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

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

Por exemplo, o seguinte cria um MIG regional chamado example-rmig com 10 instâncias gerenciadas distribuídas entre as zonas us-east1-b e us-east1-c:

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

{
  "instanceTemplate": "global/instanceTemplates/example-instance",
  "name": "example-rmig",
  "targetSize": 10,
  "distributionPolicy": {
      "zones": [
        {"zone": "zones/us-east1-b"},
        {"zone": "zones/us-east1-c"}
      ]
   }
}

Dependendo de como você configura e age em um MIG, várias políticas e ações podem afetar as instâncias no grupo. Para determinar quais instâncias gerenciadas estão em execução, consulte Como verificar o status de instâncias gerenciadas.

Se não houver capacidade suficiente em cada zona para aceitar as VMs do grupo, o Compute Engine criará o máximo de VMs possível e continuará a criar as outras restantes quando houver capacidade extra disponível.

Por padrão, se você não especificar explicitamente zonas individuais na solicitação, o Compute Engine escolherá automaticamente três zonas para criar VMs. Se precisar criar VMs em mais de ou menos de três zonas ou se quiser escolher quais zonas serão usadas, forneça uma lista de zonas em sua solicitação. Para mais informações, consulte Seleção de zona.

Distribuição de VMs entre zonas

Por padrão, um MIG regional distribui VMs de maneira uniforme nas zonas selecionadas. Como você está criando um MIG regional, lembre-se de que determinados recursos são zonais, como GPUs e discos permanentes atuais. Se o modelo de instância do MIG especificar recursos zonais, você terá de garantir que todos esses recursos estejam presentes em todas as zonas selecionadas para que possam ser anexados às VMs criadas pelo MIG regional. Como alternativa, se quiser que o grupo verifique a existência de recursos zonais, defina o formato de distribuição de destino do MIG para criar instâncias somente em zonas que contenham esses recursos.

Para mais informações, consulte estes documentos:

Redistribuição proativa de instâncias

A redistribuição proativa de instâncias é ativada por padrão. Se você precisar gerenciar manualmente o número de VMs em cada zona ou definir o formato de distribuição de destino do MIG como BALANCED ou ANY_SINGLE_ZONE, desative a redistribuição proativa de instâncias.

Para mais informações, consulte os documentos a seguir:

A seguir