Simule um evento de manutenção do anfitrião

Esta página descreve como testar os efeitos da política de manutenção do anfitrião da instância do Compute Engine nas suas aplicações.

Pode simular um evento de manutenção nas suas VMs para testar o seguinte:

  • Os efeitos da migração em direto nas suas aplicações.
  • Como as suas aplicações e tarefas em lote processam a preempção e o encerramento quando usam uma ou mais VMs Spot.
  • Como as suas aplicações processam o encerramento e o processo de reinício para instâncias configuradas para terminar e reiniciar durante eventos de manutenção em vez de migrar em direto.
  • Como as cargas de trabalho que estão a ser executadas em nós de inquilino único se comportam durante um evento de manutenção do anfitrião e veja os efeitos da política de manutenção do anfitrião da VM de inquilino único nas aplicações em execução nas VMs.

Se tentar simular um evento de manutenção do anfitrião numa instância que não suporta a migração em direto, a instância é terminada ou reiniciada, consoante a política de manutenção do anfitrião configurada.

Antes de começar

  • Reveja o limite de taxa da API regional para SimulateMaintenanceEventRequestsPerMinutePerProjectPerRegion.
  • Se ainda não o tiver feito, configure a autenticação. A autenticação valida a sua identidade para aceder a Trusted Cloud by S3NS 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:

    gcloud

    1. Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init
    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 e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

    Para mais informações, consulte o artigo Autenticar para usar REST na Trusted Cloud documentação de autenticação.

Limitações

  • Para simular corretamente um evento de manutenção num grupo de nós de inquilino único que tenha uma política de manutenção do anfitrião definida como migrar no grupo de nós, tem de acionar o evento de manutenção sequencialmente em cada nó.
  • Para um grupo de nós de inquilino único, quando tenta simular um evento de manutenção do anfitrião e o grupo de nós tem uma política de manutenção do anfitrião definida para migrar dentro do grupo de nós:
    • Se o número de nós especificado for inferior ou igual ao número total de nós de retenção reservados, a simulação do evento de manutenção do anfitrião é executada para todos os nós especificados em simultâneo.
    • Se o número de nós especificado for superior ao número total de nós de retenção reservados, a simulação falha.
  • O número de simulações de eventos de manutenção que pode iniciar por minuto por região é limitado pelo limite de taxa da API para a métrica simulate_maintenance_event_requests_per_region.

Simule eventos de manutenção do anfitrião para testar a migração em direto

Pode simular um evento de manutenção para uma instância de computação através da CLI do Google Cloud ou de um pedido de API. Este evento simulado inclui as diferentes atividades de manutenção que ocorrem num evento de manutenção normal. Isto permite-lhe observar o processo ponto a ponto e testar qualquer automatização que possa ter implementado.

Durante a simulação do evento de manutenção do anfitrião para uma instância que usa a migração em direto, a chave de metadados 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 a duração do evento de simulação, o valor permanece como MIGRATE_ON_HOST_MAINTENANCE.
  3. Após o fim da simulação, o valor volta a ser NONE.

Para consultar a chave do evento de manutenção, consulte o artigo Consulte a chave dos 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 as respetivas definições da política de manutenção do anfitrião configuradas:

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 quer simular o evento de manutenção.

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

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

REST

Construa um pedido POST para o método compute.instances.simulateMaintenanceEvent:

POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/simulateMaintenanceEvent

Substitua o seguinte:

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

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

Pode simular um evento de manutenção para uma instância de computação através da CLI do Google Cloud ou de um pedido de API. Este evento simulado inclui as diferentes atividades de manutenção que ocorrem num evento de manutenção normal. Isto permite-lhe observar o processo ponto a ponto e testar qualquer automatização que possa ter implementado.

Além disso, se usar o parâmetro --with-extended-notifications com um tipo de máquina suportado pode testar o início manual da manutenção do anfitrião 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 as respetivas definições da política de manutenção do anfitrião configuradas. Opcionalmente, pode incluir a flag --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 quer simular o evento de manutenção.

      Pode especificar vários nomes de instâncias separados por espaços únicos para simular eventos de manutenção em mais do que 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 quer simular o evento de manutenção.

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

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

REST

  1. Construa um pedido POST para o método compute.instances.simulateMaintenanceEvent. Opcionalmente, pode incluir o parâmetro de consulta withExtendedNotifications.

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

    Substitua o seguinte:

    • PROJECT_ID: o ID do projeto para este pedido.
    • INSTANCE_NAME: o nome da instância para a qual quer 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, crie um pedido POSTpara o método compute.instances.performMaintenance.

    POST https://compute.s3nsapis.fr/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 quer iniciar o evento de manutenção.

      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 do anfitrião em nós de inquilino único

Pode simular um evento de manutenção do anfitrião em nós de inquilino único através da CLI gcloud do Google Cloud ou de um pedido de API. Durante a simulação do evento de manutenção do anfitrião numa VM de inquilino único, o valor da chave de metadados maintenance-event não se altera 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 inquilino único a ativar a respetiva 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: o nome do grupo de nós onde quer simular o evento de manutenção.

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

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

REST

Construa um pedido POST para o método compute.nodeGroups.simulateMaintenanceEvent:

POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/nodeGroups/NODE_GROUP/simulateMaintenanceEvent

{
  "nodes": [
      "NODE_NAMES"
  ]
}

Substitua o seguinte:

  • PROJECT_ID: o ID do projeto para este pedido.
  • ZONE: a zona onde os nós estão localizados.
  • NODE_GROUP: o nome do grupo de nós onde quer simular o evento de manutenção.
  • NODE_NAMES: os nomes dos nós onde quer simular o evento de manutenção. Inclua o nome do nó entre aspas duplas, por exemplo, "node-1". Além disso, ao especificar vários nomes de nós, use valores separados por vírgulas, por exemplo, "node-1","node-2","node-3".

O que se segue?