Mettre à niveau automatiquement un cluster Azure Kubernetes Service (AKS)

Une partie du cycle de vie du cluster AKS implique l’exécution de mises à niveau périodiques vers la dernière version de Kubernetes. Il est important d’appliquer les dernières publications de sécurité ou d’opérer une mise à niveau pour obtenir les dernières fonctionnalités. Avant d’en savoir plus sur la mise à niveau automatique, assurez-vous de bien comprendre les principes de base de la mise à niveau du cluster AKS.

Notes

Toute opération de mise à niveau (manuelle ou automatique), entraîne la mise à niveau de la version de l’image de nœud si tel n’est pas déjà le cas. La dernière version est subordonnée à une version complète d’AKS, et peut être déterminée en visitant le suivi des mises en production AKS.

La mise à niveau automatique permet d’abord de mettre à niveau le plan de contrôle, puis de procéder à la mise à niveau des pools d’agents un par un.

Pourquoi utiliser la mise à niveau automatique de cluster

La mise à niveau automatique de cluster fournit un mécanisme défini une fois pour toutes qui offre des avantages tangibles en termes de temps et de coûts opérationnels. En activant la mise à niveau automatique, vous pouvez être certain que vos clusters seront à jour et incluront les fonctionnalités ou correctifs les plus récents d’AKS et de Kubernetes en amont.

AKS suit une fenêtre de contrôle de version stricte en matière de supportabilité. Des canaux de mise à niveau automatique correctement sélectionnés vous permettent d’éviter de vous retrouver avec des clusters dont la version n’est pas prise en charge. Pour plus d’informations sur la fenêtre de prise en charge d’AKS, consultez Versions mineures de l’alias.

Mises à niveau automatiques lancées par le client ou par AKS

Vous pouvez spécifier les caractéristiques de la mise à niveau automatique des clusters selon les indications suivantes. Les mises à niveau se produisent en fonction de la cadence spécifiée par le client et sont recommandées pour que les clients restent sur les versions de Kubernetes prises en charge.

AKS lance aussi des mises à niveau automatiques pour les clusters non pris en charge. Si un cluster en version N-3 (où N est la dernière version mineure d’AKS en disponibilité générale prise en charge) est sur le point de passer à une version N-4, AKS met automatiquement à niveau le cluster vers la version N-2 pour rester dans une stratégie de support AKS. La mise à niveau automatique d’un cluster inclus dans le support de plateforme vers une version prise en charge est activée par défaut. Les pools de nœuds arrêtés vont être mis à niveau pendant une opération de mise à niveau automatique. La mise à niveau s’applique aux nœuds lors du démarrage du pool de nœuds. Pour réduire les interruptions, configurez les fenêtres de maintenance.

Limitations de la mise à niveau automatique de cluster

Si vous utilisez la mise à niveau automatique de cluster, vous ne pouvez plus mettre à niveau le plan de contrôle en premier, puis mettre à niveau les pools de nœuds individuels. La mise à niveau automatique de cluster met toujours à niveau le plan de contrôle et les pools de nœuds ensemble. Vous ne pouvez pas mettre à niveau le plan de contrôle uniquement. L’exécution de la commande az aks upgrade --control-plane-only génère l’erreur suivante : NotAllAgentPoolOrchestratorVersionSpecifiedAndUnchanged: Using managed cluster api, all Agent pools' OrchestratorVersion must be all specified or all unspecified. If all specified, they must be stay unchanged or the same with control plane.

Si vous utilisez le canal de mise à niveau automatique du cluster node-image ou le canal de mise à niveau automatique de l’image du nœud NodeImage, les mises à niveau sans assistance de Linux sont désactivées par défaut.

Canaux de mise à niveau automatique d’un cluster

Les mises à niveau effectuées automatiquement sont fonctionnellement identiques aux mises à niveau manuelles. Le canal de mise à niveau automatique sélectionné détermine la planification des mises à niveau. Lorsque vous apportez des modifications à la mise à niveau automatique, prévoyez 24 heures pour que les modifications prennent effet. La mise à niveau automatique d’un cluster suit le même processus que la mise à niveau manuelle d’un cluster. Pour plus d’informations, consultez Mettre à niveau un cluster AKS.

Les canaux de mise à niveau suivants sont disponibles :

