Corrigir uma VM em uma zona alternativa

Neste documento, descrevemos como permitir que um grupo gerenciado de instâncias (MIG) regional corrija uma instância de máquina virtual (VM) em uma zona alternativa quando o MIG não puder corrigir a VM na zona original. Para saber mais sobre reparos em um MIG, consulte Como reparar VMs para alta disponibilidade.

Ao criar um MIG regional, você seleciona uma ou mais zonas em que o MIG distribui as VMs. Por padrão, se uma VM no MIG falhar, o MIG tentará corrigir essa VM na zona original. Opcionalmente, você pode permitir que o MIG corrija essa VM em uma das outras zonas selecionadas, o que é útil nos casos em que o MIG não pode corrigir a VM na zona original. O MIG escolhe a zona alternativa com base na capacidade e cota disponíveis.

Limitações

Ao configurar um MIG regional para corrigir uma VM em uma zona alternativa, as seguintes limitações se aplicam:

Antes de começar

Permitir reparos em uma zona alternativa

Para permitir que um MIG corrija uma VM em uma zona alternativa, selecione uma das seguintes opções:

Console

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

    Acessar grupos de instâncias

  2. Se você já tiver um MIG, faça o seguinte:

    1. Clique no nome do MIG.
    2. Clique em Editar.
  3. Se você ainda não tiver um MIG, faça o seguinte:

    1. Clique em Criar grupo de instâncias.
    2. Digite um Nome.
    3. Selecione um modelo de instância.
    4. Na seção Local, selecione Várias zonas e, em seguida, escolha uma região e as zonas.
    5. No menu suspenso Forma de distribuição de destino, selecione Equilibrado ou Qualquer.

      • Se você selecionar Equilibrado, na caixa de diálogo exibida, clique em Desativar a redistribuição de instâncias.

      • Se você quiser selecionar Qualquer, primeiro exclua a configuração de escalonamento automático. Para excluir o escalonamento automático, no menu suspenso Modo de escalonamento automático, clique em Excluir configuração de escalonamento automático.

  4. Na seção Ciclo de vida da instância de VM, verifique se os seguintes campos estão definidos da seguinte maneira:

    1. A lista Ação padrão em caso de falha está definida como Reparar instância.

    2. As Atualizações durante a correção da instância de VM estão definidas como Atualizar a configuração da instância.

    3. Na seção Mudar a zona durante a correção da instância de VM, selecione a caixa de seleção Permitir a correção de VMs em uma zona alternativa.

  5. Para as outras configurações, é possível usar os valores padrão ou modificar os campos.

  6. Depois de terminar, clique em Salvar para um MIG atual ou em Criar para um novo.

gcloud

Para configurar um MIG atual para corrigir a VM em uma zona alternativa, use o update comando:

gcloud compute instance-groups managed update MIG_NAME \
    --on-repair-allow-changing-zone=YES \
    --force-update-on-repair \
    --region=REGION

Para criar um MIG que possa corrigir a VM em uma zona alternativa, use o create comando:

gcloud compute instance-groups managed create MIG_NAME \
    --template=INSTANCE_TEMPLATE_URL \
    --size=SIZE \
    --zones=ZONES \
    --target-distribution-shape=SHAPE \
    --instance-redistribution-type=none \
    --on-repair-allow-changing-zone=YES \
    --force-update-on-repair

Substitua:

  • MIG_NAME: o nome do MIG;
  • INSTANCE_TEMPLATE_URL: o URL do modelo de instância que você quer usar para criar instâncias no MIG. O URL pode conter o ID ou o nome do modelo de instância. Especifique um dos seguintes valores:
    • Para um modelo de instância regional: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID.
    • Para um modelo de instância global: INSTANCE_TEMPLATE_ID
  • SIZE: o tamanho de destino do MIG;
  • ZONES: a lista de zonas em uma região em que você quer criar as VMs no MIG;
  • SHAPE: o formato de distribuição de destino. Esse valor pode ser balanced ou any.
  • REGION: a região em que o MIG está localizado.

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 que possa corrigir a VM em uma zona alternativa, use o google_compute_region_instance_group_manager recurso.

