Desativar e reativar a redistribuição proativa de VMs em um MIG regional

Em um grupo de instâncias gerenciadas (MIG) regional, para manter um número igual de instâncias de máquina virtual (VM) nas zonas selecionadas na região, use redistribuição proativa de instâncias. Essa configuração maximiza a disponibilidade do aplicativo no caso de uma falha no nível da zona.

A redistribuição proativa de instâncias é ativada por padrão para MIGs regionais, mas é possível desativá-la para MIGs regionais não escalonadas automaticamente. Quando a redistribuição proativa de instâncias é desativada, o grupo não tenta redistribuir proativamente as VMs entre as zonas. Isso é útil se você precisa fazer uma das opções a seguir:

  • Excluir ou abandonar VMs do grupo sem afetar outras VMs em execução. Por exemplo, é possível excluir uma VM de worker em lote após a conclusão do job sem afetar outros workers.
  • Proteger VMs com cargas de trabalho com estado contra exclusão automática indesejada devido à redistribuição proativa.
  • Defina o formato de distribuição de destino do MIG como BALANCED.

É possível desativar a redistribuição proativa de instâncias ao criar um MIG regional. Também é possível ativá-lo ou desativá-lo para um MIG regional existente.

Antes de começar

Como 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 o Console, a CLI gcloud ou a API Compute Engine.

Console

  1. No console, acesse a página Grupos de instâncias.

    Acessar a página "Grupos de instâncias"

  2. Clique em Criar grupo de instâncias para criar um novo grupo.
  3. Atribua um nome e, se quiser, uma descrição ao grupo de instâncias.
  4. Selecione um modelo de instância para o grupo ou crie um modelo novo.
  5. Especifique o número de VMs para este grupo. Para cargas de trabalho altamente disponíveis, lembre-se de provisionar VMs suficientes para fazer com que o aplicativo continue a funcionar se uma zona falhar.
  6. Em Local, selecione Várias zonas.
  7. Escolha uma região e selecione as zonas que você quer usar.
  8. Para desativar a redistribuição proativa de instâncias, siga estas etapas:
    1. Verifique se o Modo de escalonamento automático está definido como Desativado: não fazer escalonamento automático.
    2. Em Redistribuição da instância, desmarque a caixa de seleção Ativar redistribuição de instâncias.
  9. Continue com o restante do processo de criação do MIG.

gcloud

Para criar um novo MIG regional sem redistribuição proativa de instâncias, use o comando gcloud compute instance-groups managed create com a sinalização --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:

  • INSTANCE_GROUP_NAME: o nome do MIG;
  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância a ser usado para o grupo;
  • TARGET_SIZE: o tamanho de destino do grupo;
  • ZONES: a lista de zonas em uma única região em que você quer implantar VMs

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

API

Para criar um MIG regional, sem escalonamento automático e sem redistribuição proativa de instâncias, faça uma solicitação POST ao método regionInstanceGroupManagers.insert. No corpo da solicitação, inclua a propriedade updatePolicy e defina o respectivo 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:

  • PROJECT_ID: o ID do projeto desta solicitação;
  • 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 ser usado para o grupo;
  • TARGET_SIZE: o tamanho de destino do grupo de instâncias;
  • ZONE: o nome de uma zona na única região em que você quer implantar as VMs

Como desativar a redistribuição proativa de instâncias

Antes de desativar a redistribuição proativa de instâncias, é preciso definir o modo do escalonador automático para desativar o escalonamento automático ou restringi-lo apenas para escalonamento horizontal.

Para desativar ou reativar a distribuição proativa de instâncias, use o Console, a CLI gcloud ou a API Compute Engine.

Console

  1. No console, acesse a página Grupos de instâncias.

    Acessar a página "Grupos de instâncias"

  2. Na coluna Nome da lista, clique no nome do grupo de instâncias que você quer modificar.
  3. Clique em Editar para modificar o grupo gerenciado de instâncias.
  4. Se houver alguma configuração de escalonamento automático, verifique se o Modo de escalonamento automático está definido como Desativado: não fazer escalonamento automático.
  5. Em Redistribuição da instância, desmarque a caixa de seleção Ativar redistribuição de instâncias.
  6. Clique em Save.

gcloud

Para desativar a redistribuição proativa de instâncias para um MIG regional não escalonado automaticamente, use o comando compute instance-groups managed update com a sinalização --instance-redistribution-type definida como NONE.

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

Substitua:

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

API

Para desativar a redistribuição proativa de instâncias para um MIG regional sem escalonamento automático, faça uma solicitação PATCH para o método regionInstanceGroupManagers.patch. No corpo da solicitação, inclua a propriedade updatePolicy e defina o respectivo campo instanceRedistributionType como NONE

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

{
    "updatePolicy": {
         "instanceRedistributionType": "NONE"
    }
}

Substitua:

  • PROJECT_ID: o ID do projeto desta solicitação;
  • REGION: a região do grupo de instâncias;
  • INSTANCE_GROUP_NAME: o nome de um MIG sem escalonamento automático.

Como ativar a distribuição proativa de instâncias

Para ativar a distribuição proativa de instâncias, use um comando semelhante ao visto em Como desativar a redistribuição proativa de instâncias, mas defina o tipo de redistribuição de instâncias como PROACTIVE.

Se você tiver excluído ou abandonado manualmente algumas instâncias gerenciadas que resultam em uma distribuição desigual de VMs na região, antes de reativar a redistribuição proativa de instâncias, será necessário reequilibrar manualmente o grupo. A diferença no número de VMs entre duas zonas não pode exceder uma VM.

Um MIG regional não permite ativar a redistribuição proativa de instâncias quando as VMs são distribuídas de maneira uniforme entre as zonas (a diferença no número de VMs entre duas zonas é de duas ou mais VMs). Isso evita uma exclusão automática não intencional de VMs de zonas com mais VMs, o que seria acionado para atingir a distribuição uniforme.

A seguir