Desative as reparações num MIG


Este documento descreve como desativar as reparações de VMs com falhas e em mau estado num grupo de instâncias gerido (MIG) e, se já estiverem desativadas, como configurar o MIG para reparar VMs.

Por predefinição, um GIG repara automaticamente uma VM com falhas no grupo recriando essa VM. Se configurou uma verificação de estado baseada na aplicação, o MIG também repara as VMs em mau estado nas quais a sua aplicação falha a verificação de estado. A reparação de uma VM com base numa verificação de funcionamento baseada em aplicações também é denominada autorreparação.

Se não quiser que um MIG repare uma VM com falhas ou uma VM não saudável, pode desativar as reparações no MIG. Desativar as reparações é útil em cenários em que quer resolver problemas de uma VM com falhas, implementar a sua própria lógica de reparação ou monitorizar o estado de funcionamento da aplicação sem reparar VMs em mau estado.

Para verificar se as reparações já estão desativadas num MIG, consulte o artigo Verifique se as reparações estão desativadas num MIG.

Para mais informações sobre reparações num MIG, consulte o artigo Acerca da reparação de VMs para alta disponibilidade.

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.

Desative as reparações num MIG

Quando desativa as reparações num MIG, por predefinição, as reparações de VMs com falhas e a recuperação automática são desativadas. Se quiser desativar apenas a recuperação automática, consulte a secção Desative a recuperação automática.

Consola

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

    Aceda a Grupos de instâncias

  2. Clique no nome do MIG no qual quer desativar a reparação.

  3. Clique em Edit.

  4. Clique em Ciclo de vida da instância e autorreparação para expandir a secção.

    1. Na secção Ação em caso de falha, defina o campo Ação predefinida em caso de falha como Nenhuma ação.
    2. Se configurou a autorreparação e não quer que o MIG desative a autorreparação, na secção Autorreparação, defina o campo Na verificação de estado com falha como Reparar instância.
  5. Clique em Guardar.

gcloud

Para desativar as reparações num MIG, use o comando update da seguinte forma. Esta opção desativa a autorreparação por predefinição.

gcloud compute instance-groups managed update MIG_NAME \
    --default-action-on-vm-failure=do-nothing \
    --zone=ZONE

Se a autocorreção estiver configurada no MIG e não quiser desativar a autocorreção por predefinição, use o comando beta update para definir a flag --action-on-vm-failed-health-check como repair. Isto garante que a autocorreção de VMs não íntegras continua a funcionar, mesmo que a reparação de VMs com falhas esteja desativada.

gcloud beta compute instance-groups managed update MIG_NAME \
    --default-action-on-vm-failure=do-nothing \
    --action-on-vm-failed-health-check=repair \
    --zone=ZONE

Substitua o seguinte:

  • MIG_NAME: o nome do grupo de instâncias.
  • ZONE: a zona onde o seu MIG está localizado. Para um MIG regional, use a flag --region=REGION.

REST

Para desativar as reparações num MIG, use os métodos da API da seguinte forma. Esta opção desativa a autorreparação por predefinição.

Por exemplo, faça a seguinte chamada num MIG zonal. Esta opção desativa a reparação automática por predefinição.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME

{
  "instanceLifecyclePolicy":
    {
      "defaultActionOnFailure": "DO_NOTHING"
    }
  }

Se a autocorreção estiver configurada no MIG e não quiser desativar a autocorreção por predefinição, use os métodos da API da seguinte forma para definir a flag onFailedHealthCheck como REPAIR. Isto garante que a autocorreção de VMs não íntegras continua a funcionar mesmo que a reparação de VMs com falhas esteja desativada.

Por exemplo, faça a seguinte chamada num MIG zonal:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME

{
  "instanceLifecyclePolicy":
    {
      "defaultActionOnFailure": "DO_NOTHING",
      "onFailedHealthCheck": "REPAIR"
    }
  }

Substitua o seguinte:

  • PROJECT_ID: o seu ID do projeto.
  • MIG_NAME: o nome do MIG.
  • ZONE: a zona onde o MIG está localizado. Para um MIG regional, use regions/REGION no URL.

Limitações

Se um MIG tiver alguma das seguintes opções, não pode desativar as reparações no MIG definindo o campo defaultActionOnFailure como DO_NOTHING:

Desative a autocorreção

Quando configura uma verificação de estado da aplicação num MIG, se não quiser que o MIG repare nenhuma VM não saudável, pode desativar a autorreparação separadamente. Isto não desativa as reparações de VMs com falhas.

