Apprendre à configurer des intervalles et des exclusions de maintenance.

Utilisez les intervalles et les exclusions de maintenance pour contrôler à quel moment les tâches de maintenance automatique des clusters, telles que les mises à niveau automatiques, peuvent être effectuées sur vos clusters Google Kubernetes Engine (GKE), et à quel moment elles ne doivent surtout pas se produire. Avant de configurer ces règles de maintenance, veillez à vérifier quelles modifications respectent ou non les règles de maintenance de GKE.

Avant de commencer

Avant de commencer, effectuez les tâches suivantes :

  • Activez l'API Google Kubernetes Engine.
  • Activer l'API Google Kubernetes Engine
  • Si vous souhaitez utiliser Google Cloud CLI pour cette tâche, installez puis initialisez la gcloud CLI. Si vous avez déjà installé la gcloud CLI, obtenez la dernière version en exécutant la commande gcloud components update. Il est possible que les versions antérieures de la gcloud CLI ne permettent pas d'exécuter les commandes de ce document.

Configurer un intervalle de maintenance

Pour configurer un intervalle de maintenance, indiquez quand il commence, sa durée et sa fréquence de répétition. Par exemple, vous pouvez configurer un intervalle de maintenance qui se répète quatre heures par jour, du lundi au vendredi, chaque semaine.

Vous pouvez configurer un intervalle de maintenance à l'aide de la console Google Cloud ou de Google Cloud CLI.

Considérations relatives à la configuration d'un intervalle de maintenance

Lorsque vous configurez un intervalle de maintenance, suivez les instructions ci-dessous :

  • Vous devez comprendre quels types d'événements de maintenance respectent ou non les intervalles de maintenance de GKE. Pour en savoir plus, consultez les sections Maintenance automatique qui respecte les règles de maintenance de GKE et Maintenance automatique qui ne respecte pas les règles de maintenance de GKE.
  • Vous ne pouvez configurer qu'un seul intervalle de maintenance pour un cluster. La configuration d'un nouvel intervalle remplace l'intervalle précédent.
  • Vous devez prévoir une disponibilité de maintenance d'au moins 48 heures sur une période glissante de 32 jours. Seuls les intervalles de disponibilité contigus d'au moins quatre heures sont pris en compte.
  • Lorsque vous utilisez la console Google Cloud , les heures sont toujours affichées selon le fuseau horaire local.
  • Les récurrences basées sur un jour de la semaine sont toujours basées sur l'heure UTC. Par conséquent, nous vous recommandons de définir entièrement les intervalles de maintenance impliquant des récurrences en UTC, via gcloud CLI. Bien que l'heure locale puisse être utilisée dans la définition d'options, le fuseau horaire n'est pas stocké. Par exemple, si votre fuseau horaire est UTC+6 et que vous souhaitez qu'un intervalle de maintenance commence à 02:00 le mercredi dans votre fuseau horaire, spécifiez une valeur UTC de 20:00 le mardi. Pour en savoir plus, consultez la section Fuseaux horaires des intervalles de maintenance.

Configurer un intervalle de maintenance

Vous pouvez configurer un intervalle de maintenance sur un cluster existant à l'aide de la consoleGoogle Cloud ou de gcloud CLI.

gcloud

Créez ou mettez à jour un intervalle de maintenance pour un cluster existant :

gcloud container clusters update CLUSTER_NAME \
    --maintenance-window-start START_TIME \
    --maintenance-window-end END_TIME \
    --maintenance-window-recurrence RRULE

Remplacez les éléments suivants :

  • CLUSTER_NAME : nom du cluster.
  • START_TIME : date et heure auxquelles l'intervalle de maintenance récurrent est activé, exprimé sous la forme d'une valeur RFC-5545 DTSTART. Ensuite, l'intervalle de maintenance se répète en fonction de la valeur RRULE. L'élément START_TIME spécifie également l'heure de début de l'intervalle de maintenance.
  • END_TIME : heure de fin pour calculer la durée de l'intervalle de maintenance, exprimée par le temps écoulé après START_TIME, au même format. La valeur de END_TIME doit être située dans le futur par rapport à START_TIME. Cela ne calcule que la durée de la fenêtre et ne définit pas le moment où l'intervalle de maintenance cesse de se répéter. Les intervalles de maintenance ne cessent de se répéter que lorsqu'ils sont supprimés.
  • RRULE : récurrence de l'intervalle de maintenance, exprimée sous la forme d'une valeur RFC-5545 RRULE. Il s'agit d'un format flexible permettant de spécifier des règles de récurrence de différentes manières, en déterminant le jour de début de l'intervalle de maintenance. Par exemple, vous pouvez spécifier une récurrence à certains moments de la semaine ou du mois. Si la date END_TIME est ultérieure à la date START_TIME, l'intervalle de maintenance s'étend sur plusieurs jours. Par exemple, un intervalle de maintenance commençant le dimanche va se poursuivre le lundi.

