Simular um evento de manutenção de host


Nesta página, descrevemos como testar os efeitos da política de manutenção de host da instância de máquina virtual (VM) nos aplicativos.

É possível simular um evento de manutenção nas VMs nas seguintes situações:

  • Você tem VMs configuradas para serem migradas em tempo real durante eventos de manutenção e precisa testar os efeitos da migração em tempo real nos aplicativos.
  • Você tem jobs em lote sendo executados em instâncias de VMs preemptivas e precisa testar como os aplicativos lidam com a preempção e a interrupção de uma ou mais instâncias.
  • Suas instâncias estão configuradas para serem interrompidas e reinicializadas durante os eventos de manutenção em vez de serem migradas em tempo real, e você precisa testar como os aplicativos processam o encerramento e a reinicialização.
  • Você quer testar o comportamento das cargas de trabalho em execução nos nós de locatário individual durante um evento de manutenção de host e ver os efeitos da política de manutenção de host da VM de locatário individual nos aplicativos em execução nas VMs.

Antes de começar

  • Revise o limite de taxa da API para a métrica simulate_maintenance_event_requests.
  • Configure a autenticação, caso ainda não tenha feito isso. A autenticação é o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud. Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no Compute Engine da seguinte maneira.

    Selecione a guia para como planeja usar as amostras nesta página:

    Console

    Quando você usa o console do Google Cloud para acessar os serviços e as APIs do Google Cloud, não é necessário configurar a autenticação.

    gcloud

    1. Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

      gcloud init
    2. Defina uma região e uma zona padrão.

    REST

    Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.

      Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

      gcloud init

Limitações

  • Se você tentar simular um evento de manutenção de host em VMs que não são compatíveis com a migração em tempo real, elas serão encerradas ou reiniciadas dependendo da política de manutenção de host configurada.

  • Ao tentar simular um evento de manutenção de host em um grupo de nós com uma política de manutenção de host definida para migrar no grupo de nós, se o número de nós especificado for menor ou igual ao número total de nós de restrição reservados, a simulação do evento de manutenção de host será executada para todos os nós especificados simultaneamente. Se o número de nós especificado for maior que o número total de nós de restrição reservados, a simulação falhará.

  • Para simular corretamente um evento de manutenção em um grupo de nós com a política de manutenção de host definida para migrar dentro do grupo de nós, você precisa acionar o evento de manutenção sequencialmente em cada nó.

Simular eventos de manutenção de host

É possível simular um evento de manutenção em uma VM usando a Google Cloud CLI ou uma solicitação de API.

Durante a simulação do evento de manutenção de host, a chave de metadados maintenance-event da VM passa pelas seguintes alterações:

  1. No início da simulação, o valor da chave de metadados maintenance-event muda de NONE para MIGRATE_ON_HOST_MAINTENANCE.
  2. Durante a simulação do evento, o valor permanece como MIGRATE_ON_HOST_MAINTENANCE.
  3. Depois que a simulação terminar, o valor retornará para NONE.

Para consultar a chave de evento de manutenção, veja Consultar a chave de metadados do evento de manutenção.

gcloud

Execute o comando instances simulate-maintenance-event para forçar uma instância a ativar a ação da política de manutenção configurada:

gcloud compute instances simulate-maintenance-event VM_NAME \
    --zone ZONE

Substitua:

  • VM_NAME: o nome da VM em que você quer simular o evento de manutenção.

    É possível especificar vários nomes de VM separados por espaços únicos para simular eventos de manutenção em mais de uma VM da mesma zona. Por exemplo, instance-1 instance-2 instance-3.

  • ZONE: a zona em que a instância está localizada.

REST

Na API Compute Engine, faça uma solicitação para o método compute.instances.simulateMaintenanceEvent:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/simulateMaintenanceEvent

Substitua:

  • PROJECT_ID: o ID do projeto desta solicitação;
  • VM_NAME: o nome da instância em que você quer simular o evento de manutenção.

    É possível especificar vários nomes de instância separados por espaços únicos para simular eventos de manutenção em mais de uma instância da mesma zona. Por exemplo, instance-1 instance-2 instance-3.

  • ZONE: a zona em que a instância está localizada.

Simular eventos de manutenção de host em nós de locatário individual

É possível simular um evento de manutenção de host em nós de locatário individual usando a Google Cloud CLI ou uma solicitação de API. Durante a simulação do evento de manutenção de host em uma VM de locatário único, o valor da chave de metadados maintenance-event não muda e permanece NONE durante toda a simulação.

gcloud

Execute o comando sole-tenancy node-groups simulate-maintenance-event para forçar os nós de locatário individual a ativar a política de manutenção configurada:

 gcloud compute sole-tenancy node-groups simulate-maintenance-event NODE_GROUP \
    --nodes=NODE_NAMES \
    --zone=ZONE \
    --async

Substitua:

  • NODE_GROUP: o nome do grupo de nós em que você quer simular o evento de manutenção.

  • NODE_NAMES: os nomes dos nós em que você quer simular o evento de manutenção. Ao especificar vários nomes de nós, use valores separados por vírgula, por exemplo, node-1,node-2,node-3.

  • ZONE: a zona em que os nós estão localizados.

REST

Na API Compute Engine, faça uma solicitação para o método compute.nodeGroups.simulateMaintenanceEvent:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/nodeGroups/NODE_GROUP/simulateMaintenanceEvent

{
  "nodes": [NODE_NAMES]
}

Substitua:

  • PROJECT_ID: o ID do projeto desta solicitação;

  • ZONE: a zona em que os nós estão localizados.

  • NODE_GROUP: o nome do grupo de nós em que você quer simular o evento de manutenção.

  • NODE_NAMES: os nomes dos nós em que você quer simular o evento de manutenção. Coloque o nome do nó entre aspas duplas, por exemplo, "node-1". E, ao especificar vários nomes de nós, use valores separados por vírgula, por exemplo, "node-1","node-2","node-3".

A seguir