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


Cette page explique comment démarrer manuellement un événement de maintenance de l'hôte sur les instances Compute Engine compatibles. Cette fonctionnalité vous permet de démarrer un événement de maintenance afin de contrôler la périodicité de la maintenance de votre instance. Cela s'avère utile pour les charges de travail susceptibles d'être affectées par des performances dégradées ou des temps d'arrêt, pour lesquels vous devez que l'intervalle de maintenance commence à une heure spécifique.

Lorsque vous démarrez manuellement un événement de maintenance, la maintenance de l'hôte démarre immédiatement. Vous ne pouvez pas spécifier de date ni d'heure de début de l'événement de maintenance. Si vous n'utilisez pas cette fonctionnalité, l'événement de maintenance se produit à l'heure indiquée dans la notification de maintenance à venir.

Si vous souhaitez d'abord tester la façon dont vos applications géreront un événement de maintenance, vous pouvez simuler un événement de maintenance.

Limites

Vous pouvez démarrer manuellement un événement de maintenance de l'hôte pour les instances qui utilisent les types de machines 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 en sélectionnant l'une des options suivantes:

    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 gérer la maintenance des VM, 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 gérer la maintenance des VM. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour gérer la maintenance des VM:

  • Pour obtenir des informations sur une instance de calcul : compute.instances.get

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

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

Compute Engine envoie des notifications pour les événements de maintenance à venir via plusieurs méthodes. Grâce aux informations contenues dans les notifications, vous pouvez déterminer le moment où vous pouvez démarrer manuellement un événement de maintenance.

Consulter les informations de la notification

Pour accéder aux notifications d'événements de maintenance:

Si la notification concernant un événement de maintenance de l'hôte contient canReschedule=True et maintenanceStatus=Pending, vous avez la possibilité de démarrer la maintenance à l'heure de votre choix ou d'attendre que l'événement de maintenance ait lieu à l'heure spécifiée par windowStartTime.

Si vous ne recevez aucune notification et que vous essayez de démarrer manuellement 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.

Démarrer l'événement de maintenance

Vous pouvez démarrer la maintenance de l'hôte à l'heure de votre choix, plutôt que d'attendre l'heure programmée. Utilisez Google Cloud CLI ou REST pour déclencher l'événement de maintenance, qui démarre alors immédiatement.

gcloud

Pour démarrer un événement de maintenance, utilisez la commande compute instances perform-maintenance. La maintenance de l'hôte commence immédiatement après la saisie de la commande.

gcloud compute instances perform-maintenance INSTANCE_NAME \
    --zone=ZONE

Remplacez les éléments suivants :

  • INSTANCE_NAME: nom de l'instance de calcul.
  • ZONE: zone dans laquelle se trouve l'instance.

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, canReschedule est défini sur false et maintenanceStatus sur ONGOING, ce qui indique que l'opération de maintenance de l'hôte est en cours.

REST

Pour démarrer un événement de maintenance, envoyez une requête POST à l'aide de la méthode instances.performMaintenance.

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

Remplacez les éléments suivants :

  • PROJECT_NAME: nom du projet
  • ZONE: zone dans laquelle se trouve l'instance de calcul
  • INSTANCE_NAME: nom de l'instance

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, canReschedule est défini sur false et maintenanceStatus sur ONGOING, ce qui indique que l'opération de maintenance de l'hôte est en cours.

Étape suivante