Simular um evento de manutenção de host


Esta página descreve como testar os efeitos da política de manutenção de host da instância do Compute Engine nos seus aplicativos.

Você pode simular um evento de manutenção nas suas VMs para testar o seguinte:

  • Os efeitos da migração ao vivo em seus aplicativos.
  • Como seus aplicativos e trabalhos em lote lidam com a preempção e o encerramento ao usar uma ou mais VMs do Spot .
  • Como seus aplicativos lidam com o processo de encerramento e reinicialização de instâncias configuradas para encerramento e reinicialização durante eventos de manutenção, em vez de migração em tempo real.
  • Como as cargas de trabalho em execução em nós de locatário individual se comportam durante um evento de manutenção de host e como ver os efeitos da política de manutenção de host da VM de locatário individual nos aplicativos em execução nas VMs.

Se você tentar simular um evento de manutenção de host em uma instância que não oferece suporte à migração em tempo real , a instância será encerrada ou reiniciada, dependendo da política de manutenção de host configurada.

Antes de começar

  • Revise o limite regional de taxa de API para SimulateMaintenanceEventRequestsPerMinutePerProjectPerRegion .
  • 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:

    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.

Limitações

  • Para simular corretamente um evento de manutenção em um grupo de nós de locatário individual que tem uma política de manutenção de host definida para migrar dentro do grupo de nós , é necessário acionar o evento de manutenção sequencialmente em cada nó.
  • Para um grupo de nós de locatário individual, quando você tenta simular um evento de manutenção de host e o grupo de nós tem uma política de manutenção de host definida para migrar dentro do grupo de nós:
    • Se o número de nós especificado for menor ou igual ao número total de nós de retenção reservados, a simulação do evento de manutenção do 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 retenção reservados, a simulação falhará.
  • O número de simulações de eventos de manutenção que você pode iniciar por minuto e por região é limitado pelo limite de taxa de API para a métrica simulate_maintenance_event_requests_per_region .

Simule eventos de manutenção de host para testar a migração em tempo real

Você pode simular um evento de manutenção para uma instância de computação usando a CLI do Google Cloud ou uma solicitação de API. Este evento simulado inclui as diferentes atividades de manutenção que ocorrem em um evento de manutenção regular. Isso permite observar o processo de ponta a ponta e testar qualquer automação que você possa ter implementado.

Durante a simulação do evento de manutenção do host para uma instância que usa migração em tempo real, a chave de metadados do maintenance-event da instância 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 todo o evento de simulação, o valor permanece como MIGRATE_ON_HOST_MAINTENANCE .
  3. Após o término da simulação, o valor retorna para NONE .

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

gcloud

Use o comando compute instances simulate-maintenance-event para simular um evento de manutenção para uma instância e testar suas configurações de política de manutenção de host definidas:

gcloud compute instances simulate-maintenance-event INSTANCE_NAME \
    --zone=ZONE --with-extended-notifications=True

Substitua o seguinte:

  • INSTANCE_NAME : o nome da instância de computação onde você deseja simular o evento de manutenção.

    Você pode especificar vários nomes de instâncias separados por espaços únicos para simular eventos de manutenção em mais de uma instância na mesma zona. Por exemplo, instance-1 instance-2 instance-3 .

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

DESCANSAR

Construa uma solicitação POST para o método compute.instances.simulateMaintenanceEvent :

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

Substitua o seguinte:

  • PROJECT_ID : o ID do projeto para esta solicitação.
  • INSTANCE_NAME : o nome da instância para a qual deseja simular o evento de manutenção.
  • ZONE : a zona onde a instância está localizada.

Simule a manutenção do host para instâncias de computação que terminam

Você pode simular um evento de manutenção para uma instância de computação usando a CLI do Google Cloud ou uma solicitação de API. Este evento simulado inclui as diferentes atividades de manutenção que ocorrem em um evento de manutenção regular. Isso permite observar o processo de ponta a ponta e testar qualquer automação que você possa ter implementado.

Além disso, usando o parâmetro --with-extended-notifications com um tipo de máquina compatível, você pode testar manualmente o início da manutenção do host durante o evento simulado.

gcloud

  1. Use o comando compute instances simulate-maintenance-event para simular um evento de manutenção para uma instância e testar suas configurações de política de manutenção de host definidas. Opcionalmente, você pode incluir o sinalizador --with-extended-notifications .

    gcloud compute instances simulate-maintenance-event INSTANCE_NAME \
       --zone=ZONE --with-extended-notifications=True
    

    Substitua o seguinte:

    • INSTANCE_NAME : o nome da instância de computação onde você deseja simular o evento de manutenção.

      Você pode especificar vários nomes de instâncias separados por espaços únicos para simular eventos de manutenção em mais de uma instância na mesma zona. Por exemplo, instance-1 instance-2 instance-3 .

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

  2. Opcional: Para iniciar manualmente o evento de manutenção simulado, use o comando compute instances perform-maintenance .

    gcloud compute instances perform-maintenance INSTANCE_NAME \
       --zone=ZONE
    

    Substitua o seguinte:

    • INSTANCE_NAME : o nome da instância de computação onde você deseja simular o evento de manutenção.

      Você pode especificar vários nomes de instâncias separados por espaços únicos para simular eventos de manutenção em mais de uma instância na mesma zona. Por exemplo, instance-1 instance-2 instance-3 .

    • ZONE : a zona onde as instâncias estão localizadas.

DESCANSAR

  1. Construa uma solicitação POST para o método compute.instances.simulateMaintenanceEvent . Opcionalmente, você pode incluir o parâmetro de consulta withExtendedNotifications .

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/simulateMaintenanceEvent?withExtendedNotifications=True
    

    Substitua o seguinte:

    • PROJECT_ID : o ID do projeto para esta solicitação.
    • INSTANCE_NAME : o nome da instância para a qual deseja simular o evento de manutenção.
    • ZONE : a zona onde a instância está localizada.
  2. Opcional: Para iniciar manualmente o evento de manutenção simulado, construa uma solicitação POST para o método compute.instances.performMaintenance .

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/performMaintenance
    

    Substitua o seguinte:

    • INSTANCE_NAME : o nome da instância de computação onde você deseja iniciar o evento de manutenção.

      Você pode especificar vários nomes de instâncias separados por espaços únicos para realizar eventos de manutenção em mais de uma instância na mesma zona. Por exemplo, instance-1 instance-2 instance-3 .

    • ZONE : a zona onde as instâncias estão localizadas.

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

Você pode simular um evento de manutenção de host em nós de locatário individual usando a CLI do Google Cloud ou uma solicitação de API. Durante a simulação do evento de manutenção do anfitrião num VM de inquilino individual, o valor da chave de metadados maintenance-event não muda e permanece NONE durante toda a simulação.

gcloud

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

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

Substitua o seguinte:

  • NODE_GROUP : nome do grupo de nós onde deseja simular o evento de manutenção.

  • NODE_NAMES : os nomes dos nós onde deseja 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 onde os nós estão localizados.

DESCANSAR

Construa uma solicitação POST 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 o seguinte:

  • PROJECT_ID : o ID do projeto para esta solicitação.
  • ZONE : a zona onde os nós estão localizados.
  • NODE_GROUP : nome do grupo de nós onde deseja simular o evento de manutenção.
  • NODE_NAMES : os nomes dos nós onde deseja 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" .

O que vem a seguir