Cette page explique comment utiliser les intervalles de maintenance et les exclusions de maintenance qui permettent de 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).
Avant de commencer
Avant de commencer, effectuez les tâches suivantes :
- Assurez-vous d'avoir activé l'API Google Kubernetes Engine. Activer l'API Google Kubernetes Engine
- Assurez-vous d'avoir installé le SDK Cloud.
Configurez les paramètres gcloud
par défaut à l'aide de l'une des méthodes suivantes :
- Utilisez
gcloud init
pour suivre les instructions permettant de définir les paramètres par défaut. - Utilisez
gcloud config
pour définir individuellement l'ID, la zone et la région de votre projet.
Utiliser gcloud init
Si le message d'erreur One of [--zone, --region] must be supplied: Please specify
location
s'affiche, effectuez les tâches ci-dessous.
-
Exécutez
gcloud init
et suivez les instructions :gcloud init
Si vous utilisez SSH sur un serveur distant, utilisez l'option
--console-only
pour empêcher la commande d'ouvrir un navigateur :gcloud init --console-only
- Suivez les instructions pour autoriser
gcloud
à utiliser votre compte Google Cloud. - Créez ou sélectionnez une configuration.
- Choisissez un projet Google Cloud.
- Choisissez une zone Compute Engine par défaut pour les clusters zonaux ou une région pour les clusters régionaux ou Autopilot.
Utiliser gcloud config
- Définissez votre ID de projet par défaut :
gcloud config set project PROJECT_ID
- Si vous utilisez des clusters zonaux, définissez votre zone de calcul par défaut :
gcloud config set compute/zone COMPUTE_ZONE
- Si vous utilisez des clusters Autopilot ou régionaux, définissez votre région de calcul par défaut :
gcloud config set compute/region COMPUTE_REGION
- Mettez à jour
gcloud
vers la dernière version :gcloud components update
Configurer un intervalle de maintenance
Pour configurer un intervalle de maintenance, vous devez définir son heure de début, 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 chaque semaine du lundi au vendredi.
Vous pouvez configurer un intervalle de maintenance à l'aide de Google Cloud Console ou de la commande gcloud
.
Créer un cluster avec un intervalle de maintenance simple
Vous pouvez créer un intervalle de maintenance simple dans gcloud
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 avec un intervalle de maintenance simple, exécutez la commande suivante :
gcloud container clusters create cluster-name \
--maintenance-window start-time
où :
- cluster-name est le nom du nouveau cluster.
- start-time est défini sur un horodatage de 24 heures en temps UTC, par exemple
16:00
.
L'intervalle de maintenance s'exécute chaque jour à l'heure start-time spécifiée et dure quatre heures.
Créer un cluster avec un intervalle de maintenance
Vous pouvez créer un cluster avec un intervalle de maintenance à l'aide de l'outil gcloud
ou de la console Google Cloud.
gcloud
Pour créer un cluster avec un intervalle de maintenance simple, exécutez la commande suivante :
gcloud container clusters create cluster-name \
--maintenance-window-start start-time \
--maintenance-window-end end-time \
--maintenance-window-recurrence rrule
où :
- cluster-name est le nom du nouveau cluster.
- start-time est une expression DTSTART RFC-5545.
- end-time est défini au même format que start-time, mais sert uniquement à calculer la durée de l'intervalle de maintenance. La valeur de end-time doit être située dans le futur par rapport à start-time.
- rrule est une expression RRULE RFC-5545. Il s'agit d'un format extrêmement flexible permettant de spécifier des règles de récurrence de différentes manières.
Par exemple, la commande suivante crée un cluster nommé my-cluster
avec un intervalle de maintenance qui commence à 2h00 UTC le 1er août 2019, se termine quatre heures plus tard et s'exécute tous les jours. 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 2019-08-01T02:00:00Z \
--maintenance-window-end 2019-08-01T06:00:00Z \
--maintenance-window-recurrence FREQ=DAILY
Console
Accédez au menu Google Kubernetes Engine de Cloud Console.
Cliquez sur add_box Créer.
Configurez le cluster selon vos besoins.
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 Create (Créer).
Configuration d'un intervalle de maintenance pour un cluster existant
gcloud
Pour créer ou mettre à jour un intervalle de maintenance pour un cluster existant, exécutez la commande suivante :
gcloud container clusters update cluster-name \
--maintenance-window-start start-time \
--maintenance-window-end end-time \
--maintenance-window-recurrence rrule
où :
- cluster-name est le nom du cluster existant.
- start-time est une expression DTSTART RFC-5545.
- end-time est défini au même format que start-time, mais sert uniquement à calculer la durée de l'intervalle de maintenance. La valeur de end-time doit être située dans le futur par rapport à start-time.
- rrule est une expression RRULE RFC-5545. Il s'agit d'un format extrêmement flexible permettant de spécifier des règles de récurrence de différentes manières.
Console
Pour créer ou modifier un intervalle de maintenance pour un cluster existant :
Accédez au menu Google Kubernetes Engine de 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).
Finaliser manuellement une tâche de 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.
Suppression d'un intervalle de maintenance
gcloud
Pour supprimer un intervalle de maintenance d'un cluster, exécutez la commande suivante :
gcloud container clusters update cluster-name --clear-maintenance-window
où cluster-name est le nom du cluster existant.
Console
Pour supprimer un intervalle de maintenance :
Accédez au menu Google Kubernetes Engine de 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.
- Toutes les semaines, les mardis et mercredis, à partir du 27 août 2019, la journée entière
Dans cet exemple, la différence entre les heures de début et de fin correspond à une journée entière. L'intervalle de maintenance s'exécute donc pendant 24 heures les mardis et les mercredis.
--maintenance-window-start 2019-08-27T00:00:00Z \ --maintenance-window-end 2019-08-28T00:00:00Z \ --maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=TU,WE'
- 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 2019-09-02T09:00:00-04:00 \ --maintenance-window-end 2019-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. Google Cloud Console utilise toujours l'heure locale.--maintenance-window-start 2019-08-13T16:00:00-7:00 \ --maintenance-window-end 2019-08-14T00:00:00-7:00 \ --maintenance-window-recurrence FREQ=WEEKLY
Configurer une exclusion de maintenance
Pour configurer une exclusion de maintenance, vous devez définir son nom (facultatif), ainsi que ses heures de début et de fin. L'exclusion de maintenance peut s'étendre sur plusieurs jours.
L'exclusion de maintenance doit prévoir une disponibilité de maintenance de 48 heures sur une période glissante de 32 jours. La durée de vos intervalles de maintenance affecte directement l'exclusion de maintenance maximale et peut être calculée à l'aide de la formule suivante :
maximum maintenance exclusion (days) = 32-day rolling window - 48 hours maintenance availability / maintenance window hours per day
Par exemple, si votre intervalle de maintenance normal dure 4 heures, votre exclusion de maintenance maximale est de 20 jours (32 - 48/4 = 20).
Vous pouvez configurer jusqu'à trois exclusions de maintenance à la fois sur un cluster. Vous pouvez les supprimer manuellement, qu'elles aient eu lieu ou non.
Vous pouvez configurer une exclusion de maintenance à l'aide de Google Cloud Console ou de la commande gcloud
.
Créer un cluster avec une exclusion de maintenance
Pour créer un cluster avec une exclusion de maintenance :
Accédez au menu Google Kubernetes Engine de Cloud Console.
Cliquez sur add_box Créer.
Configurez le cluster selon vos besoins.
Dans le volet de navigation, sous Cluster, cliquez sur Automatisation.
Sous Exclusions de maintenance, cliquez sur add Ajouter une exclusion de maintenance.
Sélectionnez une heure de début et une heure de fin.
Cliquez sur Create (Créer).
Vous pouvez consulter un exemple d'exclusion de maintenance pour le Black Friday.
Configurer une exclusion de maintenance pour un cluster existant
gcloud
Pour configurer une exclusion de maintenance pour un cluster existant, exécutez la commande suivante :
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
Remplacez l'élément suivant :
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.
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 au menu Google Kubernetes Engine de 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 une heure de début et une heure de fin.
Cliquez sur Save Changes (Enregistrer les modifications).
Supprimer une exclusion de maintenance
Un cluster peut contenir jusqu'à trois exclusions de maintenance actives et non écoulées à tout moment.
gcloud
Pour supprimer une exclusion de maintenance existante, exécutez la commande suivante :
gcloud container clusters update cluster-name \
--remove-maintenance-exclusion exclusion-name
où :
- cluster-name est le nom du cluster existant.
- exclusion-name est le nom de l'exclusion de maintenance à supprimer.
Console
Pour supprimer une exclusion de maintenance d'un cluster existant, procédez comme suit :
Accédez au menu Google Kubernetes Engine de 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 2019 (29 novembre 2019) et le Cyber Monday 2019 (2 décembre 2019), de minuit sur la côte est (UTC-5) à 23:59:59 sur la côte ouest (UTC-7).
gcloud container clusters update sample-cluster \
--add-maintenance-exclusion-name black-friday \
--add-maintenance-exclusion-start 2019-11-29T00:00:00-05:00 \
--add-maintenance-exclusion-end 2019-12-02T23:59:59-07:00
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
Étape suivante
- En savoir plus sur les mises à niveau des clusters et des nœuds
- Activer la mise à niveau automatique des nœuds
- Mettre à jour un cluster manuellement