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. Vous n’avez pas besoin d’arrêter vos charges de travail, de les redéployer ou de créer un cluster AKS. 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 sont mis à niveau pendant une opération de mise à niveau automatique. La mise à niveau s’applique aux nœuds quand le pool de nœuds est démarré. 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 d’un cluster (hérité et ne devant pas être utilisé) 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-2 où N 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 (hérité) |
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. Ce canal n’est plus recommandé et il devrait être déprécié dans le futur. Pour obtenir une option pouvant mettre automatiquement à niveau les images de nœud, consultez le canal NodeImage dans la mise à niveau automatique de l’image du nœud. |
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 canal
node-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 clusternode-image
, le canal de mise à niveau automatique d’image de nœud est automatiquement défini surNodeImage
.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.
Si votre cluster n’a pas de canal de mise à niveau automatique et que vous l’activez pour LTS (Support à long terme, Long-Term Support), il est défini par défaut sur un canal de mise à niveau automatique
patch
.
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ètreauto-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ètreauto-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
ourapid
. - Si vous souhaitez recevoir les derniers correctifs le plus tôt possible, utilisez le canal
patch
. Le canalnode-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œud
NodeImage
. - 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.
Azure Kubernetes Service