Mettre à niveau automatiquement les images de système d’exploitation du nœud

AKS fournit plusieurs canaux de mise à niveau automatique dédiés à l’application en temps opportun de correctifs de sécurité de système d’exploitation au niveau du nœud. Ce canal est différent du canal de mise à niveau de la version de Kubernetes au niveau du cluster et le remplace.

Interactions entre la mise à niveau automatique du système d’exploitation du nœud et la mise à niveau automatique du cluster

Les mises à jour de sécurité du système d’exploitation au niveau du nœud sont publiées à une fréquence plus élevée que les mises à jour correctives ou les mises à jour de version mineure de Kubernetes. Le canal de mise à niveau automatique du système d’exploitation de nœud vous offre de la flexibilité et permet d’avoir une stratégie personnalisée pour les mises à jour de sécurité du système d’exploitation au niveau du nœud. Ensuite, vous pouvez choisir un plan distinct pour les mises à niveau automatiques de version Kubernetes au niveau du cluster. Il est préférable d’utiliser simultanément les mises à niveau automatiques au niveau du cluster et le canal de mise à niveau automatique du système d’exploitation du nœud. La planification peut être affinée en appliquant deux ensembles distincts de fenêtres de maintenance - aksManagedAutoUpgradeSchedule pour le canal de mise à niveau automatique du cluster et aksManagedNodeOSUpgradeSchedule pour le canal de mise à niveau automatique du système d’exploitation du nœud.

Canaux pour les mises à niveau de l’image de système d’exploitation du nœud

Le canal sélectionné détermine la planification des mises à niveau. Lorsque vous apportez des modifications aux canaux de mise à niveau automatique du système d’exploitation du nœud, prévoyez 24 heures pour que les modifications prennent effet. Une fois que vous passez d’un canal à un autre, une réinitialisation est déclenchée, ce qui entraîne des nœuds tournants.

Remarque

La mise à niveau automatique de l’image du système d’exploitation de nœud n’affecte pas la version Kubernetes du cluster. Elle fonctionne uniquement pour un cluster dans une version prise en charge.

Les canaux de mise à niveau suivants sont disponibles. Vous êtes autorisé à choisir l’une des options suivantes :

Canal Description Comportement spécifique au système d’exploitation
None Vos nœuds n’ont pas de mises à jour de sécurité appliquées automatiquement. Cela signifie que vous êtes seul responsable de vos mises à jour de sécurité. N/A
Unmanaged Les mises à jour du système d’exploitation sont appliquées automatiquement via l’infrastructure de mise à jour corrective intégrée du système d’exploitation. Les machines nouvellement allouées n’ont pas de patchs appliqués initialement. L’infrastructure du système d’exploitation applique des patchs à un moment donné. Ubuntu et Azure Linux (pools de nœuds de processeur) appliquent les correctifs de sécurité en utilisant une mise à niveau sans assistance/dnf-automatic environ une fois par jour vers 06:00 UTC. Windows n’applique pas automatiquement les correctifs de sécurité. Cette option se comporte donc de manière équivalente à None. Vous devez gérer le processus de redémarrage à l’aide d’un outil tel que kured.
SecurityPatch Ce canal est en préversion et nécessite l’activation de l’indicateur de fonctionnalité NodeOsUpgradeChannelPreview. Pour obtenir des informations détaillées, reportez-vous à la section des prérequis. AKS met régulièrement à jour le disque dur virtuel (VHD) du nœud avec les correctifs du gestionnaire d’images étiquetés « sécurité uniquement ». Il peut y avoir des interruptions lorsque les correctifs de sécurité sont appliqués aux nœuds. Lorsque les patchs sont appliqués, le VHD est mis à jour et les machines existantes sont mises à niveau vers ce VHD, en respectant les fenêtres de maintenance et les paramètres de surtension. Cette option entraîne des coûts supplémentaires liés à l’hébergement des disques durs virtuels dans votre groupe de ressources de nœud. Si vous utilisez ce canal, les mises à niveau sans assistance de Linux sont désactivées par défaut. Azure Linux ne prend pas en charge ce canal sur les machines virtuelles avec GPU. SecurityPatch fonctionne sur les versions correctives qui sont dépréciées, à condition que la version mineure de Kubernetes soit toujours prise en charge.
NodeImage AKS met à jour les nœuds avec un disque dur virtuel récemment corrigé contenant des correctifs de sécurité et des correctifs de bogues à une cadence hebdomadaire. La mise à jour du nouveau disque dur virtuel entraîne une interruption suite aux fenêtres de maintenance et aux paramètres de surtension. Aucun coût de disque dur virtuel supplémentaire n’est encouru si cette option est choisie. Si vous utilisez ce canal, les mises à niveau sans assistance de Linux sont désactivées par défaut. Les mises à niveau d’images de nœud prennent en charge les versions correctives déconseillées tant que la version mineure de Kubernetes est prise en charge.

