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 que vous appliquiez les dernières versions de sécurité ou la mise à niveau pour obtenir les fonctionnalités les plus récentes. Avant d’en savoir plus sur les mises à niveau automatiques, vérifiez que vous comprenez les principes de base de la mise à niveau du cluster AKS.

Tip

Si vous utilisez AKS Automatic, les mises à niveau de cluster sont préconfigurées pour utiliser le canal stable , mettant automatiquement à niveau vers le dernier correctif sur la version mineure N-1 (où N est la dernière version prise en charge). Aucune configuration n’est nécessaire. Pour les clusters automatiques AKS avec des exigences de maintenance spécifiques, vous pouvez définir des fenêtres de maintenance planifiées. Pour plus d’informations, consultez Qu’est-ce que Azure Kubernetes Service (AKS) automatique ? Pour les clusters AKS Standard, poursuivez la lecture pour sélectionner le canal qui répond le mieux à vos besoins.

Remarque

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 met d’abord à niveau le plan de contrôle, puis met à niveau les pools d’agents un par un.

Pourquoi utiliser la mise à niveau automatique du 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 vous assurer que vos clusters sont à jour et ne manquent pas les dernières fonctionnalités ou correctifs d’AKS et de Kubernetes en amont.

Pour les clusters automatiques AKS , cet avantage est intégré : les mises à niveau automatiques de cluster sont préconfigurées et activées par défaut à l’aide du canal stable, ce qui élimine la nécessité d’une configuration manuelle ou d’une prise de décision.

AKS suit une fenêtre de contrôle de version stricte en matière de supportabilité. Avec les canaux de mise à niveau automatique correctement sélectionnés, vous pouvez éviter que les clusters tombent dans une version non prise en charge. Pour plus d’informations sur la fenêtre de prise en charge d’AKS, consultez Versions mineures de l’alias.

Mise à niveau automatique du cluster initiée par le client ou par AKS

Vous pouvez spécifier des spécificités de mise à niveau automatique du cluster à l’aide des instructions 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 met automatiquement à niveau les clusters dans la version N-3 (où N est la dernière version mineure d’AKS en disponibilité générale prise en charge) qui sont sur le point de passer à N-4, en les mettant à niveau vers N-2 à la place. Cette action garantit que les clusters demeurent dans la fenêtre de prise en charge AKS. Pour plus d’informations, consultez la fenêtre de support AKS.
  • 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 du cluster

Contraintes de mise à niveau du plan de contrôle

Si vous utilisez la mise à niveau automatique du 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 du 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 génère l’erreur az aks upgrade --control-plane-only 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.

Mise à niveau automatique de l’image du nœud et mises à niveau automatiques non supervisées

Si vous utilisez le canal de mise à niveau automatique du node-image cluster, qui est désormais obsolète et ne doit plus être utilisé, ou le canal de mise à niveau automatique de l’image NodeImage de nœud, les mises à niveau automatiques et non supervisées de Linux sont désactivées par défaut.

Canaux de mise à niveau automatique du cluster

Les mises à niveau effectuées automatiquement sont fonctionnellement identiques aux mises à niveau manuelles. Le canal de mise à niveau automatique sélectionné détermine le minutage des mises à niveau. Lorsque vous apportez des modifications à la mise à niveau automatique, autorisez 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.

Pour les clusters automatiques AKS

Les clusters automatiques AKS utilisent le canal stable par défaut. Ce canal fournit l’équilibre recommandé de rester à jour avec les dernières fonctionnalités et mises à jour de sécurité tout en conservant la stabilité. Les clusters effectuent automatiquement une mise à niveau vers la dernière version corrective sur la version mineure N-1 (où N est la dernière version mineure prise en charge).

Aucune configuration n’est requise : les mises à niveau se produisent automatiquement dans votre fenêtre de maintenance. Vous pouvez si nécessaire définir des fenêtres de maintenance planifiées pour contrôler le moment où les mises à niveau ont lieu, mais le choix du canal est fixé sur le canal stable.

Pourquoi stable pour AKS Automatic ?

  • Maintient les clusters dans la fenêtre de prise en charge N-2 (sûr et conforme)
  • Équilibre l’innovation avec la stabilité
  • Entièrement géré par AKS avec des pratiques de déploiement sécurisées
  • Aligné sur les bonnes pratiques bien architecturées d’AKS
  • Optimisé pour les charges de travail de production

Pour les clusters AKS Standard

Si vous utilisez AKS Standard, choisissez le canal qui correspond le mieux à vos besoins opérationnels.

Les canaux de mise à niveau suivants sont disponibles :

