Acionar um evento de manutenção do host


Nesta página, explicamos como acionar um evento de manutenção do host em instâncias específicas da família de VMs. Esse recurso permite iniciar manualmente um evento de manutenção para controlar o tempo da manutenção da sua VM. Isso é útil para cargas de trabalho que podem ser afetadas por uma janela de manutenção específica.

É possível acionar manualmente um evento de manutenção para começar imediatamente. Não é possível acionar um evento em uma data ou hora específica. Se você não usar esse recurso, o evento de manutenção ocorrerá conforme programado.

Limitações

O acionamento de um evento de manutenção do host da VM é limitado aos tipos de máquina de VM a seguir:

Antes de começar

  • 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.

    Select the tab for how you plan to use the samples on this page:

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    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.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

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

Funções exigidas

Para receber as permissões necessárias a fim de criar VMs e gerenciar a manutenção delas, peça ao administrador para conceder a você o papel do IAM de Administrador da instância da computação (v1) (roles/compute.instanceAdmin.v1) no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esse papel predefinido contém as permissões necessárias para criar VMs e gerenciar a manutenção delas. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As permissões a seguir são necessárias para criar VMs e gerenciar a manutenção delas:

  • Para receber informações sobre uma VM: compute.instances.get
  • Para criar uma VM: compute.instances.create

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Acionar evento de manutenção do host

O Google envia notificações sobre a próxima manutenção da VM usando vários métodos. É possível encontrar as notificações consultando suas VMs, o servidor de metadados ou o Cloud Logging.

Depois de receber uma notificação sobre um evento de manutenção do host, você tem a opção de acionar a manutenção imediatamente ou aguardar que ela ocorra conforme programado.

Iniciar o evento de manutenção

É possível iniciar a manutenção da VM imediatamente em vez de aguardar o horário programado. Use a CLI do Google Cloud ou o método REST para acionar a manutenção da VM imediatamente.

Se não houver notificação e você tentar acionar um evento de manutenção, a seguinte mensagem será exibida:

There is no reschedulable upcoming maintenance.

Isso indica que nenhum evento de manutenção foi programado e que nenhuma ação precisa ser realizada.

gcloud

Para iniciar a manutenção imediatamente, use o comando gcloud compute instances perform-maintenance. É necessário incluir o --zone=[ZONE_NAME].

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

Substitua:

  • VM_NAME: o nome da VM.
  • ZONE: a zona em que a VM reside.

A resposta será assim:

upcomingMaintenance:{
  "canReschedule":false
  "latestWindowStartTime": "2023-12-01T19:00:01Z"
  "maintenanceStatus":"ONGOING"
  "type":"SCHEDULED"
  "windowEndTime": "2023-12-01T22:00:00Z"
  "windowStartTime": "2023-12-01T19:00:00Z"
}

Na resposta, maintenanceStatus é definido como ONGOING. A manutenção está em andamento.

REST

Para acionar a manutenção da VM, execute o comando instances.performMaintenance:

POST: https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/VM_NAME/performMaintenance

Substitua:

  • PROJECT_NAME: o nome do projeto.
  • ZONE: a zona onde a VM reside.
  • VM_NAME: o nome da VM.

A resposta será assim:

upcomingMaintenance:{
  "canReschedule":false
  "latestWindowStartTime": "2023-12-01T19:00:01Z"
  "maintenanceStatus":"ONGOING"
  "type":"SCHEDULED"
  "windowEndTime": "2023-12-01T22:00:00Z"
  "windowStartTime": "2023-12-01T19:00:00Z"
}

Na resposta, maintenanceStatus é definido como ONGOING. A manutenção está em andamento.

Definições do status de manutenção

As definições de status a seguir explicam as respostas a uma consulta de manutenção da VM. Elas contêm informações relacionadas à manutenção da VM. A CLI do Google Cloud, a REST e o servidor de metadados usam essas mesmas respostas:

  • windowStartTime: o início da janela de tempo em que a manutenção ocorre
  • windowEndTime: o fim da janela de tempo em que a manutenção ocorre
  • latestWindowStartTime: o primeiro horário para o qual a janela pode ser movida
  • maintenanceType: o tipo de manutenção a ser realizada
    • NONE: nenhuma manutenção está programada para essa VM
    • SCHEDULED: haverá um aviso sobre a manutenção com sete dias de antecedência
    • UNSCHEDULED: a manutenção representa atualizações críticas com muito menos avisos
  • canReschedule: se a manutenção pode ser acionada durante o período de notificação dessa VM
    • TRUE: a manutenção acionada pelo cliente pode ser realizada durante o período de notificação
    • FALSE: não é possível realizar a manutenção acionada pelo cliente nessa VM. Isso geralmente ocorre durante o período em que a VM está em manutenção
  • maintenanceStatus: o status da operação de manutenção atual
    • ONGOING: a operação de manutenção está em andamento
    • PENDING: a operação de manutenção está programada, mas ainda não foi iniciada

Comportamentos do status de manutenção

Enquanto você gerencia a programação de manutenção, verifique o status de canReschedule= e maintenanceStatus=. Essas combinações de resposta descrevem o comportamento esperado dos recursos e mostram uma das combinações de status a seguir:

  • Se canReschedule=Yes e maintenanceStatus=Pending, é possível acionar a manutenção na VM.
  • Se canReschedule=No e maintenanceStatus=Ongoing, a manutenção já está em andamento.
  • Se canReschedule=No e maintenanceStatus=Pending, a VM não é compatível com a manutenção acionada manualmente.

A seguir