Cette page vous explique comment configurer la mise à niveau automatique de nœuds dans Google Kubernetes Engine (GKE).
Présentation
Les mises à niveau automatiques des nœuds vous permettent de maintenir les nœuds de votre cluster à jour avec
la révision du plan de contrôle du cluster en cas de mise à jour du plan de contrôle
en votre nom.
Lorsque vous créez un cluster ou un pool de nœuds à l'aide de la Cloud de Confiance console ou
de la commande gcloud, la mise à niveau automatique des nœuds est activée par défaut.
Pour en savoir plus, consultez la page concernant les mises à niveau des clusters et des nœuds.
Les mises à niveau automatiques des nœuds offrent plusieurs avantages :
- Réduction des frais de gestion : vous n'avez pas besoin de suivre ni de mettre à jour manuellement vos nœuds lorsque le plan de contrôle est mis à niveau en votre nom.
- Sécurité améliorée : il arrive que de nouveaux binaires soient publiés pour résoudre un problème de sécurité. Grâce aux mises à niveau automatiques, GKE s'assure de lui-même que les mises à jour de sécurité les plus récentes sont appliquées.
- Facilité d'utilisation : fournit un moyen simple de maintenir les nœuds à jour avec les dernières fonctionnalités de Kubernetes.
Les pools de nœuds pour lesquels les mises à niveau automatiques sont activées bénéficient d'une planification des mises à niveau lorsqu'ils répondent aux critères de sélection (annoncés dans les notes de version). Les déploiements sont échelonnés sur plusieurs semaines afin de garantir la stabilité du cluster et de l'ensemble des appareils. Lorsque la mise à niveau est effectuée, les nœuds sont drainés et recréés de façon à correspondre à la version actuelle du plan de contrôle. Les modifications sur les disques de démarrage des VM de nœuds ne persistent pas lors de la recréation de nœuds. Si vous souhaitez conserver les modifications lors de la recréation des nœuds, utilisez un DaemonSet.
La mise à niveau automatique des nœuds n'est pas disponible pour les clusters alpha. Si vous utilisez un cluster avec des pools de nœuds Windows Server, consultez la page Mettre à niveau les pools de nœuds Windows Server avant d'activer la mise à niveau automatique des nœuds.
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 la Google Cloud CLI pour cette tâche, installez et 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.
- Assurez-vous de disposer d'un cluster standard existant. Lorsque vous créez un cluster à l'aide de la Cloud de Confiance console ou de la commande Google Cloud CLI, la mise à niveau automatique des nœuds est activée par défaut. Pour créer un cluster standard, consultez la page Créer un cluster régional.
Vérifier l'état de la mise à niveau automatique des nœuds pour un pool de nœuds existant
Vous pouvez vérifier si la mise à niveau automatique est activée ou désactivée pour un pool de nœuds à l'aide de
la Cloud de Confiance console ou de la gcloud commande.
gcloud
Pour vérifier l'état de la mise à niveau automatique d'un pool de nœuds, exécutez la commande suivante :
gcloud container node-pools describe NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location CONTROL_PLANE_LOCATION
Remplacez l'élément suivant :
NODE_POOL_NAME: nom du pool de nœuds.CLUSTER_NAME: nom du cluster contenant le pool de nœuds.CONTROL_PLANE_LOCATION: emplacement Compute Engine du plan de contrôle de votre cluster. Indiquez une région pour les clusters régionaux ou une zone pour les clusters zonaux.
Recherchez le champ autoUpgrade dans la sortie pour voir si les mises à niveau automatiques sont activées ou désactivées pour le pool de nœuds.
management:
autoUpgrade: true
Console
Pour vérifier l'état de la mise à niveau automatique d'un pool de nœuds, procédez comme suit :
Accédez à la page Google Kubernetes Engine dans la Cloud de Confiance console.
Dans la liste des clusters, cliquez sur le nom du cluster que vous souhaitez afficher.
Cliquez sur l'onglet Nœuds.
Sous Pools de nœuds, cliquez sur le nom du pool de nœuds à afficher.
Sur la page Détails du pool de nœuds, sous Gestion, affichez la valeur du champ Mise à niveau automatique.
Activer les mises à niveau automatiques des nœuds pour un pool de nœuds existant
Lorsque vous créez un cluster à l'aide de la Cloud de Confiance console ou de la gcloud commande,
la mise à niveau automatique des nœuds est activée par défaut.
Vous pouvez activer la mise à niveau automatique des nœuds si elle est actuellement désactivée.
gcloud
Pour activer la mise à niveau automatique d'un pool de nœuds existant, exécutez la commande suivante :
gcloud container node-pools update NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location CONTROL_PLANE_LOCATION \
--enable-autoupgrade
Remplacez l'élément suivant :
NODE_POOL_NAME: nom du pool de nœuds.CLUSTER_NAME: nom du cluster contenant le pool de nœuds.CONTROL_PLANE_LOCATION: emplacement Compute Engine du plan de contrôle de votre cluster. Indiquez une région pour les clusters régionaux ou une zone pour les clusters zonaux.
Console
Pour activer la mise à niveau automatique d'un pool de nœuds existant, procédez comme suit :
Accédez à la page Google Kubernetes Engine dans la Cloud de Confiance console.
Dans la liste des clusters, cliquez sur le nom du cluster que vous souhaitez modifier.
Cliquez sur l'onglet Nœuds.
Sous Pools de nœuds, cliquez sur le nom du pool de nœuds que vous souhaitez modifier.
Sur la page Détails du pool de nœuds, cliquez sur edit Modifier.
Sous Gestion, cochez la case Activer la mise à niveau automatique.
Cliquez sur Enregistrer.
Pour mieux contrôler le moment où la mise à niveau automatique des nœuds a lieu, vous pouvez envisager de configurer des intervalles de maintenance et des exclusions.
Vérifier l'état des mises à niveau des nœuds
Vous pouvez vérifier l'état d'une mise à niveau à l'aide de gcloud container operations.
Affichez la liste de toutes les opérations en cours et terminées dans le cluster au cours des 12 derniers jours s'il y a moins de 5 000 opérations, ou les 5 000 dernières opérations :
gcloud container operations list \
--location=CONTROL_PLANE_LOCATION
Chaque opération se voit attribuer un ID d'opération et un type d'opération, ainsi que des heures de début et de fin, un cluster cible et un état. Cette liste se présente comme dans l'exemple suivant :
NAME TYPE ZONE TARGET STATUS_MESSAGE STATUS START_TIME END_TIME
operation-1505407677851-8039e369 CREATE_CLUSTER us-west1-a my-cluster DONE 20xx-xx-xxT16:47:57.851933021Z 20xx-xx-xxT16:50:52.898305883Z
operation-1505500805136-e7c64af4 UPGRADE_CLUSTER us-west1-a my-cluster DONE 20xx-xx-xxT18:40:05.136739989Z 20xx-xx-xxT18:41:09.321483832Z
operation-1505500913918-5802c989 DELETE_CLUSTER us-west1-a my-cluster DONE 20xx-xx-xxT18:41:53.918825764Z 20xx-xx-xxT18:43:48.639506814Z
Pour obtenir plus d'informations sur une opération déterminée, spécifiez l'ID de cette opération, comme indiqué dans la commande suivante :
gcloud container operations describe OPERATION_ID \
--location=CONTROL_PLANE_LOCATION
Exemple :
gcloud container operations describe operation-1507325726639-981f0ed6
endTime: '20xx-xx-xxT21:40:05.324124385Z'
name: operation-1507325726639-981f0ed6
operationType: UPGRADE_CLUSTER
selfLink: https://container.googleapis.com/v1/projects/.../kubernetes-engine/docs/zones/us-central1-a/operations/operation-1507325726639-981f0ed6
startTime: '20xx-xx-xxT21:35:26.639453776Z'
status: DONE
targetLink: https://container.googleapis.com/v1/projects/.../kubernetes-engine/docs/zones/us-central1-a/clusters/...
zone: us-central1-a
Si la mise à niveau a été annulée ou a échoué et qu'elle est partiellement terminée, vous pouvez la reprendre ou effectuer un rollback.
Vérifier les paramètres de mise à niveau du pool de nœuds
Vous pouvez afficher les détails de la stratégie de mise à niveau du pool de nœuds utilisée pour vos pools de nœuds à l'aide de la commande gcloud container node-pools
describe. Pour les mises à niveau bleu-vert, la commande renvoie également la phase actuelle de la mise à niveau.
Exécutez la commande ci-dessous.
gcloud container node-pools describe NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION
Remplacez les éléments suivants :
NODE_POOL_NAME: nom du pool de nœuds à décrire.CLUSTER_NAME: nom du cluster du pool de nœuds à décrire.CONTROL_PLANE_LOCATION: emplacement (région ou zone) du plan de contrôle, tel queus-central1ouus-central1-a.
Cette commande génère les paramètres de mise à niveau actuels. L'exemple suivant montre le résultat si vous utilisez la stratégie de mise à niveau bleu-vert.
upgradeSettings:
blueGreenSettings:
nodePoolSoakDuration: 1800s
standardRolloutPolicy:
batchNodeCount: 1
batchSoakDuration: 10s
strategy: BLUE_GREEN
Si vous utilisez la stratégie de mise à niveau bleu-vert, le résultat inclut également des détails sur les paramètres de mise à niveau bleu-vert et sa phase intermédiaire actuelle. L'exemple suivant montre comment cela se présente :
updateInfo:
blueGreenInfo:
blueInstanceGroupUrls:
- https://www.googleapis.com/compute/v1/projects/{PROJECT_ID}/zones/{LOCATION}/instanceGroupManagers/{BLUE_INSTANCE_GROUP_NAME}
bluePoolDeletionStartTime: {BLUE_POOL_DELETION_TIME}
greenInstanceGroupUrls:
- https://www.googleapis.com/compute/v1/projects/{PROJECT_ID}/zones/{LOCATION}/instanceGroupManagers/{GREEN_INSTANCE_GROUP_NAME}
greenPoolVersion: {GREEN_POOL_VERSION}
phase: DRAINING_BLUE_POOL
Désactiver les mises à niveau automatiques des nœuds
Bien que cette pratique ne soit pas recommandée, vous pouvez désactiver la mise à niveau automatique des nœuds pour un pool de nœuds existant si le cluster sous-jacent n'est pas enregistré dans un canal de publication.
Éléments à prendre en compte avant de désactiver les mises à niveau automatiques des nœuds
Si vous désactivez les mises à niveau automatiques des nœuds pour un pool de nœuds, GKE ne met pas à jour la version des nœuds. La désactivation des mises à niveau automatiques des nœuds n'empêche pas GKE de mettre à niveau le plan de contrôle de votre cluster.
La désactivation empêche les mises à jour de version, mais pas toutes les tâches de maintenance
La désactivation des mises à niveau automatiques des nœuds empêche uniquement GKE de mettre à jour la version des nœuds, mais n'empêche pas GKE de lancer d'autres tâches de maintenance. Par exemple, même lorsque les mises à niveau automatiques des nœuds sont désactivées, le déclenchement de la rotation des adresses IP, Cloud DNS, l'activation de la règle de réseau, ou le déclenchement de la Migration PSC sur un cluster recrée tous les nœuds avec la même version que le plan de contrôle, quelle que soit la version sélectionnée pour le pool de nœuds. Pour contrôler la chronologie de maintenance, utilisez des intervalles et des exclusions de maintenance.
La désactivation signifie que cela relève de la compatibilité des nœuds du plan de contrôle.
Si vous désactivez la mise à niveau automatique des nœuds pour un pool de nœuds, vous devez vous assurer que les nœuds du cluster exécutent une version compatible avec celle du plan de contrôle du cluster, conformément à la règle de décalage de version de GKE. La désactivation des mises à niveau automatiques des nœuds empêche uniquement la mise à niveau des pools de nœuds jusqu'à la fin de la compatibilité standard. GKE met à niveau les nœuds qui exécutent une version non compatible une fois que la version a atteint la fin de la compatibilité, afin de garantir l'état du cluster.
Pour en savoir plus sur le calendrier de fin de compatibilité, consultez le calendrier estimé des canaux de publication. Les nœuds exécutant des versions non compatibles peuvent ne pas être mis à niveau immédiatement après la date de fin de compatibilité des versions, et la durée réelle peut varier à la discrétion de Google.
La désactivation n'arrête pas les opérations en cours
La désactivation des mises à niveau automatiques des nœuds n'arrête ni n'annule aucune mise à niveau en cours sur les nœuds des pools de nœuds. Pour annuler ou arrêter des mises à niveau en cours, consultez la page Annuler une mise à niveau de nœuds. L'annulation d'une mise à niveau de nœuds peut être utile dans les cas où les charges de travail échouent sur les nœuds mis à niveau et que vous souhaitez éviter toute interruption supplémentaire.
Si la mise à niveau est terminée pour l'ensemble du pool de nœuds, elle ne peut pas être annulée et un rollback ne peut pas être effectué. Pour revenir à une version antérieure du pool de nœuds, consultez la page Revenir à une version antérieure des pools de nœuds.
Désactiver les mises à niveau automatiques des nœuds pour un pool de nœuds existant
gcloud
Pour désactiver la mise à niveau automatique d'un pool de nœuds existant, exécutez la commande suivante :
gcloud container node-pools update NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location CONTROL_PLANE_LOCATION \
--no-enable-autoupgrade
Console
Pour désactiver la mise à niveau automatique d'un pool de nœuds existant, procédez comme suit :
Accédez à la page Google Kubernetes Engine dans la Cloud de Confiance console.
Dans la liste des clusters, cliquez sur le nom du cluster que vous souhaitez modifier.
Cliquez sur l'onglet Nœuds.
Sous Pools de nœuds, cliquez sur le nom du pool de nœuds que vous souhaitez modifier.
Sur la page Détails du pool de nœuds, cliquez sur edit Modifier.
Sous Gestion, décochez la case Activer la mise à niveau automatique.
Cliquez à nouveau sur Enregistrer pour modifier le cluster.
Créer un pool de nœuds dans lequel les mises à niveau automatiques des nœuds sont activées
gcloud
Pour créer un pool de nœuds sur lequel les mises à niveau automatiques sont activées, spécifiez l'option --enable-autoupgrade dans la commande gcloud container node-pools create :
gcloud container node-pools create NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location CONTROL_PLANE_LOCATION \
--enable-autoupgrade
Console
Les mises à niveau automatiques des nœuds sont activées par défaut pour les clusters et les pools de nœuds créés avec la Cloud de Confiance console ont Consultez les pages Créer un cluster ou Ajouter et gérer des pools de nœuds pour obtenir des instructions sur la création de clusters et de pools de nœuds.
Vous pouvez désactiver les mises à niveau automatiques pour les nouveaux pools de nœuds. Sur la page de création du cluster, cliquez sur le nom du pool de nœuds que vous souhaitez modifier, puis décochez la case Activer la mise à niveau automatique.
Recevoir des notifications de mise à niveau
GKE publie des notifications de mise à niveau sur Pub/Sub. Vous disposez ainsi d'un canal pour réceptionner les informations concernant vos clusters.
Pour en savoir plus, consultez la section Recevoir des notifications de mise à niveau des clusters.
Modifier les paramètres de mise à niveau de la surutilisation
Pour en savoir plus sur la modification des paramètres de mise à niveau de la surutilisation, consultez la page Configurer les mises à niveau de la surutilisation.
Exercer un contrôle lors d'une mise à niveau du pool de nœuds
Lors des mises à niveau automatiques et manuelles des pools de nœuds, vous pouvez effectuer les actions suivantes :
Configurer les mises à niveau simultanées des pools de nœuds
Par défaut, GKE met automatiquement à niveau un par un les pools de nœuds. Pour les clusters comportant de nombreux pools de nœuds, vous pouvez configurer des mises à niveau simultanées des pools de nœuds afin de réduire le temps total nécessaire à la mise à niveau du cluster. Pour ce faire, définissez le nombre maximal de pools de nœuds que GKE peut mettre à niveau automatiquement en même temps. Dans les clusters standards, ce paramètre détermine la simultanéité des mises à niveau des nœuds pour les pools de nœuds standards et les pools de nœuds gérés par Autopilot. Dans les clusters Autopilot, ce paramètre détermine la simultanéité des mises à niveau des nœuds pour les groupes de nœuds.
Vous pouvez configurer la limite de simultanéité lorsque vous créez un cluster ou que vous mettez à jour un cluster existant à l'aide de la gcloud CLI. Assurez-vous que les mises à niveau automatiques sont activées pour les pools de nœuds que vous souhaitez mettre à niveau automatiquement en même temps.
Vous ne pouvez pas activer cette fonctionnalité pour un cluster enregistré dans une séquence de déploiement avec des étapes personnalisées (aperçu).
Pour configurer les mises à niveau simultanées des pools de nœuds, exécutez l'une des commandes suivantes :
Créez un cluster avec des mises à niveau simultanées des pools de nœuds configurées :
gcloud beta container clusters create CLUSTER_NAME \ --project=PROJECT_NAME --location CONTROL_PLANE_LOCATION \ --node-pool-upgrade-concurrency-config=max-count=MAX_COUNTMettez à jour un cluster existant pour mettre à niveau simultanément les pools de nœuds :
gcloud beta container clusters update CLUSTER_NAME \ --project=PROJECT_NAME \ --location=CONTROL_PLANE_LOCATION \ --node-pool-upgrade-concurrency-config=max-count=MAX_COUNT
Remplacez les éléments suivants :
CLUSTER_NAME: nom du cluster.PROJECT_NAME: nom de votre projet.LOCATION: emplacement de calcul du cluster.MAX_COUNT: nombre maximal de pools de nœuds à mettre à niveau simultanément. La valeur doit être un entier compris entre1et100. Pour revenir au comportement séquentiel par défaut, définissez cette valeur sur1.
Annuler la mise à niveau d'un pool de nœuds
Vous pouvez annuler une mise à jour à tout moment. Pour en savoir plus sur ce qui se passe lorsque vous annulez une mise à niveau de la surutilisation, consultez la page Annuler une mise à niveau de la surutilisation. Pour en savoir plus sur ce qui se passe lorsque vous annulez une mise à niveau bleu-vert, consultez la page Annuler une mise à niveau bleu-vert.
Obtenez l'ID d'opération de la mise à niveau :
gcloud container operations list \ --location=CONTROL_PLANE_LOCATIONAnnulez la mise à niveau :
gcloud container operations cancel OPERATION_ID \ --location=CONTROL_PLANE_LOCATION
Consultez la documentation sur gcloud container operations cancel.
Reprendre la mise à niveau d'un pool de nœuds
Vous pouvez reprendre une mise à niveau en lançant manuellement la mise à niveau, en spécifiant la version cible de la mise à niveau d'origine.
Par exemple, si une mise à niveau a échoué ou si vous avez suspendu une mise à niveau en cours, vous pouvez la reprendre en relançant la même mise à niveau sur le pool de nœuds, en spécifiant la version cible de l'opération de mise à niveau initiale.
Pour en savoir plus sur ce qui se passe lorsque vous réactivez une mise à niveau, consultez les pages Reprendre une mise à niveau de la surutilisation et Mise à niveau bleu-vert.
Pour reprendre une mise à niveau, utilisez la commande suivante :
gcloud container clusters upgrade CLUSTER_NAME \
--node-pool=NODE_POOL_NAME \
--location=CONTROL_PLANE_LOCATION \
--cluster-version VERSION
Remplacez les éléments suivants :
NODE_POOL_NAME: nom du pool de nœuds pour lequel vous souhaitez reprendre la mise à niveau du pool de nœuds.CLUSTER_NAME: nom du cluster du pool de nœuds pour lequel vous souhaitez reprendre la mise à niveau.CONTROL_PLANE_LOCATION: emplacement (région ou zone) du plan de contrôle, tel queus-central1ouus-central1-a.VERSION: version cible de la mise à niveau du pool de nœuds annulé.
Pour en savoir plus, consultez la documentation sur gcloud container clusters upgrade.
Effectuer un rollback pour mettre à niveau un pool de nœuds
Vous pouvez effectuer un rollback d'un pool de nœuds pour revenir à l'état d'origine des nœuds mis à niveau avant le début de la mise à niveau du pool de nœuds.
Utilisez la commande rollback si une mise à niveau en cours a été annulée, si la mise à niveau a échoué ou si la mise à niveau est incomplète en raison d'un intervalle de maintenance dont le délai a expiré. Si vous souhaitez spécifier la version, suivez les instructions pour revenir à une version antérieure du pool de nœuds.
Pour en savoir plus sur ce qui se passe lorsque vous effectuez un rollback de la mise à niveau d'un pool de nœuds, consultez la page Restaurer une mise à niveau de la surutilisation ou Effectuer un rollback vers une mise à niveau bleu-vert.
Pour effectuer le rollback d'une mise à jour, exécutez la commande suivante :
gcloud container node-pools rollback NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION
Remplacez les éléments suivants :
NODE_POOL_NAME: nom du pool de nœuds pour lequel vous souhaitez effectuer un rollback de la mise à niveau du pool de nœuds.CLUSTER_NAME: nom du cluster du pool de nœuds pour lequel vous souhaitez effectuer un rollback de la mise à niveau.CONTROL_PLANE_LOCATION: emplacement (région ou zone) du plan de contrôle, tel queus-central1ouus-central1-a.
Consultez la gcloud container node-pools rollback
documentation.
Effectuer la mise à niveau d'un pool de nœuds
Si vous utilisez la stratégie de mise à niveau bleu-vert, vous pouvez effectuer une mise à niveau du pool de nœuds pendant la phase de stabilisation, en ignorant le reste du temps de stabilisation.
Pour savoir comment effectuer une mise à niveau du pool de nœuds, consultez la page Effectuer une mise à niveau du pool de nœuds.
Pour effectuer une mise à niveau lors de l'utilisation de la stratégie de mise à niveau bleu-vert, exécutez la commande suivante :
gcloud container node-pools complete-upgrade NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION
Remplacez les éléments suivants :
NODE_POOL_NAME: nom du pool de nœuds pour lequel vous souhaitez effectuer la mise à niveau.CLUSTER_NAME: nom du cluster du pool de nœuds pour lequel vous souhaitez effectuer la mise à niveau.CONTROL_PLANE_LOCATION: emplacement (région ou zone) du plan de contrôle, tel queus-central1ouus-central1-a.
Consultez la gcloud container node-pools complete-upgrade
documentation.
Étapes suivantes
- Découvrez-en davantage sur les pools de nœuds.
- Apprenez-en davantage sur les mises à niveau des clusters et des pools de nœuds
- Mettez à niveau manuellement un cluster ou un pool de nœuds.
- Apprenez-en plus sur les versions disponibles.
- Résolvez les problèmes de mise à niveau des clusters.