resource "google_compute_region_instance_group_manager" "default" {
  provider           = google-beta
  name               = "example-rmig"
  base_instance_name = "example-rmig-instance"
  region             = "us-central1"

  target_size                      = 3
  distribution_policy_target_shape = "BALANCED"

  version {
    instance_template = google_compute_instance_template.default.id
  }

  instance_lifecycle_policy {
    default_action_on_failure = "REPAIR"
    force_update_on_repair    = "YES"
    on_repair {
      allow_changing_zone = "YES"
    }
  }

  update_policy {
    instance_redistribution_type = "NONE"
    type                         = "OPPORTUNISTIC"
    minimal_action               = "REPLACE"
    max_surge_fixed              = 0
    max_unavailable_fixed        = 6
  }
}

Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.

REST

Para configurar um MIG atual para corrigir a VM em uma zona alternativa, use o regionInstanceGroupManagers.patch método:

PATCH https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME
{
    "instanceLifecyclePolicy": {
      "onRepair": {
        "allowChangingZone": "YES"
      },
      "forceUpdateOnRepair": "YES"
    }
}

Para criar um MIG que possa corrigir a VM em uma zona alternativa, use o regionInstanceGroupManagers.insert método:

POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers

{
  "name": "MIG_NAME",
  "instanceTemplate": "INSTANCE_TEMPLATE_URL",
  "targetSize": SIZE,
  "distributionPolicy": {
    "targetShape": "SHAPE"
  }
  "updatePolicy": {
    "instanceRedistributionType": none
  }
  "instanceLifecyclePolicy": {
    "forceUpdateOnRepair": "YES",
    "onRepair": {
      "allowChangingZone": "YES"
    }
  }
}

Substitua:

  • PROJECT_ID: o ID do projeto .
  • REGION: a região em que o MIG está localizado;
  • MIG_NAME: o nome do MIG;
  • INSTANCE_TEMPLATE_URL: o URL do modelo de instância que você quer usar para criar instâncias no MIG. O URL pode conter o ID ou o nome do modelo de instância. Especifique um dos seguintes valores:
    • Para um modelo de instância regional: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID.
    • Para um modelo de instância global: INSTANCE_TEMPLATE_ID
  • SIZE: o tamanho de destino do MIG;
  • SHAPE: o formato de distribuição de destino. Esse valor pode ser BALANCED ou ANY.

Não permitir reparos em uma zona alternativa

Se você configurou um MIG para corrigir a VM em uma zona alternativa, poderá restaurar a configuração padrão em que o MIG corrige a VM na zona original.

Para não permitir reparos em uma zona alternativa, selecione uma das seguintes opções:

Console

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

    Acessar grupos de instâncias

  2. Clique no nome do MIG.

  3. Clique em Editar.

  4. Acesse a seção Ciclo de vida da instância de VM.

  5. Na seção Mudar a zona durante a correção da instância de VM, desmarque a caixa de seleção Permitir a correção de VMs em uma zona alternativa.

  6. Clique em Salvar.

gcloud

Para não permitir reparos em uma zona alternativa, use o update comando:

gcloud compute instance-groups managed update MIG_NAME \
    --on-repair-allow-changing-zone=NO \
    --region=REGION

Substitua:

  • MIG_NAME: o nome do MIG;
  • REGION: a região em que o MIG está localizado.

REST

Para não permitir reparos em uma zona alternativa, use o regionInstanceGroupManagers.patch método:

PATCH https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME
{
    "instanceLifecyclePolicy": {
      "onRepair": {
        "allowChangingZone": "NO"
      }
    }
}

Substitua:

  • PROJECT_ID: o ID do projeto .
  • REGION: a região em que o MIG está localizado;
  • MIG_NAME: o nome do MIG.

A seguir