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 gcloud CLI. Si vous avez déjà installé gcloud CLI, assurez-vous de disposer de la dernière version en exécutant la commande
gcloud components update
.
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 Google Cloud Console 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.
Si votre cluster ne peut pas terminer les mises à niveau des nœuds dans l'intervalle de maintenance programmé, cela peut ralentir le taux de mise à niveau. 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 :
- Faible disponibilité en maintenance (par exemple, intervalles de maintenance courts).
- Grands pools de nœuds standards
- Configuration des stratégies de mise à niveau des nœuds donnant la priorité à la perturbation minimale plutôt qu'à la vitesse.
- Certains choix de configuration des pods. Pour en savoir plus, consultez la section Considérations relatives à la durée de mise à niveau des nœuds.
Créer un cluster Standard avec un intervalle de maintenance simple
Vous pouvez créer un intervalle de maintenance simple dans gcloud CLI en spécifiant l'option --maintenance-window
. Cette option vous permet de spécifier un intervalle de maintenance quotidien de quatre heures à l'aide d'un format simplifié. Pour créer un cluster Autopilot avec un intervalle de maintenance, utilisez la console Google Cloud.
Créez un cluster Standard avec un intervalle de maintenance simple :
gcloud container clusters create CLUSTER_NAME \
--maintenance-window START_TIME
Remplacez les éléments suivants :
CLUSTER_NAME
: nom de votre nouveau cluster.START_TIME
: horodatage de 24 heures au format UTC, par exemple16:00
.
L'intervalle de maintenance s'exécute chaque jour à l'heure START_TIME
spécifiée et dure quatre heures.
Créer un intervalle de maintenance personnalisé
Vous pouvez créer un intervalle de maintenance qui se produit à certains moments de la semaine ou du mois, à l'aide des paramètres supplémentaires expliqués dans cette section.
Par exemple, la commande suivante crée 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 create 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.
Créer un cluster avec un intervalle de maintenance
Vous pouvez créer un cluster Standard avec un intervalle de maintenance à l'aide de gcloud CLI ou de la console Google Cloud. Pour créer un cluster Autopilot avec un intervalle de maintenance, utilisez la console Google Cloud.
gcloud
Créez un cluster standard avec un intervalle de maintenance :
gcloud container clusters create 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 nouveau 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 valeurRRULE
. L'élémentSTART_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èsSTART_TIME
, au même format. La valeur deEND_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 dateEND_TIME
est ultérieure à la dateSTART_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.
Console
Accédez à la page Google Kubernetes Engine dans Google Cloud Console.
Cliquez sur add_box Créer.
Configurez votre cluster.
Dans le volet de navigation, sous Clusters, cliquez sur Automatisation.
Cochez la case Activer l'intervalle de maintenance.
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 la spécification de la règle de récurrence (RRULE), sélectionnez Éditeur personnalisé.
Cliquez sur Créer.
Configuration d'un intervalle de maintenance pour un cluster existant
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 nouveau 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 valeurRRULE
. L'élémentSTART_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èsSTART_TIME
, au même format. La valeur deEND_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 dateEND_TIME
est ultérieure à la dateSTART_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.
Console
Pour créer ou modifier un intervalle de maintenance pour un cluster existant :
Accédez à la page Google Kubernetes Engine dans Google Cloud Console.
Dans la liste des clusters, cliquez sur le nom du cluster que vous souhaitez modifier.
Sous Automatisation, cliquez sur edit Modifier la stratégie de maintenance à côté du champ Intervalle de maintenance.
Cochez la case Activer l'intervalle de maintenance.
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é.
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 :
Accédez à la page Google Kubernetes Engine dans Google Cloud Console.
Dans la liste des clusters, cliquez sur le nom du cluster que vous souhaitez modifier.
Sous Automatisation, cliquez sur edit Modifier la stratégie de maintenance à côté du champ Intervalle de maintenance.
Décochez la case Activer l'intervalle de maintenance.
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.
- 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.
- 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 | Description | Durée maximale d'exclusion |
---|---|---|
Aucune mise à niveau (par défaut) | Exclut toutes les mises à niveau mineures et de type correctif. Évite les interruptions de VM sur le plan de contrôle et les nœuds du cluster lors des mises à niveau. | Ne peut pas dépasser 30 jours. |
Aucune mise à niveau mineure | Exclut toutes les mises à niveau mineures. Des interruptions de VM peuvent survenir sur le plan de contrôle et les nœuds du cluster en raison de mises à niveau de correctifs. | De plus, 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. |
Aucune mise à niveau mineure ni de mise à niveau des nœuds | Exclut toutes les mises à niveau mineures et les mises à niveau de nœuds. Évite les interruptions de VM sur les nœuds du cluster lors des mises à niveau. Cependant, des perturbations peuvent survenir au niveau du plan de contrôle. | 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. |
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 :
Accédez à la page Google Kubernetes Engine dans Google Cloud Console.
Cliquez sur add_box Créer.
Configurez votre cluster.
Dans le volet de navigation, sous Cluster, cliquez sur Automatisation.
Sous Exclusions de maintenance, cliquez sur add Ajouter une exclusion de maintenance.
Sélectionnez le champ d'application, une heure de début et une heure de fin.
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 console Google Cloud ou de gcloud CLI.
gcloud
Configurer une exclusion de maintenance pour un cluster existant
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 clusterEXCLUSION_NAME
: nom de l'exclusion de maintenance.START_DATE_TIME
: date et heure de début de l'exclusion.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
ouno_minor_or_node_upgrades
.
Pour afficher les formats de date et d'heure acceptés, exécutez gcloud topic datetimes
.
Console
Pour configurer une exclusion de maintenance pour un cluster existant, procédez comme suit :
Accédez à la page Google Kubernetes Engine dans Google Cloud Console.
Dans la liste des clusters, cliquez sur le nom du cluster que vous souhaitez modifier.
Sous Automatisation, à côté du champ Exclusions de maintenance, cliquez sur edit Modifier les exclusions de maintenance.
Sous Exclusions de maintenance, cliquez sur add Ajouter une exclusion de maintenance.
Sélectionnez le champ d'application, une heure de début et une heure de fin.
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 :
Accédez à la page Google Kubernetes Engine dans Google Cloud Console.
Dans la liste des clusters, cliquez sur le nom du cluster que vous souhaitez modifier.
Sous Automatisation, à côté du champ Exclusions de maintenance, cliquez sur edit Modifier les exclusions de maintenance.
Sous Exclusions de maintenance, cliquez sur le bouton delete Supprimer l'élément situé à côté du champ Heure de fin pour l'exclusion que vous souhaitez supprimer.
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
Dépannage
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
- En savoir plus sur les mises à niveau des clusters et des nœuds
- Découvrez comment activer la mise à niveau automatique des nœuds.
- Découvrez comment recevoir des notifications de cluster.