Monitorar eventos de manutenção

Neste documento, descrevemos como visualizar as operações de manutenção do host usando a linha de comando e o painel de manutenção do GKE.

A visualização das operações de manutenção do host pode ajudar a reduzir as interrupções da carga de trabalho, especialmente para um cluster do GKE de longa duração com cargas de trabalho que podem ser interrompidas devido a interrupções periódicas da infraestrutura.

Para mais detalhes sobre a manutenção do host no GKE, consulte Entender como fazer a manutenção do host no GKE.

Monitorar notificações de manutenção

Antes que uma VM tenha um evento de manutenção programado, o Compute Engine envia notificações para todas as VMs. Essas notificações informam o início da janela de manutenção do Compute Engine. Quando uma manutenção futura é programada pela VM, mas não está ativa, o GKE adiciona scheduled-maintenance-time ao rótulo do nó.

Para monitorar e detectar eventos de manutenção futuros, é necessário visualizar as notificações do GKE e do Compute Engine.

Conferir a manutenção futura no Compute Engine

O Compute Engine emite notificações quando os nós e as VMs subjacentes são programados para eventos de host disruptivos, e quando esses eventos ficam ativos. As notificações incluem informações sobre o horário de início planejado, o tipo de evento e outros detalhes.

Conferir a manutenção futura no GKE

No GKE versão 1.31.1-gke.2008000 e mais recente, e para tipos de máquinas específicos, é possível monitorar eventos de manutenção futuros.

  • Para tipos de máquinas com GPUs ou TPUs anexadas, 1.31.1-gke.2008000 ou mais recente
  • Para tipos de máquinas Z3 com mais de 18 TiB de SSD, 1.32.4-gke.1376000 ou mais recente
  • Para tipos de máquinas H4D, 1.32.6-gke.1060000 ou mais recente
  • Para c4a-highmem-96-metal, 1.35.0-gke.2232000 ou mais recente

Para conferir os próximos eventos de manutenção, faça o seguinte:

  • Consulte as notificações no nível do nó. Para isso, execute o seguinte comando:

    kubectl get nodes -l cloud.google.com/scheduled-maintenance-time \
        -L cloud.google.com/scheduled-maintenance-time
    

    O resultado será assim:

    NAME                         STATUS    SCHEDULED-MAINTENANCE-TIME
    <gke-accelerator-node-name>  Ready     1733083200
    <gke-accelerator-node-name>  Ready     1733083200
    [...]
    

    A coluna SCHEDULED-MAINTENANCE-TIME representa segundos, que são exibidos no formato de tempo da época Unix.

  • Consulte essas notificações no nível dos metadados do nó verificando as instâncias de uma notificação de evento de manutenção.

  • Para famílias de máquinas otimizadas para aceleradores que oferecem suporte a manutenção avançada, é possível acessar o endpoint upcoming-maintenance que fornece informações sobre eventos de manutenção programados e iniciados.

Conferir eventos do Kubernetes para manutenção do host

No GKE versão 1.35 e mais recente, os eventos do Kubernetes que rastreiam o ciclo de vida da manutenção do host são emitidos. Esses eventos do Kubernetes oferecem visibilidade granular das janelas programadas do Compute Engine, das operações em andamento e dos casos extremos, como reparos ou cancelamentos, permitindo monitorar interrupções diretamente no ambiente do Kubernetes.

É possível conferir esses eventos usando ferramentas padrão do Kubernetes ou pelo Cloud Logging:

  1. Para conferir eventos de manutenção recentes, use o seguinte comando kubectl:

    kubectl get events -n kube-system --field-selector involvedObject.kind=Node
    

    Os eventos do Kubernetes são mantidos no cluster por 60 minutos. Portanto, esse comando gera apenas esses eventos recentes por nó.

  2. Para conferir eventos no Cloud Logging, faça o seguinte:

    1. Acesse a página Análise de registros no Cloud de Confiance console do:

      Acessar a Análise de registros

    2. Use a seguinte consulta:

    resource.type="k8s_node"
    log_id("events")
    jsonPayload.metadata.annotations."maintenance.gke.io/category"="HostMaintenance"
    

Eventos do ciclo de vida da manutenção

Os eventos do ciclo de vida da manutenção são emitidos em recursos de nós do Kubernetes. A tabela a seguir descreve os eventos emitidos pelo GKE durante o ciclo de vida da manutenção do host do Compute Engine:

Motivo Descrição
MaintenanceWindowScheduled Uma janela de manutenção do host do Compute Engine foi programada para o nó
MaintenanceWindowCancelled Uma janela de manutenção do host do Compute Engine foi limpa no nó
MaintenanceWindowRescheduled A janela de manutenção do host do Compute Engine programada anteriormente foi movida e o horário de início da manutenção foi atualizado
CustomerTriggeredMaintenance A manutenção do host do Compute Engine foi acionada manualmente pelo GKE
MaintenanceWindowStarted A manutenção do host do Compute Engine foi iniciada
TerminateOnHostMaintenance Emitido quando o Compute Engine emite o sinal de encerramento (TERMINATE_ON_HOST_MAINTENANCE). Se o encerramento normal estiver ativado, o GKE isolará o nó e programará a remoção do pod (SIGTERM). As cargas de trabalho recebem um aviso de 5 a 60 minutos, dependendo do nível da máquina.
PodEvictionComplete Todos os pods foram removidos do nó
MaintenanceWindowCleared A manutenção do host do Compute Engine foi concluída e o nó voltou ao estado pronto.

Informações do payload do evento

Se as informações sobre um evento de manutenção futuro estiverem disponíveis pelo Compute Engine, cada evento também incluirá um payload contendo dados de anotação com as seguintes informações:

  • Detalhes da janela do Compute Engine:inclui windowStartTime, windowEndTime e latestWindowStartTime.
  • Metadados de manutenção: o status do ciclo de manutenção no momento do evento, o motivo da manutenção (o motivo pode ser listado como SCHEDULED ou UNSCHEDULED) e se a janela do Compute Engine pode ser reprogramada.
  • Metadados do Kubernetes:inclui Cluster_name, nodepool_name e node_name.

Visualização das operações de manutenção do host no painel de manutenção do GKE

O painel de manutenção do GKE oferece uma visão consolidada das operações de manutenção do host. O painel oferece visibilidade abrangente das atividades de manutenção nos níveis de cluster, pool de nós e nó.

O painel é criado na Análise de observabilidade. Ele mostra ciclos de manutenção, status de nós e métricas históricas de tempo de inatividade.

A seguir