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-timeLe 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-TIMErepré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-maintenancequi 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 :
Pour afficher les événements de maintenance récents, utilisez la commande
kubectlsuivante :kubectl get events -n kube-system --field-selector involvedObject.kind=NodeLes é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.
Pour afficher les événements dans Cloud Logging, procédez comme suit :
Accédez à la page Explorateur de journaux dans la console Cloud de Confiance :
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,windowEndTimeetlatestWindowStartTime. - 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
SCHEDULEDouUNSCHEDULED) 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
- Découvrez comment gérer les perturbations des nœuds pendant la maintenance de l'hôte.
- Découvrez comment effectuer la maintenance de l'hôte pour les nœuds exécutant des charges de travail d'accélérateur.
- En savoir plus sur les intervalles et exclusions de maintenance GKE