Consola

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

    Aceda a Grupos de instâncias

  2. Clique no nome do MIG no qual quer desativar a autorrecuperação.

  3. Clique em Edit.

  4. Clique em Ciclo de vida da instância e autorreparação para expandir a secção.

  5. Na secção Reparação automática, defina o campo Na verificação de estado com falha como Nenhuma ação.

  6. Clique em Guardar.

gcloud

Para desativar a autocorreção num MIG, use o comando beta update e defina a flag --action-on-vm-failed-health-check como do-nothing.

Por exemplo, use o seguinte comando para um MIG zonal:

gcloud beta compute instance-groups managed update MIG_NAME \
    --action-on-vm-failed-health-check=do-nothing \
    --zone=ZONE

Substitua o seguinte:

  • MIG_NAME: o nome do MIG.
  • ZONE: a zona onde o MIG está localizado. Para um MIG regional, use a flag --region=REGION.

REST

Para desativar a autocorreção num MIG, use os métodos da API da seguinte forma e defina a flag --action-on-vm-failed-health-check como do-nothing.

Por exemplo, faça o seguinte pedido para desativar a autocorreção num MIG zonal:

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers

{
  "instanceLifecyclePolicy":
   {
     "onFailedHealthCheck": "DO_NOTHING"
   }
}

Substitua o seguinte:

  • PROJECT_ID: o seu ID do projeto.
  • ZONE: a zona onde o MIG está localizado. Para um MIG regional, use regions/REGION no URL.
  • MIG_NAME: o nome do grupo de instâncias.

Ative as reparações ou a autocura

Por predefinição, um MIG repara VMs com falhas e, se a autorrecuperação estiver configurada, o MIG também repara VMs não íntegras. Se tiver desativado as reparações ou a autocorreção, ou ambas, pode voltar a ativá-las.

Consola

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

    Aceda a Grupos de instâncias

  2. Clique no nome do MIG no qual quer ativar a reparação.

  3. Clique em Edit.

  4. Clique em Ciclo de vida da instância e autorreparação para expandir a secção.

    • Para reparar VMs com falhas, na secção Ação em caso de falha, defina o campo Ação predefinida em caso de falha como Reparar instância.
    • Para reparar VMs não saudáveis, na secção Reparação automática, defina o campo Na verificação de estado com falha como Reparar instância. Se definir este valor como Ação predefinida, a autocorreção usa a mesma definição que configurar para o campo Ação predefinida em caso de falha.
  5. Quando terminar, clique em Guardar para aplicar as alterações.

gcloud

Para ativar as reparações num MIG, use o comando update. Esta ação também ativa a autorreparação se o valor da flag --action-on-vm-failed-health-check for default-action.

gcloud compute instance-groups managed update MIG_NAME \
    --default-action-on-vm-failure=repair

Se desativou a autocorreção separadamente e quer ativá-la novamente, use o comando beta update:

gcloud beta compute instance-groups managed update MIG_NAME \
    --action-on-vm-failed-health-check=default-action OR repair

Substitua o seguinte:

  • MIG_NAME com o nome de um MIG.
  • default-action OR repair: se quiser que a autorrecuperação use a mesma definição que configura para reparações de VMs com falhas, defina o valor como default-action. Por exemplo, quando desativa a reparação de VMs com falhas, o GIG também desativa a autorreparação. Se quiser controlar as reparações de VMs não íntegras separadamente, defina o valor como repair.

REST

Para ativar as reparações num MIG, use o método da API da seguinte forma. Esta ação também ativa a autocorreção se o valor do campo onFailedHealthCheck for DEFAULT_ACTION.

Por exemplo, faça o seguinte pedido num MIG zonal:

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
    {
      "instanceLifecyclePolicy": {
        "defaultActionOnFailure": "REPAIR"
      }
    }
  

Se desativou a autorreparação separadamente e quer ativá-la novamente, use o método da API beta da seguinte forma:

  PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
  {
    "instanceLifecyclePolicy": {
      "onFailedHealthCheck": "DEFAULT_ACTION OR REPAIR"
    }
  }

Substitua o seguinte:

  • PROJECT_ID: o seu ID do projeto.
  • ZONE: a zona onde o seu MIG está localizado. Para um MIG regional, use regions/REGION no URL.
  • MIG_NAME: o nome do MIG.
  • DEFAULT_ACTION OR REPAIR: se quiser que a autocorreção use a mesma definição que para as reparações de VMs com falhas, defina o valor como DEFAULT_ACTION. Por exemplo, quando desativa a reparação de VMs com falhas, o GIG também desativa a autorreparação. Se quiser configurar a autorreparação em separado, defina o valor como REPAIR.

O que se segue?