Configurer les stratégies de mise à niveau des nœuds

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

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_NODES

Cré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=1

Cré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_NODES

Modifier 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_NODES

Vé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_NAME

Si 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_COUNT ou BATCH_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 est BATCH_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 = 2
  • BATCH_SOAK_DURATION = 10 s
  • NODE_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 s
  • NODE_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 = 2
  • BATCH_SOAK_DURATION = 10 s
  • NODE_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 s
  • NODE_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 :

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