Surveiller et planifier un événement de maintenance de l'hôte


La maintenance de toutes les instances de machine virtuelle (VM) est déterminée par la stratégie de maintenance de l'hôte que vous sélectionnez lors de la création de vos VM. Certaines VM offrent la possibilité supplémentaire d'afficher le calendrier de maintenance de la VM à l'avance.

Cette page explique comment surveiller et planifier un événement de maintenance de l'hôte sur les VM Compute Engine. Pour afficher le calendrier de maintenance d'une VM, celle-ci doit exécuter un type de machine à partir de l'une des familles de machines suivantes :

  • VM C3 à usage général
  • VM C3D à usage général
  • VM Z3 optimisées pour le stockage
  • VM à mémoire optimisée M1, M2, M3

Avant de commencer

  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud. Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :

    Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :

    Console

    Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.

    gcloud

    1. Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init
    2. Définissez une région et une zone par défaut.

    REST

    Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.

      Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init

Rôles requis

Pour obtenir les autorisations nécessaires pour créer des VM et gérer leur maintenance, demandez à votre administrateur de vous accorder le rôle IAM Administrateur d'instances Compute (v1) (roles/compute.instanceAdmin.v1) sur le projet. Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

Ce rôle prédéfini contient les autorisations requises pour créer des VM et gérer leur maintenance. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour créer des VM et gérer leur maintenance :

  • Pour obtenir des informations sur une VM : compute.instances.get
  • Pour créer une VM, procédez comme suit : compute.instances.create

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Surveiller les notifications de maintenance

Google envoie des notifications pour les opérations de maintenance à venir sur les VM via plusieurs méthodes. Vous pouvez trouver vos notifications en interrogeant vos VM, le serveur de métadonnées ou Cloud Logging. Lorsque l'intervalle de maintenance programmé s'ouvre, Google Cloud effectue automatiquement la maintenance de votre VM. En surveillant les intervalles de maintenance programmés de votre VM, vous pouvez préparer vos charges de travail de manière proactive pour gérer les opérations de maintenance à venir avec un minimum d'interruption.

Les VM avec des notifications d'événements de maintenance présentent les caractéristiques suivantes :

  • Moins d'événements de maintenance : en général, les VM avec des intervalles de maintenance récurrents devraient rencontrer moins d'événements de maintenance.
  • Notification de maintenance plus longue : recevez des notifications bien à l'avance pour les événements de maintenance planifiés afin de pouvoir vous organiser.
  • Surveillance et planification : utilisez Cloud Logging pour suivre votre calendrier de maintenance. Restez informé grâce aux incidents et aux alertes.
  • Contrôle de maintenance à la demande : démarrez la maintenance pendant la période de notification pour mettre à jour vos VM selon votre planning.

Vérifier les VM pour une notification d'événement de maintenance

Utilisez Google Cloud CLI, la méthode REST ou le serveur de métadonnées pour voir s'il y a un événement de maintenance de VM à venir.

gcloud

Pour afficher l'intervalle de maintenance à venir pour une VM, utilisez la commande gcloud compute instances describe. Vous devez inclure le --zone=[ZONE_NAME].

gcloud compute instances describe VM_NAME \
  --zone=ZONE

Remplacez les éléments suivants :

  • VM_NAME : nom de la VM.
  • ZONE : zone où se trouve la VM.

La réponse est semblable à ce qui suit :

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

Dans cette réponse, canReschedule est défini sur True, et maintenanceStatus sur PENDING. La maintenance est planifiée à la date et à l'heure affichées. Ces paramètres indiquent que vous pouvez déclencher manuellement cet événement à l'avance.

REST

Pour savoir si une VM doit subir une opération de maintenance, exécutez la commande instances.get :

GET http://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/VM_NAME

Remplacez les éléments suivants :

  • PROJECT_NAME : nom du projet.
  • ZONE : zone où se trouve la VM.
  • VM_NAME : nom de la VM.

