Déclencher un événement de maintenance de l'hôte


Cette page explique comment déclencher un événement de maintenance de l'hôte sur des instances de famille de VM spécifiques. Cette fonctionnalité vous permet de démarrer manuellement un événement de maintenance afin de contrôler la périodicité de la maintenance de votre VM. Cela s'avère utile pour les charges de travail susceptibles d'être affectées par un intervalle de maintenance spécifique.

Vous pouvez déclencher manuellement un événement de maintenance afin qu'il démarre immédiatement. Il n'est pas possible de déclencher un événement à une date ou à une heure spécifique. Si vous n'utilisez pas cette fonctionnalité, l'événement de maintenance se produit selon ce qui a été planifié.

Limites

Le déclenchement d'un événement de maintenance de l'hôte d'une VM est limité aux types de machines de VM suivants :

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 :

    Select the tab for how you plan to use the samples on this page:

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. 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.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud.

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 page Gérer l'accès aux projets, aux dossiers et aux organisations.

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.

Déclencher un événement de maintenance de l'hôte

Google envoie des notifications pour les opérations de maintenance de VM à venir via différentes méthodes. Vous pouvez accéder à vos notifications en interrogeant vos VM, le serveur de métadonnées ou Cloud Logging.

Après avoir reçu une notification concernant un événement de maintenance de l'hôte, vous avez la possibilité de déclencher la maintenance immédiatement ou d'attendre que l'événement de maintenance ait lieu comme cela a été planifié.

Démarrer l'événement de maintenance

Vous pouvez démarrer la maintenance de VM immédiatement, plutôt que d'attendre l'horodatage programmé. Utilisez Google Cloud CLI ou la méthode REST pour déclencher immédiatement la maintenance de la VM.

Si vous ne recevez aucune notification et que vous essayez de déclencher un événement de maintenance, le message suivant s'affiche :

There is no reschedulable upcoming maintenance.

Cela indique qu'aucun événement de maintenance n'a été planifié et qu'aucune action n'est censée être entreprise.

gcloud

Pour démarrer la maintenance immédiatement, utilisez la commande gcloud compute instances perform-maintenance. Vous devez inclure l'option --zone=[ZONE_NAME].

gcloud compute instances perform-maintenance 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":false
  "latestWindowStartTime": "2023-12-01T19:00:01Z"
  "maintenanceStatus":"ONGOING"
  "type":"SCHEDULED"
  "windowEndTime": "2023-12-01T22:00:00Z"
  "windowStartTime": "2023-12-01T19:00:00Z"
}

Dans la réponse, maintenanceStatus est défini sur ONGOING. Cela signifie que l"opération de maintenance est en cours.

REST

Pour déclencher la maintenance de VM, exécutez la commande instances.performMaintenance :

POST: https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/VM_NAME/performMaintenance

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":false
  "latestWindowStartTime": "2023-12-01T19:00:01Z"
  "maintenanceStatus":"ONGOING"
  "type":"SCHEDULED"
  "windowEndTime": "2023-12-01T22:00:00Z"
  "windowStartTime": "2023-12-01T19:00:00Z"
}

Dans la réponse, maintenanceStatus est défini sur ONGOING. Cela signifie que l"opération de maintenance est en cours.

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