Définir le canal de mise à niveau automatique du système d’exploitation du nœud sur un nouveau cluster

  • Définissez le canal de mise à niveau automatique du système d’exploitation du nœud sur un nouveau cluster à l’aide de laaz aks create commande avec le --node-os-upgrade-channelparamètre. L’exemple suivant définit le canal de mise à niveau automatique du système d’exploitation du nœud sur SecurityPatch.

    az aks create --resource-group myResourceGroup --name myAKSCluster --node-os-upgrade-channel SecurityPatch
    

Définir le canal de mise à niveau automatique du système d’exploitation du nœud sur un cluster existant

  • Définissez le canal de mise à niveau automatique de node os sur un cluster existant à l’aide de la commande az aks update avec le paramètre --node-os-upgrade-channel. L’exemple suivant définit le canal de mise à niveau automatique du système d’exploitation du nœud sur SecurityPatch.

    az aks update --resource-group myResourceGroup --name myAKSCluster --node-os-upgrade-channel SecurityPatch
    

Mettre à jour la propriété et la planification

La fréquence par défaut signifie qu’aucune fenêtre de maintenance planifiée n’est appliquée.

Canal Propriété des mises à jour Fréquence par défaut
Unmanaged Mises à jour de sécurité pilotées par le système d’exploitation. AKS n’a pas de contrôle sur ces mises à jour. Toutes les nuits autour de 6 h 00 UTC pour Ubuntu et Azure Linux. Tous les mois pour Windows.
SecurityPatch Les tests AKS, entièrement gérés et appliqués avec des pratiques de déploiement sécurisées. Pour plus d’informations, consultez Sécurité et résilience accrues des charges de travail canoniques sur Azure. Toutes les semaines.
NodeImage AKS Toutes les semaines.

Remarque

Bien que les correctifs de sécurité Windows soient publiés tous les mois, l’utilisation du canal Unmanaged n’applique pas automatiquement ces correctifs aux nœuds Windows. Si vous choisissez le canal Unmanaged, vous devez gérer le processus de redémarrage à l’aide d’un outil tel que kured afin d’appliquer correctement les correctifs de sécurité.

Exigences du canal SecurityPatch

Pour utiliser le canal SecurityPatch, votre cluster doit respecter ces exigences :

  • Doit utiliser la version de l’API 11-02-preview ou une version ultérieure
  • Si vous utilisez Azure CLI, la version de l’extension CLI aks-preview0.5.166 ou une version ultérieure doit être installée
  • L’indicateur de fonctionnalité NodeOsUpgradeChannelPreview doit être activé sur votre abonnement

Inscrire NodeOsUpgradeChannelPreview

Inscrivez l’indicateur de fonctionnalité NodeOsUpgradeChannelPreview à l’aide de la commande az feature register, comme indiqué dans l’exemple suivant :

az feature register --namespace "Microsoft.ContainerService" --name "NodeOsUpgradeChannelPreview"

Quelques minutes sont nécessaires pour que l’état s’affiche Registered (Inscrit). Vérifiez l’état de l’inscription à l’aide de la commande az feature show :

az feature show --namespace "Microsoft.ContainerService" --name "NodeOsUpgradeChannelPreview"

Une fois que l’état reflète Inscrit, actualisez l’inscription du fournisseur de ressources Microsoft.ContainerService à l’aide de la commande az provider register :

az provider register --namespace Microsoft.ContainerService