Par exemple, la commande suivante modifie un cluster nommé my-cluster avec un intervalle de maintenance activé à 2h00 UTC le vendredi 23 août 2024. Cet intervalle de maintenance se répète chaque semaine, les lundis et vendredis, et se termine 30 heures plus tard. La première occurrence de l'intervalle de maintenance commence le vendredi 23 août à 2h00 et se termine le samedi 24 août à 8h. Pour en savoir plus, consultez la page concernant la mise en forme des dates et des heures.

gcloud container clusters update my-cluster \
    --maintenance-window-start 2024-08-23T02:00:00Z \
    --maintenance-window-end 2024-08-24T08:00:00Z \
    --maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=MO,FR'

Pour plus de scénarios, consultez les exemples d'intervalles de maintenance.

Console

Pour créer ou modifier un intervalle de maintenance pour un cluster existant :

  1. Accédez à la page Google Kubernetes Engine dans la console Google Cloud .

    Accéder à Google Kubernetes Engine

  2. Dans la liste des clusters, cliquez sur le nom du cluster que vous souhaitez modifier.

  3. Sous Automatisation, cliquez sur Modifier la stratégie de maintenance à côté du champ Intervalle de maintenance.

  4. Cochez la case Activer l'intervalle de maintenance.

  5. Sélectionnez l'heure de début et la durée, puis les jours de la semaine pendant lesquels l'intervalle de maintenance est activé. Pour modifier directement RRULE, sélectionnez Éditeur personnalisé.

  6. Cliquez sur Save Changes (Enregistrer les modifications).

Terminer manuellement la maintenance incomplète

Si l'intervalle de maintenance prend plus de temps à s'exécuter en raison d'une mise à niveau ou d'une autre tâche de maintenance automatique, GKE tente d'arrêter les tâches de maintenance en cours, puis de les reprendre lors de l'occurrence suivante de l'intervalle de maintenance. Si une mise à niveau automatique est annulée et si vous avez activé les mises à niveau automatiques des nœuds, vos nœuds peuvent se trouver dans une version mixte, mais votre cluster doit fonctionner normalement.

Pour mettre à jour votre cluster manuellement, annuler une mise à niveau partielle ou effectuer un rollback, consultez la page Mettre à jour un cluster manuellement.

Supprimer un intervalle de maintenance

gcloud

Supprimez un intervalle de maintenance d'un cluster :

gcloud container clusters update CLUSTER_NAME --clear-maintenance-window

Remplacez CLUSTER_NAME par le nom du cluster existant.

Console

Pour supprimer un intervalle de maintenance :

  1. Accédez à la page Google Kubernetes Engine dans la console Google Cloud .

    Accéder à Google Kubernetes Engine

  2. Dans la liste des clusters, cliquez sur le nom du cluster que vous souhaitez modifier.

  3. Sous Automatisation, cliquez sur Modifier la stratégie de maintenance à côté du champ Intervalle de maintenance.

  4. Décochez la case Activer l'intervalle de maintenance.

  5. Cliquez sur Save Changes (Enregistrer les modifications).

Exemples d'intervalles de maintenance

Les exemples suivants présentent différentes façons de configurer un intervalle de maintenance. Seules les options pertinentes sont affichées, étant donné qu'elles utilisent la même syntaxe pour créer un cluster et mettre à jour un cluster existant.

Les week-ends, à partir du 22 août 2026

Dans cet exemple, la différence entre les heures de début et de fin est de deux jours complets. L'intervalle de maintenance s'exécute donc pendant tout le week-end, sur la totalité du samedi et du dimanche. Si vous souhaitez que la fenêtre ait une durée différente de 48 heures exactement, modifiez la valeur -start pour changer le début de la fenêtre ou la valeur -end pour changer la durée totale de la fenêtre.

  --maintenance-window-start 2026-08-22T00:00:00Z \
  --maintenance-window-end 2026-08-24T00:00:00Z \
  --maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=SA'

Du lundi au vendredi, de 9h00 à 17h00 UTC-4

Cet exemple montre comment définir un intervalle de maintenance quotidien, sauf les week-ends. Cet exemple indique un fuseau horaire autre qu'UTC.

   --maintenance-window-start 2026-09-02T09:00:00-04:00 \
   --maintenance-window-end 2026-09-02T17:00:00-04:00 \
   --maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR'