Canal Action Exemple
none désactive les mises à niveau automatiques et conserve le cluster dans sa version actuelle de Kubernetes. Paramètre par défaut si vous ne modifiez pas la valeur.
patch met à niveau automatiquement le cluster vers la dernière version du correctif prise en charge lorsqu’elle devient disponible, tout en conservant la version mineure. Par exemple, si un cluster exécute la version 1.17.7 et que les versions 1.17.9, 1.18.4, 1.18.6 et 1.19.1 sont disponibles, le cluster est mis à niveau vers la version 1.17.9.
stable met à niveau automatiquement le cluster vers la dernière version du correctif prise en charge sur la version mineure N-1, où N désigne la dernière version mineure prise en charge. Par exemple, si un cluster exécute la version 1.17.7 et que les versions 1.17.9, 1.18.4, 1.18.6 et 1.19.1 sont disponibles, le cluster est mis à niveau vers la version 1.18.6.
rapid met à niveau automatiquement le cluster vers la dernière version du correctif prise en charge sur la dernière version mineure prise en charge. Dans les cas où le cluster a une version de Kubernetes qui est une version mineure N-2N est la dernière version mineure prise en charge, le cluster se met d’abord à niveau vers la dernière version de patch prise en charge sur la version mineure N-1. Par exemple, si un cluster exécute la version 1.17.7 et que les versions 1.17.9, 1.18.4, 1.18.6 et 1.19.1 sont disponibles, le cluster est d’abord mis à niveau vers la version 1.18.6, puis vers la version 1.19.1.
node-image met automatiquement à niveau l’image de nœud vers la dernière version disponible. Microsoft fournit régulièrement des correctifs et de nouvelles images pour les nœuds d’image (généralement une fois par semaine), mais vos nœuds en cours d’exécution ne reçoivent pas les nouvelles images, sauf si vous effectuez une mise à niveau de l’image de nœud. L’activation du canal nœud-image met automatiquement à jour vos images de nœud quand une nouvelle version est disponible. Si vous utilisez ce canal, les [mises à niveau sans assistance] de Linux sont désactivées par défaut. Les mises à niveau de l’image du nœud fonctionnent sur les versions patch déconseillées, tant que la version mineure de Kubernetes reste prise en charge.

Remarque

Gardez à l’esprit les informations suivantes lors de l’utilisation de la mise à niveau automatique du cluster :

  • La mise à niveau automatique du cluster ne concerne que les versions GA de Kubernetes et non les versions en préversion.

  • Avec AKS, vous pouvez créer un cluster sans spécifier la version exacte du correctif. Lorsque vous créez un cluster sans désigner de correctif, le cluster exécute le correctif en disponibilité générale le plus récent de la version mineure. Pour plus d’informations, consultez Fenêtre de prise en charge d’AKS.

  • La mise à niveau automatique nécessite que la version de Kubernetes du cluster se trouve dans la fenêtre de prise en charge AKS, même si vous utilisez le canalnode-image.

  • Si vous utilisez l’API 11-02-preview en préversion ou une version ultérieure et que vous sélectionnez le canal de mise à niveau automatique de cluster node-image, le canal de mise à niveau automatique d’image de nœud est automatiquement défini sur NodeImage.

  • Chaque cluster ne peut être associé qu’à un seul canal de mise à niveau automatique. En effet, votre canal spécifié détermine la version de Kubernetes qui s’exécute sur le cluster.

Utiliser la mise à niveau automatique du cluster avec un nouveau cluster AKS

  • Définissez le canal de mise à niveau automatique lors de la création d’un cluster à l’aide de la commande az aks create et du paramètre auto-upgrade-channel.

    az aks create --resource-group myResourceGroup --name myAKSCluster --auto-upgrade-channel stable --generate-ssh-keys
    

Utiliser la mise à niveau automatique du cluster avec un cluster AKS existant

  • Définissez le canal de mise à niveau automatique sur un cluster existant à l’aide de la commande az aks update avec le paramètre auto-upgrade-channel.

    az aks update --resource-group myResourceGroup --name myAKSCluster --auto-upgrade-channel stable
    

Utiliser la mise à niveau automatique avec une maintenance planifiée

Si vous utilisez la maintenance planifiée et la mise à niveau automatique de cluster, votre mise à niveau démarre pendant la fenêtre de maintenance spécifiée.

Notes

Pour garantir une fonctionnalité correcte, utilisez une fenêtre de maintenance de quatre heures ou plus.

Pour plus d’informations sur comment définir une fenêtre de maintenance avec la maintenance planifiée, consultez Utiliser la maintenance planifiée pour planifier les fenêtres de maintenance de votre cluster Azure Kubernetes service (AKS).

Bonnes pratiques pour la mise à niveau automatique de cluster

Utilisez les bonnes pratiques suivantes pour faciliter la réussite de l’utilisation de la mise à niveau automatique :

  • Pour que la version de votre cluster soit toujours prise en charge (dans le cadre de la règle N-2), choisissez l’un des canaux stable ou rapid.
  • Si vous souhaitez recevoir les derniers correctifs le plus tôt possible, utilisez le canal patch. Le canal node-image est adapté si vous souhaitez que vos pools d’agents exécutent toujours les images de nœud les plus récentes.
  • Pour mettre automatiquement à niveau les images de nœud tout en utilisant un autre canal de mise à niveau de cluster, envisagez d’utiliser le canal de mise à niveau automatique d’image de nœudNodeImage.
  • Suivez les Meilleures pratiques de l’opérateur.
  • Suivez les Meilleures pratiques de PDB.
  • Pour plus d’informations sur la résolution des problèmes de mise à niveau, consultez la documentation de résolution des problèmes AKS.

Pour obtenir une discussion détaillée sur les meilleures pratiques de mise à niveau et d’autres considérations, consultez Instructions de patch et de mise à niveau AKS.