Surveiller les événements de maintenance

Ce document explique comment afficher les opérations de maintenance de l'hôte à l'aide de la ligne de commande et du tableau de bord de maintenance GKE.

L'affichage des opérations de maintenance de l'hôte peut vous aider à limiter les interruptions de charge de travail, en particulier pour un cluster GKE de longue durée avec des charges de travail qui pourraient être perturbées en raison d'interruptions périodiques de l'infrastructure.

Pour en savoir plus sur la maintenance de l'hôte sur GKE, consultez Comprendre comment effectuer la maintenance de l'hôte sur GKE.

Surveiller les notifications de maintenance

Avant qu'une VM ne fasse l'objet d'un événement de maintenance planifié, Compute Engine envoie des notifications push à toutes ses VM. Ces notifications signalent le début de l'intervalle de maintenance Compute Engine. Lorsqu'une maintenance à venir est planifiée par la VM, mais qu'elle n'est pas active, GKE ajoute scheduled-maintenance-time au libellé du nœud.

Pour surveiller et détecter les événements de maintenance à venir, vous devez consulter les notifications de GKE et de Compute Engine.

Afficher les opérations de maintenance à venir sur Compute Engine

Compute Engine émet des notifications lorsque des événements d'hôte perturbateurs sont planifiés pour les nœuds et leurs VM sous-jacentes, et lorsque ces événements deviennent actifs. Les notifications incluent des informations sur l'heure de début prévue, le type d'événement et d'autres détails.

Afficher les opérations de maintenance à venir sur GKE

Vous pouvez surveiller les événements de maintenance à venir sur GKE pour des types de machines spécifiques. Le tableau suivant répertorie les types de machines compatibles et la version minimale de GKE requise pour chacun d'eux :

Type de machine Version GKE minimum
Types de machines avec GPU ou TPU associés 1.31.1-gke.2008000 ou versions ultérieures
Types de machines H4D 1.32.6-gke.1060000 ou versions ultérieures
c4a-highmem-96-metal 1.35.0-gke.2232000 ou versions ultérieures
Types de machines Z3 avec plus de 18 Tio de Titanium SSD 1.32.4-gke.1376000 ou versions ultérieures
Types de machines Z4D avec plus de 42 Tio de disques Titanium SSD associés 1.36.3-gke.1244000 ou version ultérieure
Types de machines Z4M avec plus de 48 Tio de disques Titanium SSD associés, ou toute instance Z4M utilisant Cloud RDMA 1.36.3-gke.1767000 ou version ultérieure

Pour afficher les événements de maintenance à venir, vous pouvez effectuer l'une des opérations suivantes :

  • Interrogez les notifications au niveau du nœud. Pour cela, exécutez la commande suivante :

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

    Le résultat ressemble à ce qui suit :

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

    La colonne SCHEDULED-MAINTENANCE-TIME représente les secondes, qui sont affichées au format d'heure epoch Unix.

  • Interrogez ces notifications au niveau des métadonnées de nœud en vérifiant les instances pour une notification d'événement de maintenance.

  • Pour les familles de machines optimisées pour les accélérateurs qui sont compatibles avec la maintenance avancée, vous pouvez accéder au point de terminaison upcoming-maintenance qui fournit des informations sur les événements de maintenance planifiés et démarrés.

Afficher les événements Kubernetes pour la maintenance de l'hôte

Dans GKE 1.35 et versions ultérieures, des événements Kubernetes qui suivent le cycle de vie de la maintenance de l'hôte sont émis. Ces événements Kubernetes offrent une visibilité précise sur les fenêtres Compute Engine planifiées, les opérations en cours et les cas particuliers tels que les réparations ou les annulations, ce qui vous permet de surveiller les interruptions directement dans l'environnement Kubernetes.

Vous pouvez afficher ces événements à l'aide des outils Kubernetes standards ou de Cloud Logging :

  1. Pour afficher les événements de maintenance récents, utilisez la commande kubectl suivante :

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

    Les événements Kubernetes sont conservés dans le cluster pendant 60 minutes. Par conséquent, cette commande ne génère que les événements récents par nœud.

  2. Pour afficher les événements dans Cloud Logging, procédez comme suit :

    1. Accédez à la page Explorateur de journaux dans la console Cloud de Confiance  :

      Accéder à l'explorateur de journaux

    2. Utilisez la requête suivante :

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

Événements de cycle de vie de maintenance

Les événements de cycle de vie de maintenance sont émis sur les ressources de nœud Kubernetes. Le tableau suivant décrit les événements émis par GKE pendant le cycle de vie de la maintenance de l'hôte Compute Engine :

Motif Description
MaintenanceWindowScheduled Un intervalle de maintenance de l'hôte Compute Engine a été planifié pour le nœud
MaintenanceWindowCancelled Un intervalle de maintenance de l'hôte Compute Engine a été effacé sur le nœud
MaintenanceWindowRescheduled L'intervalle de maintenance de l'hôte Compute Engine précédemment planifié a été déplacé et l'heure de début de la maintenance a été mise à jour
CustomerTriggeredMaintenance La maintenance de l'hôte Compute Engine a été déclenchée manuellement via GKE
MaintenanceWindowStarted La maintenance de l'hôte Compute Engine a commencé
TerminateOnHostMaintenance Émis lorsque Compute Engine envoie le signal d'arrêt (TERMINATE_ON_HOST_MAINTENANCE). Si l'arrêt progressif est activé, GKE isole le nœud et planifie l'éviction des pods (SIGTERM). Les charges de travail reçoivent un préavis de 5 à 60 minutes, selon le niveau de la machine.
PodEvictionComplete Tous les pods ont bien été expulsés du nœud
MaintenanceWindowCleared La maintenance de l'hôte Compute Engine est terminée et le nœud est de nouveau prêt.

Informations sur la charge utile de l'événement

Si des informations sur un événement de maintenance à venir sont disponibles via Compute Engine, chaque événement inclut également une charge utile contenant des données d'annotation avec les informations suivantes :

  • Détails de la fenêtre Compute Engine : inclut windowStartTime, windowEndTime et latestWindowStartTime.
  • Métadonnées de maintenance : état du cycle de maintenance au moment de l'événement, motif de la maintenance (le motif peut être indiqué comme SCHEDULED ou UNSCHEDULED) et possibilité de reprogrammer l'intervalle Compute Engine.
  • Métadonnées Kubernetes : inclut Cluster_name, nodepool_name et node_name.

Vue des opérations de maintenance de l'hôte dans le tableau de bord de maintenance GKE

Le tableau de bord de maintenance GKE fournit une vue consolidée des opérations de maintenance des hôtes. Le tableau de bord offre une visibilité complète sur les activités de maintenance au niveau du cluster, du pool de nœuds et des nœuds.

Le tableau de bord est basé sur Analyse de l'observabilité. Il affiche les cycles de maintenance, l'état des nœuds et l'historique des métriques d'indisponibilité.

Étapes suivantes