Toutes les semaines à 16h00 pendant 8 heures, UTC-7

Si vous ne spécifiez pas de fuseau horaire pour --maintenance-window-start, l'heure locale est utilisée telle qu'elle est configurée dans votre compte Google Cloud . La console Google Cloud utilise toujours l'heure locale.

   --maintenance-window-start 2026-08-13T16:00:00-7:00 \
   --maintenance-window-end 2026-08-14T00:00:00-7:00 \
   --maintenance-window-recurrence 'FREQ=WEEKLY'

Les soirs en semaine

Cet exemple montre un intervalle de maintenance quotidien qui s'exécute pendant la nuit entre le fuseau horaire UTC-7. Dans cet exemple, la fenêtre s'exécute de 20h00 le soir à 4h00 le matin suivant.

   --maintenance-window-start 2026-08-15T20:00:00-7:00 \
   --maintenance-window-end 2026-08-16T04:00:00-7:00 \
   --maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH'

Configurer une exclusion de maintenance

Pour configurer une exclusion de maintenance pour votre cluster, vous devez spécifier les éléments suivants :

  • Nom : nom de l'exclusion (facultatif).
  • Heure de début : date et heure de début de la période d'exclusion. L'heure de début doit être l'heure actuelle ou une heure ultérieure.
  • Heure de fin : date et heure de fin de la période d'exclusion. Reportez-vous au tableau suivant qui présente les restrictions relatives à la durée d'une période d'exclusion pour chacun des champs d'application disponibles. Pour certains niveaux d'exclusion de maintenance, vous pouvez définir l'heure de fin pour suivre la date de fin de la compatibilité de la version mineure de votre cluster.
  • Champ d'application : champ d'application des mises à niveau automatiques à restreindre. Reportez-vous au tableau suivant qui présente les champs d'application d'exclusion disponibles.
Champ d'application Plan de contrôle Nœuds Durée maximale d'exclusion
Mise à niveau mineure automatique Mise à niveau automatique des correctifs Mise à niveau mineure automatique Mise à niveau automatique des correctifs
Aucune mise à niveau (par défaut) Non autorisé Non autorisé Non autorisé Non autorisé Ne peut pas dépasser 30 jours.
Aucune mise à niveau mineure Non autorisé Autorisé Non autorisé Autorisé Pour les clusters enregistrés dans les canaux rapide, standard ou stable, vous ne pouvez pas dépasser la fin de la période de compatibilité standard. Pour les clusters enregistrés dans le canal étendu, ne peut pas dépasser la fin de la compatibilité étendue de la version mineure. Vous pouvez configurer l'heure de fin pour suivre la fin de la période de compatibilité de la version mineure de votre cluster. L'exclusion de maintenance prend fin lorsque la version mineure du cluster atteint la fin de la période d'assistance. Pour en savoir plus, consultez Comment une exclusion de maintenance permet de suivre la fin de la période d'assistance.
Aucune mise à niveau mineure ni de mise à niveau des nœuds Non autorisé Autorisé Non autorisé Non autorisé Pour les clusters enregistrés dans les canaux rapide, standard ou stable, vous ne pouvez pas dépasser la fin de la période de compatibilité standard. Pour les clusters enregistrés dans le canal étendu, ne peut pas dépasser la fin de la compatibilité étendue de la version mineure. Vous pouvez configurer l'heure de fin pour suivre la fin de la période de compatibilité de la version mineure de votre cluster. L'exclusion de maintenance prend fin lorsque la version mineure du cluster atteint la fin de la période d'assistance. Pour en savoir plus, consultez Comment une exclusion de maintenance permet de suivre la fin de la période d'assistance.

Configurer une exclusion de maintenance

Vous pouvez créer un cluster avec une exclusion de maintenance à l'aide de la console Google Cloud , ou configurer une exclusion de maintenance pour un cluster existant à l'aide de la consoleGoogle Cloud ou de gcloud CLI.

Avec gcloud CLI, vous pouvez éventuellement configurer l'heure de fin d'une exclusion de maintenance pour suivre la date de fin du support de la version mineure de votre cluster.

Créer un cluster avec une exclusion de maintenance

Vous pouvez configurer une exclusion de maintenance lors de la création d'un cluster à l'aide de la console Google Cloud . Cette tâche ne peut pas être effectuée dans gcloud CLI.

