En tant qu'administrateur de plate-forme, vous pouvez configurer une stratégie de mise à niveau de nœuds pour ajuster la mise à niveau des nœuds dans vos clusters Google Kubernetes Engine (GKE). Pour en savoir plus sur les stratégies de mise à niveau des nœuds, consultez Stratégies de mise à niveau 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 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.
Conditions requises
- Pour utiliser les mises à niveau bleu-vert avec autoscaling, le plan de contrôle d'un cluster doit exécuter la version 1.34.0-gke.2201000 ou ultérieure, et l'autoscaler de cluster doit être activé.
Configurer une stratégie de mise à niveau de nœuds
Lorsque vous configurez les pools de nœuds Standard de votre cluster, vous pouvez sélectionner et configurer l'une des stratégies de mise à niveau de nœuds compatibles suivantes :
Ces stratégies de mise à niveau vous permettent d'optimiser le processus de mise à niveau du pool de nœuds en fonction des besoins de votre environnement de cluster. Les pools de nœuds gérés par Autopilot dans les clusters Standard utilisent les mises à niveau de la surutilisation. Vous ne pouvez pas sélectionner une autre stratégie ni modifier la configuration.
Configurer les mises à niveau de la surutilisation
Les mises à niveau de la surutilisation vous permettent de modifier le nombre de mises à niveau automatiques des nœuds GKE simultanées, ainsi que le nombre d'interruptions qu'une mise à niveau peut entraîner sur vos charges de travail.
Les options max-surge-upgrade et max-unavailable-upgrade sont définies pour chaque pool de nœuds. Pour plus d'informations sur le choix des paramètres appropriés, consultez la section Optimiser la configuration de votre mise à niveau de la surutilisation.
Vous pouvez modifier ces paramètres lors de la création ou de la mise à jour d'un cluster ou d'un pool de nœuds.
Les variables suivantes sont utilisées dans les commandes mentionnées ci-dessous :
CLUSTER_NAME: nom du cluster pour le pool de nœuds.COMPUTE_ZONE: zone du cluster.NODE_POOL_NAME: nom du pool de nœuds.NUMBER_NODES: nombre de nœuds du pool de nœuds dans chacune des zones du cluster.SURGE_NODES: nombre de nœuds supplémentaires (surutilisation) à créer à chaque mise à niveau du pool de nœuds.UNAVAILABLE_NODES: nombre de nœuds pouvant être indisponibles simultanément pour chaque mise à niveau du pool de nœuds.
Créer un cluster avec plusieurs paramètres de surutilisation
Pour créer un cluster avec des paramètres spécifiques pour les mises à niveau de la surutilisation, utilisez les options max-surge-upgrade et max-unavailable-upgrade.
gcloud container clusters create CLUSTER_NAME \
--max-surge-upgrade=SURGE_NODES --max-unavailable-upgrade=UNAVAILABLE_NODESCréer un cluster sans mise à niveau de surutilisation
Pour créer un cluster sans mises à niveau de la surutilisation, définissez la valeur de l'option max-surge-upgrade sur 0.
gcloud container clusters create CLUSTER_NAME \
--max-surge-upgrade=0 --max-unavailable-upgrade=1Créer un pool de nœuds avec des paramètres de surutilisation spécifiques
Pour créer un pool de nœuds dans un cluster existant avec des paramètres spécifiques pour les mises à niveau de la surutilisation, utilisez les options max-surge-upgrade et max-unavailable-upgrade.
gcloud container node-pools create NODE_POOL_NAME \
--num-nodes=NUMBER_NODES --cluster=CLUSTER_NAME \
--max-surge-upgrade=SURGE_NODES --max-unavailable-upgrade=UNAVAILABLE_NODESModifier les paramètres de mise à niveau de la surutilisation pour un pool de nœuds existant
Pour mettre à jour les paramètres de mise à niveau d'un pool de nœuds existant, utilisez les options max-surge-upgrade et max-unavailable-upgrade. Si vous définissez max-surge-upgrade sur une valeur supérieure à 0, GKE crée des nœuds de surutilisation. Si vous définissez max-surge-upgrade sur 0, GKE ne crée pas de nœuds de surutilisation.
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--max-surge-upgrade=SURGE_NODES --max-unavailable-upgrade=UNAVAILABLE_NODESVérifier si les mises à niveau de surutilisation sont activées dans un pool de nœuds
Pour savoir si les mises à niveau de la surutilisation sont activées sur un pool de nœuds, vous pouvez décrire les paramètres du cluster à l'aide de gcloud :
gcloud container node-pools describe NODE_POOL_NAME \
--cluster=CLUSTER_NAMESi les mises à niveau de la surutilisation sont activées sur le pool de nœuds, la stratégie répertoriée est SURGE.
Configurer les mises à niveau bleu-vert
Les mises à niveau des pools de nœuds bleu-vert vous permettent de contrôler les éléments suivants :
BATCH_NODE_COUNTouBATCH_PERCENT: taille des lots de nœuds que GKE draine en même temps, ce qui signifie que les pods sont supprimés des nœuds. La valeur par défaut estBATCH_NODE_COUNT=1. Si l'un de ces paramètres est défini sur 0, GKE ignore cette phase et passe à la phase Stabilisation du pool de nœuds.BATCH_SOAK_DURATION: temps entre chaque lot et le drainage des nœuds.NODE_POOL_SOAK_DURATION: temps de stabilisation pour la validation de votre charge de travail sur la configuration du nouveau nœud.
Pour en savoir plus sur le fonctionnement des phases de mises à niveau bleu-vert, consultez Phases des mises à niveau bleu-vert.
Les variables suivantes sont utilisées dans les commandes répertoriées dans les sections suivantes :
CLUSTER_NAME: nom du cluster pour le pool de nœuds.NODE_POOL_NAME: nom du pool de nœuds.NUMBER_NODES: nombre de nœuds du pool de nœuds dans chacune des zones du cluster.BATCH_NODE_COUNT: nombre de nœuds bleus à drainer dans un lot pendant la phase de drainage du pool bleu. La valeur par défaut est 1. Si cette valeur est définie sur 0, la phase de drainage du pool bleu est ignorée.BATCH_PERCENT: pourcentage de nœuds bleus à drainer dans un lot pendant la phase de drainage du pool bleu, exprimé sous la forme d'un nombre décimal compris entre 0 et 1 inclus. GKE arrondit à la baisse au nœud le plus proche, à une valeur minimale de un nœud, si le pourcentage n'est pas un nombre entier de nœuds. Si cette valeur est définie sur 0, la phase de drainage du pool bleu est ignorée.BATCH_SOAK_DURATION: délai d'attente en secondes après chaque drainage de lot. La valeur par défaut est "0".NODE_POOL_SOAK_DURATION: délai d'attente en secondes après le drainage de tous les lots. La valeur par défaut est de 3 600 secondes.
Créer un pool de nœuds qui utilise la stratégie de mise à niveau bleu-vert
Créer un pool de nœuds qui utilise les paramètres par défaut de mise à niveau bleu-vert
Pour créer un pool de nœuds dans un cluster existant qui utilise la stratégie de mise à niveau bleu-vert avec les paramètres par défaut, exécutez la commande suivante :
gcloud container node-pools create NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--enable-blue-green-upgrade
Créer un pool de nœuds qui utilise des mises à niveau bleu-vert avec des tailles de lot de nombres de nœuds absolus
Pour créer un pool de nœuds qui utilise des paramètres de mise à niveau bleu-vert personnalisés, utilisez les options de paramètre avec la commande de création de pool de nœuds.
Cette commande crée un pool de nœuds avec la configuration bleu-vert personnalisée suivante, en utilisant un nombre de nœuds absolu pour les drainages de lots :
BATCH_NODE_COUNT= 2BATCH_SOAK_DURATION= 10 sNODE_POOL_SOAK_DURATION= 600 s
gcloud container node-pools create NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--enable-blue-green-upgrade \
--standard-rollout-policy=batch-node-count=2,batch-soak-duration=10s \
--node-pool-soak-duration=600s
Créer un pool de nœuds qui utilise la mise à niveau bleu-vert avec des tailles de lot basées sur des pourcentages
Cette commande crée un pool de nœuds avec la configuration bleu-vert personnalisée suivante, en utilisant un pourcentage pour les drainages de lot :
BATCH_PERCENTAGE= 25 % (de la taille du pool de nœuds)BATCH_SOAK_DURATION= 10 sNODE_POOL_SOAK_DURATION= 1 800 s
gcloud container node-pools create NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--enable-blue-green-upgrade \
--standard-rollout-policy=batch-percent=0.25,batch-soak-duration=10s \
--node-pool-soak-duration=1800s
Mettre à jour un pool de nœuds existant pour utiliser la stratégie de mise à niveau bleu-vert
Mettre à jour un pool de nœuds pour utiliser les mises à niveau bleu-vert avec les paramètres par défaut
Pour mettre à jour un pool de nœuds existant vers la stratégie de mise à niveau bleu-vert, utilisez la commande suivante :
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--enable-blue-green-upgrade
Mettre à jour un pool de nœuds pour utiliser des mises à niveau bleu-vert avec des tailles de lot de nombres de nœuds absolus
Pour mettre à jour un pool de nœuds existant vers la stratégie de mise à niveau bleu-vert avec des paramètres personnalisés, utilisez les indicateurs de paramètre avec la commande de création de pool de nœuds.
Cette commande met à jour un pool de nœuds afin d'utiliser la configuration bleu-vert personnalisée suivante, en utilisant un nombre de nœuds absolu pour les drainages de lot :
BATCH_NODE_COUNT= 2BATCH_SOAK_DURATION= 10 sNODE_POOL_SOAK_DURATION= 600 s
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--enable-blue-green-upgrade \
--standard-rollout-policy=batch-node-count=2,batch-soak-duration=10s \
--node-pool-soak-duration=600s
Mettre à jour un pool de nœuds pour utiliser des mises à niveau bleu-vert avec des tailles de lot basées sur des pourcentages
Cette commande crée un pool de nœuds avec la configuration bleu-vert personnalisée suivante, en utilisant un pourcentage pour les drainages de lot :
BATCH_PERCENTAGE= 25 % (de la taille du pool de nœuds)BATCH_SOAK_DURATION= 10 sNODE_POOL_SOAK_DURATION= 1 800 s
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--enable-blue-green-upgrade \
--standard-rollout-policy=batch-percent=0.25,batch-soak-duration=10s \
--node-pool-soak-duration=1800s
Revenir aux mises à niveau de la surutilisation
Vous pouvez modifier le comportement des mises à niveau bleu-vert à l'aide de paramètres et contrôler le processus de mise à niveau à l'aide de commandes.
Toutefois, si vous préférez utiliser les mises à niveau de la surutilisation, exécutez la commande suivante pour revenir aux mises à niveau de la surutilisation :
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--enable-surge-upgrade
Configurer les mises à niveau bleu-vert avec autoscaling
Pour utiliser les mises à niveau bleu-vert avec autoscaling pour un pool de nœuds, vous n'avez pas besoin de configurer des paramètres supplémentaires pour la taille de lot ou la stabilisation. Vous pouvez toutefois configurer la durée entre la mise en quarantaine et la vidange des nœuds. Avant d'activer cette stratégie de mise à niveau, consultez les bonnes pratiques et les limitations.
Créer un pool de nœuds qui utilise les mises à niveau bleu-vert avec autoscaling
Créez un pool de nœuds sur lequel les mises à niveau bleu-vert avec autoscaling sont activées:
gcloud container node-pools create NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--enable-autoscaling \
--max-nodes=MAX_NODES \
--enable-blue-green-upgrade \
--autoscaled-rollout-policy=[wait-for-drain-duration=WAIT_FOR_DRAIN_DURATIONs]
Pour définir les paramètres MIN_NODE et MAX_NODE, consultez les recommandations sur la configuration de votre cluster et de vos pools de nœuds.
Remplacez le paramètre facultatif WAIT_FOR_DRAIN_DURATION par le temps d'attente, en secondes, après la mise en quarantaine du pool bleu et avant la vidange des nœuds. Vous pouvez configurer cette durée entre zéro et sept jours, la valeur par défaut étant de trois jours (259200 secondes).
Mettre à jour un pool de nœuds pour utiliser les mises à niveau bleu-vert avec autoscaling
Mettez à jour un pool de nœuds existant pour utiliser les mises à niveau bleu-vert avec autoscaling:
gcloud container node-pools update NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--enable-blue-green-upgrade \
--autoscaled-rollout-policy=[wait-for-drain-duration=WAIT_FOR_DRAIN_DURATIONs]
Remplacez le paramètre facultatif WAIT_FOR_DRAIN_DURATION par le temps d'attente, en secondes, après la mise en quarantaine du pool bleu et avant la vidange des nœuds. Vous pouvez configurer cette durée entre zéro et sept jours, la valeur par défaut étant de trois jours (259200 secondes).
Inspecter les paramètres de mise à niveau d'un pool de nœuds
Pour inspecter les paramètres actuels de mise à niveau d'un pool de nœuds, vous pouvez utiliser la commande suivante pour décrire le pool de nœuds :
gcloud container node-pools describe NODE_POOL_NAME \
--cluster=CLUSTER_NAME
L'extrait suivant est un exemple de résultat de la commande. Le champ strategy indique la stratégie de mise à niveau utilisée :
- SURGE indique que la stratégie de mise à niveau de la surutilisation est activée.
BLUE_GREEN indique que la stratégie de mise à niveau bleu-vert est activée :
- Les mises à niveau bleu-vert standards sont activées si le résultat inclut des valeurs pour
standardRolloutPolicysousblueGreenSettings. - Les mises à niveau bleu-vert avec autoscaling sont activées si
autoscaledRolloutPolicyest mentionné.
- Les mises à niveau bleu-vert standards sont activées si le résultat inclut des valeurs pour
upgradeSettings:
blueGreenSettings:
nodePoolSoakDuration: 1800s
standardRolloutPolicy:
batchNodeCount: 1
batchSoakDuration: 10s
strategy: BLUE_GREEN
Cette commande indique également la phase actuelle d'une mise à niveau bleu-vert en cours. Découvrez comment vérifier les paramètres de mise à niveau d'un pool de nœuds.
Étapes suivantes
- Apprenez-en plus sur les stratégies de mise à niveau des nœuds.
- Découvrez comment mettre à niveau manuellement vos pools de nœuds.