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 console Google Cloud 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.
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 console Google Cloud ou de la commande gcloud
.
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 \
--zone COMPUTE_ZONE
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.COMPUTE_ZONE
: zone de calcul du cluster.
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 Google Cloud 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 console Google Cloud ou de la commande gcloud
, 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 \
--zone COMPUTE_ZONE \
--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.COMPUTE_ZONE
: zone de calcul du cluster.
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 Google Cloud 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 ou terminées dans le cluster :
gcloud container operations list
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
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
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
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.
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, 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, conformément à la règle de décalage de version 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 l'assistance standard. GKE met à niveau les nœuds qui exécutent une version non compatible une fois que la version est arrivée en fin de compatibilité, afin de garantir l'état du cluster.
Pour en savoir plus sur la date de fin de l'assistance, consultez le calendrier estimé pour les 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 \
--zone COMPUTE_ZONE \
--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 Google Cloud 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 cluster ou un pool de nœuds avec mise à niveau automatique des nœuds
gcloud
Pour créer un cluster sur lequel les mises à niveau automatiques sont activées pour le pool de nœuds par défaut, spécifiez l'indicateur --enable-autoupgrade
dans la commande gcloud container clusters
create
:
gcloud container clusters create CLUSTER_NAME \
--zone COMPUTE_ZONE \
--enable-autoupgrade
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 \
--zone COMPUTE_ZONE \
--enable-autoupgrade
Console
Les mises à niveau automatiques sont activées par défaut pour les clusters et les pools de nœuds créés avec la console Google Cloud. 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 :
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
Annulez la mise à niveau :
gcloud container operations cancel OPERATION_ID
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.
Si, par exemple, une mise à niveau a échoué ou si vous avez suspendu une mise à niveau en cours, vous pouvez reprendre la mise à niveau annulée 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 \
--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.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
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.
Consultez la documentation sur gcloud container node-pools rollback
.
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
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.
Consultez la documentation sur gcloud container node-pools complete-upgrade
.
É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.