Pour créer un cluster avec une exclusion de maintenance :

  1. Dans la console Google Cloud , accédez à la page Créer un cluster Autopilot.

    Accéder à la page "Créer un cluster Autopilot"

    Vous pouvez également effectuer cette tâche en créant un cluster Standard.

  2. Configurez votre cluster.

  3. Dans le volet de navigation, sous Cluster, cliquez sur Automatisation.

  4. Sous Exclusions de maintenance, cliquez sur Ajouter une exclusion de maintenance.

  5. Sélectionnez le champ d'application, une heure de début et une heure de fin.

  6. Cliquez sur Créer.

Vous pouvez consulter un exemple d'exclusion de maintenance pour le Black Friday.

Configurer une exclusion de maintenance pour un cluster existant

Vous pouvez configurer une exclusion de maintenance sur un cluster existant à l'aide de la consoleGoogle Cloud ou de gcloud CLI. Avec gcloud CLI, vous pouvez éventuellement configurer l'heure de fin d'une exclusion de maintenance pour suivre la date de fin de l'assistance de la version mineure de votre cluster.

gcloud

  • Heure de fin fixe : configurez une exclusion de maintenance pour un cluster existant avec une heure de fin fixe :

    gcloud container clusters update CLUSTER_NAME \
        --add-maintenance-exclusion-name EXCLUSION_NAME \
        [--add-maintenance-exclusion-start START_DATE_TIME \]
        --add-maintenance-exclusion-end END_DATE_TIME \
        --add-maintenance-exclusion-scope SCOPE
    

    Remplacez les éléments suivants :

    • CLUSTER_NAME : nom du cluster
    • EXCLUSION_NAME : nom de l'exclusion de maintenance.
    • START_DATE_TIME : vous pouvez définir la date et l'heure de début de l'exclusion à une date et une heure ultérieures. Si vous omettez cet indicateur, l'exclusion de maintenance commence immédiatement.
    • END_DATE_TIME : date et heure de fin de l'exclusion.
    • SCOPE : champ d'application de la mise à niveau à exclure, qui peut être l'une des valeurs suivantes : no_upgrades, no_minor_upgrades ou no_minor_or_node_upgrades.

    Pour afficher les formats de date et d'heure acceptés, exécutez gcloud topic datetimes.

  • Se termine à la fin de la période de compatibilité : configurez une exclusion de maintenance qui suit la date de fin de la période de compatibilité de la version mineure de votre cluster :

    gcloud container clusters update CLUSTER_NAME \
        --add-maintenance-exclusion-name EXCLUSION_NAME \
        [--add-maintenance-exclusion-start START_DATE_TIME \]
        --add-maintenance-exclusion-until-end-of-support \
        --add-maintenance-exclusion-scope SCOPE
    

Console

Pour configurer une exclusion de maintenance pour un cluster existant, procédez comme suit :

  1. Accédez à la page Google Kubernetes Engine dans la console Google Cloud .

    Accéder à Google Kubernetes Engine

  2. Dans la liste des clusters, cliquez sur le nom du cluster que vous souhaitez modifier.

  3. Sous Automatisation, à côté du champ Exclusions de maintenance, cliquez sur Modifier les exclusions de maintenance.

  4. Sous Exclusions de maintenance, cliquez sur Ajouter une exclusion de maintenance.

  5. Sélectionnez le champ d'application, une heure de début et une heure de fin.

  6. Cliquez sur Enregistrer les modifications.

Supprimer une exclusion de maintenance

Vous pouvez supprimer des exclusions de maintenance à l'aide de la console Google Cloud ou de gcloud CLI.

gcloud

Supprimez une exclusion de maintenance existante :

gcloud container clusters update CLUSTER_NAME \
    --remove-maintenance-exclusion EXCLUSION_NAME

Remplacez les éléments suivants :

  • CLUSTER_NAME : nom du cluster existant.
  • EXCLUSION_NAME : nom de l'exclusion de maintenance à supprimer.

Console

Pour supprimer une exclusion de maintenance d'un cluster existant, procédez comme suit :

  1. Accédez à la page Google Kubernetes Engine dans la console Google Cloud .

    Accéder à Google Kubernetes Engine

  2. Dans la liste des clusters, cliquez sur le nom du cluster que vous souhaitez modifier.

  3. Sous Automatisation, à côté du champ Exclusions de maintenance, cliquez sur Modifier les exclusions de maintenance.

  4. Sous Exclusions de maintenance, cliquez sur le bouton Supprimer l'élément situé à côté du champ Heure de fin pour l'exclusion que vous souhaitez supprimer.

  5. Cliquez sur Save Changes (Enregistrer les modifications).

Pour afficher toutes les exclusions de maintenance d'un cluster, vous pouvez afficher les règles de maintenance du cluster.

Exemple d'exclusion de maintenance