Bogues connus dans le canal du nœud

  • Actuellement, lorsque vous définissez le canal de mise à niveau automatique du cluster sur node-image, il définit également automatiquement le canal de mise à niveau automatique du système d’exploitation du nœud sur NodeImage. Vous ne pouvez pas modifier la valeur du canal de mise à niveau automatique du système d’exploitation du nœud si le canal de mise à niveau automatique de votre cluster est node-image. Pour définir la valeur du canal de mise à niveau automatique du système d’exploitation du nœud, vérifiez que la valeur du canal de mise à niveau automatique du cluster n’est pas node-image.

  • Le canal SecurityPatch n’est pas pris en charge sur les pools de nœuds de système d’exploitation Windows.

Remarque

Par défaut, tout nouveau cluster créé avec la version d’API 06-01-2022 ou une version ultérieure définit la valeur du canal de mise à niveau automatique du système d’exploitation du nœud sur NodeImage. Tous les clusters existants créés avec une version d’API antérieure à 06-01-2022 auront la valeur du canal de mise à niveau automatique du système d’exploitation du nœud définie sur None par défaut.

Fenêtres de maintenance planifiée du système d’exploitation du nœud

La maintenance planifiée de la mise à niveau automatique du système d’exploitation du nœud démarre dans la 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 la maintenance planifiée, consultez Utiliser la maintenance planifiée pour planifier les fenêtres de maintenance de votre cluster Azure Kubernetes service (AKS).

FAQ sur les mises à niveau automatiques du système d’exploitation du nœud

  • Comment puis-je vérifier la valeur nodeOsUpgradeChannel actuelle sur un cluster ?

Exécutez la commande az aks show et vérifiez « autoUpgradeProfile » pour déterminer la valeur sur laquelle nodeOsUpgradeChannel est défini :

az aks show --resource-group myResourceGroup --name myAKSCluster --query "autoUpgradeProfile"
  • Comment puis-je surveiller l’état des mises à niveau automatiques du système d’exploitation du nœud ?

Pour afficher l’état de vos mises à niveau automatiques du système d’exploitation du nœud, recherchez les journaux d’activité sur votre cluster. Vous pouvez également rechercher des événements liés à une mise à niveau spécifique, comme indiqué dans Mettre à niveau un cluster AKS. AKS émet également des événements Event Grid liés à la mise à niveau. Pour plus d’informations, consultez AKS en tant que source Event Grid.

  • Puis-je modifier la valeur du canal de mise à niveau automatique du système d’exploitation du nœud si le canal de mise à niveau automatique de mon cluster est défini sur node-image ?

Nombre Actuellement, lorsque vous définissez le canal de mise à niveau automatique du cluster sur node-image, il définit également automatiquement le canal de mise à niveau automatique du système d’exploitation du nœud sur NodeImage. Vous ne pouvez pas modifier la valeur du canal de mise à niveau automatique du système d’exploitation du nœud si le canal de mise à niveau automatique de votre cluster est node-image. Pour pouvoir modifier les valeurs du canal de mise à niveau automatique du système d’exploitation du nœud, vérifiez que le canal de mise à niveau automatique du cluster n’est pas node-image.

  • Pourquoi SecurityPatch est-il recommandé sur Unmanaged canal ?

Sur le canal Unmanaged , AKS n’a aucun contrôle sur la façon et l’heure de remise des mises à jour de sécurité. Avec SecurityPatch, les mises à jour de sécurité sont entièrement testées et suivent les pratiques de déploiement sécurisées. SecurityPatch honore également les fenêtres de maintenance. Pour plus de détails, consultez Sécurité et résilience accrues des charges de travail canoniques sur Azure.

  • Comment savoir si une mise à niveau SecurityPatch ou NodeImage est appliquée sur mon nœud ?

Exécutez la commande suivante pour obtenir des étiquettes de nœud :

kubectl get nodes --show-labels

Parmi les étiquettes retournées, vous devez voir une ligne similaire à la sortie suivante :

kubernetes.azure.com/node-image-version=AKSUbuntu-2204gen2containerd-202311.07.0

Ici, la version de l’image de nœud de base est AKSUbuntu-2204gen2containerd. Le cas échéant, la version du correctif de sécurité suit généralement. Dans l’exemple ci-dessus, il s’agit de 202311.07.0.

Vous pouvez également accéder aux mêmes détails dans le portail Azure sous la vue des étiquettes de nœud :

Une capture d’écran de la page nœuds d’un cluster AKS dans le portail Azure. L’étiquette de la version de l’image du nœud indique clairement l’image du nœud de base et la date du dernier correctif de sécurité appliqué.

Étapes suivantes

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.