Supervisa los eventos de mantenimiento

En este documento, se describe cómo ver las operaciones de mantenimiento del host con la línea de comandos y el panel de mantenimiento de GKE.

Ver las operaciones de mantenimiento del host puede ayudarte a mitigar las interrupciones de las cargas de trabajo, en especial, en el caso de un clúster de GKE de ejecución prolongada con cargas de trabajo que podrían interrumpirse debido a interrupciones periódicas de la infraestructura.

Para obtener más detalles sobre el mantenimiento del host en GKE, consulta Cómo realizar el mantenimiento del host en GKE.

Supervisa las notificaciones de mantenimiento

Antes de que una VM tenga un evento de mantenimiento programado, Compute Engine envía notificaciones a todas sus VMs. Estas notificaciones informan el inicio del período de mantenimiento de Compute Engine. Cuando la VM programa un mantenimiento próximo, pero este no está activo, GKE agrega scheduled-maintenance-time a la etiqueta del nodo.

Para supervisar y detectar los próximos eventos de mantenimiento, debes ver las notificaciones de GKE y Compute Engine.

Consulta el próximo mantenimiento en Compute Engine

Compute Engine emite notificaciones cuando se programan nodos y sus VMs subyacentes para eventos del host disruptivos y cuando estos eventos se activan. Las notificaciones incluyen información sobre la hora de inicio planificada, el tipo de evento y otros detalles.

Consulta el próximo mantenimiento en GKE

En la versión 1.31.1-gke.2008000 de GKE y versiones posteriores, y para tipos de máquinas específicos, puedes supervisar los próximos eventos de mantenimiento.

  • Para los tipos de máquinas con GPU o TPU conectadas, 1.31.1-gke.2008000 o posterior.
  • Para los tipos de máquinas H4D, 1.32.6-gke.1060000 o posterior.
  • Para c4a-highmem-96-metal, 1.35.0-gke.2232000 o versiones posteriores
  • Para los tipos de máquinas Z3 con más de 18 TiB de SSD de Titanium, 1.32.4-gke.1376000 o posterior.
  • Para los tipos de máquinas Z4D con más de 41 TiB de SSD de Titanium conectadas, 1.36.3-gke.1244000 o posterior.

Para ver los próximos eventos de mantenimiento, puedes hacer lo siguiente:

  • Consultar notificaciones a nivel del nodo Para hacerlo, ejecuta el comando siguiente:

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

    El resultado es similar a lo siguiente:

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

    La columna SCHEDULED-MAINTENANCE-TIME representa los segundos, que se muestran en formato de hora de época de Unix.

  • Consulta estas notificaciones a nivel de los metadatos del nodo verificando si hay notificaciones de eventos de mantenimiento en las instancias.

  • En el caso de las familias de máquinas optimizadas para aceleradores que admiten el mantenimiento avanzado, puedes acceder al extremo upcoming-maintenance que proporciona información sobre los eventos de mantenimiento programados y los que ya se iniciaron.

Consulta los eventos de Kubernetes para el mantenimiento del host

En la versión 1.35 de GKE y versiones posteriores, se emiten eventos de Kubernetes que hacen un seguimiento del ciclo de vida del mantenimiento del host. Estos eventos de Kubernetes proporcionan visibilidad detallada de las ventanas programadas de Compute Engine, las operaciones en curso y los casos extremos, como reparaciones o cancelaciones, lo que te permite supervisar las interrupciones directamente en el entorno de Kubernetes.

Puedes ver estos eventos con las herramientas estándar de Kubernetes o a través de Cloud Logging:

  1. Para ver los eventos de mantenimiento recientes, usa el siguiente comando de kubectl:

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

    Los eventos de Kubernetes se conservan en el clúster durante 60 minutos, por lo que este comando solo genera estos eventos recientes por nodo.

  2. Para ver los eventos en Cloud Logging, haz lo siguiente:

    1. Ve a la página del Explorador de registros en la consola de Cloud de Confiance :

      Ve al Explorador de registros

    2. Usa la siguiente consulta:

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

Eventos del ciclo de vida de mantenimiento

Los eventos de ciclo de vida de mantenimiento se emiten en los recursos de nodos de Kubernetes. En la siguiente tabla, se describen los eventos que emite GKE durante el ciclo de vida del mantenimiento del host de Compute Engine:

Motivo Descripción
MaintenanceWindowScheduled Se programó un período de mantenimiento del host de Compute Engine para el nodo.
MaintenanceWindowCancelled Se despejó un período de mantenimiento del host de Compute Engine en el nodo.
MaintenanceWindowRescheduled Se trasladó el período de mantenimiento del host de Compute Engine programado anteriormente y se actualizó la hora de inicio del mantenimiento
CustomerTriggeredMaintenance El mantenimiento del host de Compute Engine se activó manualmente a través de GKE.
MaintenanceWindowStarted Se inició el mantenimiento del host de Compute Engine
TerminateOnHostMaintenance Se emite cuando Compute Engine envía el indicador de finalización (TERMINATE_ON_HOST_MAINTENANCE). Si la finalización ordenada está habilitada, GKE aísla el nodo y programa el desalojo del pod (SIGTERM). Las cargas de trabajo reciben un aviso de entre 5 y 60 minutos, según el nivel de la máquina.
PodEvictionComplete Todos los Pods se desalojaron correctamente del nodo
MaintenanceWindowCleared Se completó el mantenimiento del host de Compute Engine y el nodo volvió a estar listo.

Información de la carga útil del evento

Si hay información disponible sobre eventos de mantenimiento próximos a través de Compute Engine, cada evento también incluye una carga útil que contiene datos de anotación con la siguiente información:

  • Detalles de la ventana de Compute Engine: Incluye windowStartTime, windowEndTime y latestWindowStartTime.
  • Metadatos de mantenimiento: El estado del ciclo de mantenimiento en el momento del evento, el motivo del mantenimiento (el motivo puede aparecer como SCHEDULED o UNSCHEDULED) y si se puede reprogramar la ventana de Compute Engine.
  • Metadatos de Kubernetes: Incluyen Cluster_name, nodepool_name y node_name.

Vista de las operaciones de mantenimiento del host en el panel de mantenimiento de GKE

El panel de mantenimiento de GKE proporciona una vista consolidada de las operaciones de mantenimiento del host. El panel proporciona visibilidad integral de las actividades de mantenimiento en los niveles de clúster, grupo de nodos y nodo.

El panel se basa en Estadísticas de observabilidad. Muestra los ciclos de mantenimiento, los estados de los nodos y las métricas históricas de tiempo de inactividad.

¿Qué sigue?