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


Este documento descreve como criar um grupo gerenciado de instâncias (MIG) que tenha suas VMs espalhadas por diversas zonas em uma região. Distribuir a carga do seu aplicativo por diversas zonas protege sua carga de trabalho contra falhas zonais. Se ocorrer uma falha zonal, seu aplicativo poderá continuar atendendo 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 obter 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 , necessário para criar um grupo de instâncias gerenciadas.
  • 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.

Limitações

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

Crie um MIG com VMs em várias zonas de 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 .

    Vá para grupos de instâncias

    As etapas restantes aparecem no console do Google Cloud.

  2. Clique Criar grupo de instâncias para criar um novo grupo de instâncias.
  3. Selecione uma das opções de Novo grupo gerenciado de instâncias :
  4. Atribua um nome e, opcionalmente, uma descrição ao seu 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 Escalonamento automático , especifique o número de instâncias para este grupo. Lembre-se de provisionar VMs suficientes para dar suporte ao seu aplicativo se ocorrer uma falha na zona.
  7. Para Localização , selecione Várias zonas .
  8. Escolha uma região e selecione as zonas que deseja usar. Se você escolher um modelo de instância regional, a região será selecionada automaticamente com base na região do modelo.
  9. Em Formato de distribuição alvo , selecione Par . Se quiser selecionar uma forma diferente, consulte Definir uma forma de distribuição de destino para VMs em um MIG regional .
  10. Se você quiser desabilitar 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. Se você não tiver um, crie um modelo de instância . Por exemplo, o comando a seguir cria um modelo de instância básico 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 da região us-east1 :

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

Se você quiser selecionar zonas específicas que o grupo deve usar, forneça o sinalizador --zones :

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

Se desejar desabilitar a redistribuição proativa de instâncias, consulte Desativando a redistribuição proativa de instâncias .

Terraforma

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 desejadas para cada VM em seu MIG, crie um modelo de instância .

Para criar um MIG regional, você pode usar 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 .

DESCANSAR

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

Em seguida, construa uma solicitação POST para o método regionInstanceGroupManagers.insert . No corpo da solicitação, especifique o nome do grupo, o tamanho do grupo e a URL do modelo de instância. Opcionalmente, especifique outros campos, como o nome base das instâncias do 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 o seguinte:

  • PROJECT_ID : o ID do projeto para esta 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, um nome de instância base de example-instance cria instâncias que possuem nomes como example-instance-[RANDOM_STRING] onde [RANDOM_STRING] é gerado pelo servidor.
  • INSTANCE_TEMPLATE_NAME : o modelo de instância a ser usado. Para um modelo de instância regional, você deve especificar 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 alvo de VMs para o grupo.

Se você quiser selecionar zonas específicas ou se estiver criando VMs em uma região com menos ou mais de três zonas, inclua a propriedade distributionPolicy em sua solicitação e forneça uma lista de zonas. Substitua ZONE pelo nome de uma zona na qual 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 denominado example-rmig com 10 instâncias gerenciadas distribuídas nas 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 atua em um MIG, diversas políticas e ações podem afetar as instâncias do grupo. Para determinar quais instâncias gerenciadas estão funcionando, consulte Verificando o status de instâncias gerenciadas .

Se não houver capacidade suficiente em cada zona para oferecer suporte às VMs do grupo, o Compute Engine criará o maior número possível de VMs e continuará tentando criar as VMs restantes quando capacidade adicional estiver disponível.

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

Distribuição de VMs entre zonas

Por padrão, um MIG regional distribui VMs uniformemente pelas zonas selecionadas. Como você está criando um MIG regional, lembre-se de que determinados recursos são zonais, como GPUs e discos permanentes existentes. Se o modelo de instância do seu MIG especificar recursos zonais, você deverá garantir que todos esses recursos estejam presentes em todas as zonas selecionadas para que possam ser anexados às VMs criadas pelo MIG regional. Alternativamente, se quiser que o grupo verifique a existência de recursos zonais para você, você pode definir 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 os seguintes documentos:

Redistribuição proativa de instâncias

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

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

O que vem a seguir