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 propagés.

Remarque

La mise à niveau automatique de l’image du système d’exploitation de nœud n’affecte pas la version Kubernetes du cluster. À compter de la version d’API 2023-06-01, la valeur par défaut pour tout nouveau cluster créé est NodeImage.

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 en utilisant un outil tel que kured.
SecurityPatch Les correctifs de sécurité de système d’exploitation, qui sont testés par AKS, entièrement gérés et appliqués avec des pratiques de déploiement sécurisées. 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. Toutefois, AKS limite les perturbations en réinitialisant uniquement vos nœuds lorsque cela est nécessaire, comme pour certains packages de sécurité de noyau. 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. Si AKS décide que la réinitialisation des nœuds n’est pas nécessaire, il corrige les nœuds en direct sans vider les pods et n’effectue aucune mise à jour de VHD. 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 Kubernetes qui sont déconseillé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. Les images de nœud sont testées par AKS, entièrement gérées et appliquées avec des pratiques de déploiement sécurisées

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 \
        --generate-ssh-keys
    

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 Les tests AKS, entièrement gérés et appliqués avec des pratiques de déploiement sécurisées. Pour découvrir des informations en temps réel sur des versions, voir Images de nœud AKS dans le dispositif de suivi des mises en production 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 pour les nœuds Windows.

Limitations connues de chaîne de 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

Utilisez CLI version 2.61.0 ou ultérieure pour le canal SecurityPatch.

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.

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.

Est-ce que SecurityPatch entraîne toujours une réinitialisation de mes nœuds ?

AKS limites les réinitialisations à ce qui est absolument nécessaire, comme certains packages de noyau pouvant nécessiter une réinitialisation afin d’être complètement appliqués. SecurityPatch est conçu pour minimiser autant que possible les perturbations. Si AKS décide que la réinitialisation de nœuds n’est pas nécessaire, il patch des nœuds en direct sans les drainer et aucune mise à jour VHD n’est effectuée dans ces cas.

Pourquoi le canal SecurityPatch doit-il atteindre le point de terminaison snapshot.ubuntu.com ?

Avec le canal SecurityPatch, les nœuds de cluster Linux doivent télécharger les correctifs de sécurité et les mises à jour nécessaires à partir du service d’instantané ubuntu décrits dans ubuntu-snapshots-on-azure-ensuring-predictability-and-consistency-in-cloud-deployments.

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.