Channel Action  Exemple
none Désactive les rétrogradations automatiques et conserve le cluster à sa version actuelle de Kubernetes. Paramètre par défaut si vous ne modifiez pas la valeur.
patch Met automatiquement à niveau le cluster vers la dernière version de correctif prise en charge lorsqu’il devient disponible tout en conservant la version mineure la même. 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 automatiquement à niveau le cluster vers la dernière version de correctif prise en charge sur la version mineure N-1, où N est 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(hérité) Met automatiquement à niveau l’image de nœud vers la dernière version disponible. Microsoft fournit des correctifs et de nouvelles images pour les nœuds d’image fréquemment (hebdomadairement), mais vos nœuds en cours d’exécution n’obtiennent pas les nouvelles images, sauf si vous effectuez une mise à niveau d’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 une option qui permet de mettre à niveau automatiquement les images de nœud, consultez le canal NodeImage dans la mise à niveau automatique de l’image de 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 met à jour que les versions en disponibilité générale de Kubernetes et ne se met pas à jour vers 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 d’aperçu ou une version ultérieure et que vous sélectionnez le canal de mise à niveau automatique du node-image cluster, le paramètre de mise à niveau de l’image de nœud bascule automatiquement vers le NodeImage canal.

  • Chaque cluster ne peut être associé qu’à un seul canal de mise à niveau automatique. La raison est que votre canal spécifié détermine la version kubernetes qui s’exécute sur le cluster.

Comparaison du mode cluster

Le tableau suivant récapitule la configuration de la mise à niveau automatique du cluster en mode cluster :

Aspect AKS Automatic AKS Standard
Canal par défaut stable (préconfiguré) Sélection manuelle requise
Cadence de mise à niveau Hebdomadaire (fixe à N-1) En fonction de votre canal sélectionné
Configuration requise Aucun - mises à niveau automatiques Oui - Sélectionner le canal et la planification
Recommandé pour La plupart des charges de travail de production Exigences personnalisées ou contraintes spécifiques
Gestion de la fenêtre de maintenance Optional Fortement recommandé
Options de canal disponibles stable uniquement (fixe) patch, stable, rapide, aucun

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

Remarque

Si vous créez un cluster automatique AKS, ignorez ces étapes. Le canal stable est déjà préconfiguré pour les mises à niveau automatiques. Ces étapes s’appliquent uniquement aux clusters AKS Standard.

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

az aks create \
  --resource-group <resource-group-name> \
  --name <cluster-name> \
  --auto-upgrade-channel stable \
  --generate-ssh-keys

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

Remarque

Si vous utilisez un cluster automatique AKS, vous ne pouvez pas modifier le canal de mise à niveau automatique du cluster. Il est préconfiguré pour utiliser le canal « stable ». Ces étapes s’appliquent uniquement aux clusters AKS Standard. Vous pouvez définir des fenêtres de maintenance planifiée pour votre cluster automatique AKS si nécessaire.

Définissez le canal de mise à jour 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 <resource-group-name> \
  --name <cluster-name> \
  --auto-upgrade-channel stable

Résultats :

{
  "id": "/subscriptions/aaaa6a6a-bb7b-cc8c-dd9d-eeeeee0e0e0e/resourceGroups/myResourceGroupabc123/providers/Microsoft.ContainerService/managedClusters/myAKSCluster",
  "properties": {
    "autoUpgradeChannel": "stable",
    "provisioningState": "Succeeded"
  }
}

Utiliser la mise à niveau automatique du cluster avec maintenance planifiée

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

Remarque

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).

Meilleures pratiques pour la mise à niveau automatique du cluster

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

  • Pour vous assurer que votre cluster est toujours sur une version prise en charge, par exemple conforme à la règle N-2, choisissez le canal stable ou rapid. (Remarque : Les clusters automatiques AKS sont utilisés stable par défaut.)
  • Si vous souhaitez obtenir les derniers correctifs dès que possible, utilisez le patch canal.
  • Pour mettre automatiquement à niveau les images de nœud lors de l’utilisation d’un autre canal de mise à niveau de cluster, envisagez d’utiliser le canal de miseNodeImage à niveau automatique de l’image de nœud.
  • Suivez les Meilleures pratiques de l’opérateur.
  • Suivez les meilleures pratiques PodDisruptionBudget (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.

La mise à niveau automatique du cluster est-elle configurée différemment pour AKS Automatic ?

Yes. Les clusters automatiques AKS sont préconfigurés pour utiliser le canal stable par défaut. Vous n’avez pas besoin de configurer quoi que ce soit. Cette configuration fournit les éléments suivants :

  • Mises à niveau automatiques vers le dernier correctif sur la version mineure N-1
  • Cadence de mise à niveau hebdomadaire alignée sur les meilleures pratiques AKS
  • Entièrement géré par AKS avec des pratiques de déploiement sécurisées
  • Gestion de la fenêtre de maintenance (facultatif)
  • Valeurs par défaut prêtes pour la production optimisées pour la plupart des charges de travail

Les clusters AKS Standard vous obligent à sélectionner un canal en fonction de vos besoins spécifiques. Pour migrer d’AKS Standard vers AKS Automatic et tirer parti de ces valeurs par défaut préconfigurées, consultez Qu’est-ce que Azure Kubernetes Service (AKS) Automatique ?

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.

Pour en savoir plus sur les paramètres préconfigurés d'AKS Automatic et les valeurs par défaut prêtes pour la production, consultez Qu'est-ce que Azure Kubernetes Service (AKS) Automatique ?