La réponse est semblable à ce qui suit :

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

Dans cette réponse, canReschedule est défini sur TRUE, et maintenanceStatus sur PENDING. La maintenance est planifiée à la date et à l'heure affichées.

Serveur de métadonnées

À partir du système d'exploitation invité, interrogez le serveur de métadonnées pour afficher le prochain événement de maintenance.

$ curl http://metadata.google.internal/computeMetadata/v1/instance/upcoming-maintenance?alt=json -H "Metadata-Flavor: Google"

Rechercher une notification d'événement de maintenance dans Cloud Logging

Google envoie une notification à Cloud Logging avant la maintenance de la VM. Cloud Logging génère un événement système dans l'explorateur de journaux. La maintenance planifiée de la VM apparaît dans Cloud Logging sous la forme : compute.instances.upcomingMaintenance.

Selon la configuration de votre VM, Cloud Logging affiche l'événement de la manière suivante :

  • Pour les VM configurées pour utiliser la migration à chaud pour la maintenance, l'événement s'affiche avec le nom de la méthode : compute.instances.migrateOnHostMaintenance.
  • Pour les VM configurées pour utiliser l'option "Interrompre" et "Redémarrer automatiquement" à des fins de maintenance, l'événement s'affiche avec le nom de la méthode : compute.instances.terminateOnHostMaintenance.

Si votre VM est configurée pour utiliser la migration à chaud, une fois la maintenance terminée, compute.instances.upcomingMaintenance s'affiche, indiquant que la notification a été supprimée.

Vous pouvez configurer des alertes pour recevoir des notifications de maintenance. Pour en savoir plus, consultez les pages Configurer des alertes basées sur les journaux et Créer et gérer des canaux de notification.

Définitions des états de maintenance

Les définitions d'état suivantes permettent de comprendre les réponses fournies à une requête de maintenance de VM. Elles fournissent des informations sur la maintenance de VM. Google Cloud CLI, REST et le serveur de métadonnées utilisent ces mêmes réponses :

  • windowStartTime : début de la période au cours de laquelle la maintenance est effectuée
  • windowEndTime : fin de la période au cours de laquelle la maintenance est effectuée.
  • latestWindowStartTime : heure la plus ancienne vers laquelle la période peut être déplacée
  • maintenanceType : type de maintenance à effectuer.
    • NONE : aucune maintenance n'est programmée pour cette VM.
    • SCHEDULED : la maintenance sera notifiée 7 jours avant.
    • UNSCHEDULED : la maintenance inclut des mises à jour critiques qui ne sont pas annoncées aussi longtemps à l'avance.
  • canReschedule : indique si la maintenance peut être déclenchée pendant la période de notification pour cette VM.
    • TRUE : la maintenance déclenchée par le client peut être effectuée pendant la période de notification.
    • FALSE : la maintenance déclenchée par le client ne peut pas être effectuée sur cette VM. Cela se produit souvent pendant la période de maintenance de la VM.
  • maintenanceStatus : état de l'opération de maintenance actuelle
    • ONGOING : l'opération de maintenance est en cours
    • PENDING : l'opération de maintenance est planifiée, mais n'a pas encore commencé.

Comportements des états de maintenance

Lorsque vous gérez le calendrier de maintenance, vérifiez l'état de canReschedule= et maintenanceStatus=. Ces combinaisons de réponses décrivent le comportement attendu des fonctionnalités et affichent l'une des combinaisons d'état suivantes :

  • Si les valeurs sont canReschedule=Yes et maintenanceStatus=Pending, vous pouvez déclencher la maintenance sur la VM.
  • Si les valeurs sont canReschedule=No et maintenanceStatus=Ongoing, la maintenance est déjà en cours.
  • Si canReschedule=No et maintenanceStatus=Pending, votre VM n'est pas compatible avec les opérations de maintenance déclenchées manuellement.

Étapes suivantes