L'exemple suivant permet d'empêcher les tâches de maintenance pendant quatre jours, du Black Friday au Cyber Monday, durant lesquels de nombreux commerces de détail enregistrent le plus grand nombre de ventes de l'année. Cet exemple montre comment éviter un intervalle de maintenance entre le Black Friday 2021 (26 novembre 2021) et le Cyber Monday 2021 (29 novembre 2021), de minuit sur la côte est (UTC-5) à 23:59:59 sur la côte ouest (UTC-8).

gcloud container clusters update sample-cluster \
    --add-maintenance-exclusion-name black-friday \
    --add-maintenance-exclusion-start 2021-11-26T00:00:00-05:00 \
    --add-maintenance-exclusion-end 2021-11-29T23:59:59-08:00 \
    --add-maintenance-exclusion-scope no_upgrades

Afficher les règles de maintenance d'un cluster

Pour afficher les règles de maintenance d'un cluster, y compris l'intervalle de maintenance éventuel et toutes ses exclusions de maintenance, utilisez la commande suivante :

gcloud container clusters describe CLUSTER_NAME

Identifier les clusters sans intervalle de maintenance configuré

GKE identifie les clusters pour lesquels vous n'avez pas configuré de fenêtre de maintenance. Vous pouvez ainsi choisir une fenêtre récurrente dans laquelle GKE peut effectuer la maintenance des clusters. Nous vous recommandons de configurer un intervalle de maintenance pour vous assurer que GKE effectue les mises à niveau automatiques et les autres opérations de maintenance des clusters qui respectent les règles de maintenance au moment le plus opportun pour l'environnement de votre cluster.

GKE fournit ces conseils sous la forme d'un insight et d'une recommandation via le service Recommender. Pour en savoir plus sur la gestion des insights et des recommandations fournis par l'outil de recommandation, consultez Optimiser votre utilisation de GKE avec des insights et des recommandations.

Pour trouver les clusters sans période de maintenance configurée, vous pouvez utiliser l'une des méthodes suivantes :

  • Utilisez la console Google Cloud .
  • Utilisez la gcloud CLI ou l'API Recommender en spécifiant le sous-type d'outil de recommandation CLUSTER_MAINTENANCE_WINDOW_AND_EXCLUSIONS.

Pour obtenir des instructions, consultez Afficher les insights et les recommandations.

Pour mettre en œuvre cette recommandation, configurez un intervalle de maintenance.

Dépannage

Utilisez les informations suivantes pour résoudre les problèmes courants liés aux intervalles et aux exclusions de maintenance.

Intervalle de maintenance empêchant la mise à jour du nœud de se terminer

Si votre cluster ne peut pas terminer les mises à jour des nœuds, comme les mises à niveau de la version des nœuds, dans l'intervalle de maintenance programmé, cela peut ralentir le taux de mise à niveau ou retarder l'application des modifications apportées aux nœuds. Vous devrez peut-être tester votre configuration pour trouver l'équilibre optimal entre vitesse et perturbations de votre environnement. Les facteurs pouvant affecter le taux de mise à niveau sont les suivants :

La limitation du champ d'application des exclusions de maintenance ne peut s'appliquer qu'aux versions disponibles

Lorsque vous limitez le champ d'application des mises à niveau automatiques dans une exclusion de maintenance, le cluster doit être enregistré dans un canal de publication. Dans le cas contraire, vous pouvez rencontrer les erreurs suivantes :

ERROR: (gcloud.container.clusters.update) INVALID_ARGUMENT: Cannot update to
STATIC channel since following maintenancePolicy.maintenanceExclusions can only
apply to release channels. Please remove those maintenance exclusions.
ERROR: (gcloud.container.clusters.update) ResponseError: code=400,
message=MaintenancePolicy.maintenanceExclusions["no"] could not apply to cluster
in STATIC channel, only no_upgrades exclusions are allowed in STATIC channel.

Le nombre d'exclusions de maintenance dépasse la limite

Vous ne pouvez spécifier qu'un maximum de trois exclusions de maintenance qui excluent toutes les mises à niveau (c'est-à-dire définies avec le champ d'application "aucune mise à niveau"). Dans le cas contraire, vous obtenez l'erreur suivante :

ERROR: (gcloud.container.clusters.update) ResponseError: code=400,
message=Number of active maintenance exclusions exceeds limit (3).

Vous ne pouvez spécifier qu'un maximum de 20 exclusions de maintenance. Dans le cas contraire, vous obtenez l'erreur suivante :

ERROR: (gcloud.container.clusters.update) ResponseError: code=400,
message=Number of total maintenance exclusions exceeds limit (20).

Étape suivante