Desative e reative a redistribuição proativa de VMs num MIG regional


Num grupo de instâncias geridas (GIG) regional, para manter um número uniforme de instâncias de máquinas virtuais (VMs) nas zonas selecionadas na região, use a redistribuição proativa de instâncias. Esta opção de configuração maximiza a disponibilidade da sua aplicação em caso de falha ao nível da zona.

A redistribuição proativa de instâncias está ativada por predefinição para os MIGs regionais. Quando a redistribuição proativa de instâncias está desativada, o grupo não tenta redistribuir proativamente as VMs entre zonas. Desativar a redistribuição proativa de instâncias é útil se precisar de:

  • Elimine ou abandone MV do grupo sem afetar outras MV em execução. Por exemplo, pode eliminar uma VM de trabalho em lote após a conclusão do trabalho sem afetar outros trabalhadores.
  • Proteja as VMs com cargas de trabalho com estado da eliminação automática indesejada devido à redistribuição proativa.
  • Defina o formato de distribuição alvo do MIG como BALANCED ou ANY_SINGLE_ZONE.

Pode desativar a redistribuição proativa de instâncias quando cria um MIG regional. Também pode ativá-lo ou desativá-lo para um GIG regional existente.

Antes de começar

  • Se ainda não o tiver feito, configure a autenticação. A autenticação valida a sua identidade para aceder a Google Cloud 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 Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    2. Set a default region and zone.

    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. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

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

Criar um grupo com a redistribuição proativa de instâncias desativada

Para criar um MIG regional com a redistribuição proativa de instâncias desativada, use a Google Cloud console, a CLI gcloud, o Terraform ou a REST.

Consola

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

    Aceda à página Grupos de instâncias

  2. Clique em Criar grupo de instâncias para criar um novo grupo de instâncias.
  3. Atribua um nome e, opcionalmente, uma descrição ao grupo de instâncias.
  4. Escolha um modelo de instância para o grupo de instâncias ou crie um novo.
  5. Especifique o número de VMs para este grupo. Para cargas de trabalho de elevada disponibilidade, lembre-se de aprovisionar VMs suficientes para suportar a sua aplicação se ocorrer uma falha de zona.
  6. Em Localização, selecione Várias zonas.
  7. Escolha uma região e selecione as zonas que quer usar.
  8. Para 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.
  9. Continue com o resto do processo de criação do MIG.

gcloud

Para criar um MIG regional sem redistribuição proativa de instâncias, use o comando gcloud compute instance-groups managed create com a flag --instance-redistribution-type definida como NONE.

gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --template INSTANCE_TEMPLATE_NAME \
    --size TARGET_SIZE \
    --zones ZONES \
    --instance-redistribution-type NONE

Substitua o seguinte:

  • INSTANCE_GROUP_NAME: o nome do MIG
  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância a usar para o grupo
  • TARGET_SIZE: o tamanho do grupo alvo
  • ZONES: a lista de zonas numa única região onde quer implementar VMs

Por exemplo:

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

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, use o recurso google_compute_region_instance_group_manager.

Para desativar a redistribuição proativa de instâncias num MIG regional, inclua o bloco update_policy e defina o campo instance_redistribution_type como NONE.

resource "google_compute_region_instance_group_manager" "default" {
  name                      = "example-rmig"
  region                    = "us-east1"
  distribution_policy_zones = ["us-east1-b", "us-east1-c"]
  update_policy {
    type                         = "PROACTIVE"
    minimal_action               = "REFRESH"
    instance_redistribution_type = "NONE"
    max_unavailable_fixed        = 3
  }
  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

Para criar um MIG regional sem escalamento automático e sem redistribuição proativa de instâncias, faça um pedido POST ao método regionInstanceGroupManagers.insert. No corpo do pedido, inclua a propriedade updatePolicy e defina o respetivo campo instanceRedistributionType como NONE.

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

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

Substitua o seguinte:

  • PROJECT_ID: o ID do projeto para este pedido
  • REGION: a região do grupo de instâncias
  • INSTANCE_GROUP_NAME: o nome do MIG
  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância a usar para o grupo
  • TARGET_SIZE: o tamanho de destino do grupo de instâncias
  • ZONE: o nome de uma zona na região única onde quer implementar VMs

Desativar a redistribuição proativa de instâncias

Para desativar ou reativar a redistribuição proativa de instâncias, use o Google Cloud console, a CLI gcloud ou o REST.

Consola

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

    Aceda à página Grupos de instâncias

  2. Na coluna Nome da lista, clique no nome do grupo de instâncias que quer modificar.
  3. Clique em Editar para modificar este grupo de instâncias gerido.
  4. Clique em Localização para expandir a secção.
  5. Na secção Redistribuição de instâncias, desmarque a caixa de verificação Permitir redistribuição de instâncias.
  6. Clique em Guardar.

gcloud

Para desativar a redistribuição proativa de instâncias, use o comando compute instance-groups managed update e defina o sinalizador --instance-redistribution-type como NONE da seguinte forma:

gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
    --instance-redistribution-type NONE \
    --region REGION

Substitua o seguinte:

  • INSTANCE_GROUP_NAME: o nome do MIG
  • REGION: a região do grupo de instâncias

REST

Para desativar a redistribuição proativa de instâncias, use o método regionInstanceGroupManagers.patch e defina o campo instanceRedistributionType como NONE da seguinte forma:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME
  {
     "updatePolicy": {
        "instanceRedistributionType": "NONE"
     }
  }

Substitua o seguinte:

  • PROJECT_ID: o ID do projeto para este pedido
  • REGION: a região do grupo de instâncias
  • INSTANCE_GROUP_NAME: o nome do MIG

Ativar a redistribuição proativa de instâncias

Para ativar a redistribuição proativa de instâncias, use um comando semelhante ao da desativação da redistribuição proativa de instâncias, mas defina o tipo de redistribuição de instâncias como PROACTIVE.

Se eliminou ou abandonou manualmente algumas instâncias geridas, o que resultou numa distribuição desigual de VMs na região, antes de poder reativar a redistribuição proativa de instâncias, tem de reequilibrar manualmente o grupo. A diferença no número de VMs entre duas zonas não deve exceder 1 VM.

Um MIG regional não permite ativar a redistribuição proativa de instâncias quando as VMs são distribuídas de forma desigual entre zonas (a diferença no número de VMs entre duas zonas é de 2 ou mais VMs). Isto destina-se a evitar uma eliminação automática não intencional de VMs de zonas com mais VMs, que seria acionada para alcançar uma distribuição uniforme.

O que se segue?