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


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

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

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

Você pode desativar a redistribuição proativa de instâncias ao criar um MIG regional. Você também pode ativá-lo ou desativá-lo para um MIG regional existente.

Antes de começar

  • 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. 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.

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

Para criar um MIG regional com redistribuição proativa de instâncias desativada, 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 a 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 seu 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 altamente disponíveis, lembre-se de provisionar VMs suficientes para dar suporte ao seu aplicativo caso ocorra uma falha na zona.
  6. Em Localização , selecione Várias zonas .
  7. Escolha uma região e selecione as zonas que deseja usar.
  8. Para 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 .
  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 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 o seguinte:

  • 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 alvo do grupo
  • ZONES : a lista de zonas em uma única região onde você deseja implantar 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

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

Para desativar a redistribuição proativa de instâncias em um MIG regional, inclua o bloco update_policy e configure 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 Comandos básicos do Terraform .

DESCANSAR

Para criar um MIG regional sem escala automática sem redistribuição proativa de instâncias, faça uma solicitação POST para o método regionInstanceGroupManagers.insert . No corpo da solicitação, inclua a propriedade updatePolicy e defina seu 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 esta 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 alvo do grupo de instâncias
  • ZONE : o nome de uma zona na única região onde você deseja implantar VMs

Desativando a redistribuição proativa de instâncias

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

Console

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

    Vá para a página Grupos de instâncias

  2. Na coluna Nome da lista, clique no nome do grupo de instâncias que você deseja modificar.
  3. Clique em Editar para modificar este grupo de instâncias gerenciadas.
  4. Em Redistribuição de instâncias , desmarque a caixa de seleção Permitir redistribuição de instâncias .
  5. Clique em Salvar .

gcloud

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

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

DESCANSAR

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

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 esta solicitação
  • REGION : a região do grupo de instâncias
  • INSTANCE_GROUP_NAME : o nome do MIG

Ativando a redistribuição proativa de instâncias

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

Se você excluiu ou abandonou manualmente algumas instâncias gerenciadas, resultando em uma distribuição desigual de VMs na região, então, antes de poder reativar a redistribuição proativa de instâncias, você deverá 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 evita uma exclusão automática não intencional de VMs de zonas com mais VMs, o que seria acionado para obter uma distribuição uniforme.

O que vem a seguir