Options de mise à niveau pour les clusters Azure Kubernetes Service (AKS)

Cet article décrit les différentes options de mise à niveau pour les clusters AKS. Pour effectuer une mise à niveau de version de base de Kubernetes, consultez Mettre à niveau un cluster AKS.

Pour en savoir plus sur les clusters AKS utilisant plusieurs pools de nœuds ou des nœuds Windows Server, consultez Mettre à niveau un pool de nœuds dans AKS. Pour mettre à niveau un pool de nœuds spécifique sans effectuer de mise à niveau de cluster Kubernetes, consultez Mettre à niveau un pool de nœuds spécifique.

Effectuer des mises à niveau manuelles

Vous pouvez effectuer des mises à niveau manuelles pour contrôler quand votre cluster est mis à niveau vers une nouvelle version de Kubernetes. Les mises à niveau manuelles sont utiles quand vous souhaitez tester une nouvelle version de Kubernetes avant de mettre à niveau votre cluster de production. Vous pouvez également utiliser des mises à niveau manuelles pour mettre à niveau votre cluster vers une version spécifique de Kubernetes qui n’est pas la dernière version disponible.

Pour effectuer des mises à niveau manuelles, consultez les articles suivants :

Configurer des mises à niveau automatiques

Vous pouvez configurer des mises à niveau automatiques pour mettre automatiquement à niveau votre cluster vers la dernière version disponible de Kubernetes. Les mises à niveau automatiques sont utiles si vous souhaitez vous assurer que votre cluster exécute toujours la dernière version de Kubernetes. Vous pouvez également utiliser des mises à niveau automatiques pour garantir que votre cluster exécute toujours une version de Kubernetes prise en charge.

Pour configurer des mises à niveau automatiques, consultez les articles suivants :

Considérations spéciales pour les pools de nœuds qui s’étendent sur plusieurs zones de disponibilité

AKS utilise l’équilibrage de zone best-effort dans les groupes de nœuds. Pendant une hausse de mise à niveau, les zones des nœuds de hausse dans Virtual Machine Scale Sets ne sont pas connues à l’avance, ce qui peut entraîner temporairement une configuration de zone déséquilibrée pendant une mise à niveau. Toutefois, AKS supprime les nœuds de hausse une fois la mise à niveau terminée et préserve l’équilibre d’origine des zones. Si vous souhaitez maintenir l’équilibre de vos zones pendant les mises à niveau, vous pouvez augmenter la hausse à un multiple de trois nœuds, et Virtual Machine Scale Sets équilibre vos nœuds entre les zones de disponibilité avec l’équilibrage de zone le mieux possible. Avec « best effort zone balance » (meilleur équilibre des zones), le groupe identique tente de diminuer et d’augmenter la taille des instances tout en maintenant l’équilibre. Toutefois, si pour une raison quelconque cela n’est pas possible (par exemple, si une zone tombe en panne, le groupe identique ne peut pas créer de nouvelle machine virtuelle dans cette zone), le groupe identique autorise un déséquilibre temporaire pour effectuer correctement un scale-in ou un scale-out.

Les revendications de volumes persistants (PVC) soutenues par des disques de stockage localement redondant (LRS) Azure sont liées à une zone particulière et risquent de ne pas être récupérées immédiatement si le nœud d’appoint ne correspond pas à la zone de la PVC. Si les zones ne correspondent pas, cela peut entraîner un temps d’arrêt sur votre application lorsque l’opération de mise à niveau continue à vider les nœuds, mais que les PV sont liés à une zone. Pour gérer ce cas et maintenir la haute disponibilité, configurez un budget d’interruption de pod sur votre application afin de permettre à Kubernetes de respecter vos exigences de disponibilité pendant l’opération de drainage.

Optimiser les mises à niveau pour améliorer les performances et réduire les interruptions

La combinaison d’une fenêtre de maintenance planifiée, d’une surcharge maximale, d’un budget d’interruption de pods d’un délai d’expiration du drainage des nœuds et d’une période d’absorption des nœuds (préversion) peut augmenter considérablement la probabilité que les mises à niveau des nœuds se terminent correctement à la fin de la fenêtre de maintenance, tout en réduisant les interruptions.

  • La fenêtre de maintenance planifiée permet aux équipes de service de planifier la mise à niveau automatique pendant une fenêtre prédéfinie, généralement une période de faible trafic, afin de réduire l’impact sur la charge de travail. Nous recommandons une durée de fenêtre d’au moins quatre heures.

  • L’augmentation maximale sur le pool de nœuds permet de demander un quota supplémentaire pendant le processus de mise à niveau et limite le nombre de nœuds sélectionnés pour la mise à niveau simultanément. Un max surge élevé entraîne un processus de mise à niveau plus rapide. Nous vous déconseillons de définir cette valeur sur 100 %. En effet, tous les nœuds seraient mis à niveau simultanément, ce qui pourrait entraîner des perturbations dans les applications en cours d’exécution. Nous recommandons de définir un quota d’augmentation maximale de 33 % pour les pools de nœuds de production.

  • Le budget d’interruption de pods est défini pour les applications de service et limite le nombre de pods qui peuvent être arrêtés lors d’interruptions volontaires, telles que les mises à niveau de nœuds contrôlées par AKS. Il peut être configuré sur minAvailable réplicas, indiquant le nombre minimal de pods d’application qui doivent être actifs, ou maxUnavailable réplicas, indiquant le nombre maximal de pods d’application pouvant être arrêtés, garantissant une haute disponibilité pour l’application. Reportez-vous aux conseils fournis pour la configuration des budgets d’interruption de pods (PDB). Les valeurs de PDB doivent être validées pour déterminer les paramètres qui fonctionnent le mieux pour votre service spécifique.

  • Le délai d’expiration du drainage des nœuds sur le pool de nœuds vous permet de configurer la durée d’attente pour l’éviction des pods et l’arrêt normal par nœud lors d’une mise à niveau. Cette option est utile dans le cas de charges de travail longues. Quand le délai d’expiration du drainage des nœuds est spécifié (en minutes), AKS applique le délai d’attente sur les budgets de perturbation des pods. Si aucun délai n’est spécifié, la valeur par défaut du délai d’expiration est de 30 minutes.

  • La période d’absorption des nœuds (préversion) permet d’échelonner les mises à niveau des nœuds de manière contrôlée et de minimiser les temps d’arrêt des applications lors d’une mise à niveau. Vous pouvez spécifier un délai d’attente, de préférence aussi proche que possible de 0 minute, pour vérifier l’état de préparation de l’application entre les mises à niveau des nœuds. S’il n’est pas spécifié, sa valeur par défaut est de 0 minute. La période d’absorption des nœuds est associée aux propriétés de surcharge maximale et de délai d’expiration du drainage des nœuds disponibles dans le pool de nœuds afin d’obtenir les bons résultats en termes de rapidité des mises à niveau et de disponibilité des applications.

    Remarque

    Pour utiliser la durée d’imbibage des nœuds (préversion), vous devez avoir installé aks-preview extension Azure CLI version 0.5.173 ou ultérieure.

Étapes suivantes

Cet article vous a présenté différentes options de mise à niveau pour les clusters AKS. Pour obtenir une discussion détaillée sur les meilleures pratiques de mise à niveau et d’autres considérations, consultez Instructions de mise à jour corrective et de mise à niveau AKS.