Mettre à niveau les images de nœud Azure Kubernetes service (AKS)

Azure Kubernetes Service (AKS) fournit régulièrement de nouvelles images de nœud. Il est donc utile de fréquemment mettre à niveau vos images de nœud pour utiliser les fonctionnalités AKS les plus récentes. Les images de nœud Linux sont mises à jour chaque semaine et les images de nœud Windows le sont chaque mois. Les annonces de mise à niveau d’images sont incluses dans les Notes de publication d’AKS et le déploiement de ces mises à jour dans toutes les régions peut prendre jusqu’à une semaine. Vous pouvez aussi effectuer automatiquement des mises à niveau d’images de nœud et les planifier en utilisant une maintenance planifiée. Pour plus d’informations, consultez Mettre à niveau automatiquement les images de nœud.

Cet article explique comment mettre à niveau des images de nœud de cluster AKS et comment mettre à jour des images de pool de nœuds sans mettre à niveau la version Kubernetes. Pour plus d’informations sur la mise à niveau de la version Kubernetes pour votre cluster, consultez Mettre à niveau un cluster AKS.

Notes

Le cluster AKS doit utiliser des groupes de machines virtuelles identiques pour les nœuds.

Il n’est pas possible de passer à une version antérieure d’une image de nœud (par exemple AKSUbuntu-2204 vers AKSUbuntu-1804 ou AKSUbuntu-2204-202308.01.0 vers AKSUbuntu-2204-202307.27.0).

Rechercher les mises à niveau d’images de nœud disponibles

  1. Vérifiez les mises à niveau d’image de nœud disponibles à l’aide de la commande az aks nodepool get-upgrades.

    az aks nodepool get-upgrades \
        --nodepool-name <node-pool-name> \
        --cluster-name <cluster-name> \
        --resource-group <resource-group>
    
  2. Dans la sortie, recherchez et notez la valeur latestNodeImageVersion. Cette valeur est la dernière version de l’image de nœud disponible pour votre pool de nœuds.

  3. Vérifiez la version actuelle de votre image de nœud pour la comparer à la dernière version en utilisant la commande az aks nodepool show.

    az aks nodepool show \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name> \
        --query nodeImageVersion
    
  4. Si la valeur nodeImageVersion est différente de la latestNodeImageVersion, vous pouvez mettre à niveau votre image de nœud.

Mettre à niveau toutes les images de nœud dans l’ensemble des pools de nœuds

  1. Mettez à niveau toutes les images de nœud dans tous les pools de nœuds de votre cluster à l’aide de la commande az aks upgrade avec l’indicateur --node-image-only.

    az aks upgrade \
        --resource-group <resource-group> \
        --name <cluster-name> \
        --node-image-only
    
  2. Vous pouvez vérifier l’état des images de nœud à l’aide de la commande kubectl get nodes.

    Remarque

    Cette commande peut différer légèrement selon l’interpréteur de commandes que vous utilisez. Pour plus d’informations sur les environnements Windows et PowerShell, consultez la documentation Kubernetes JSONPath.

    kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
    
  3. Une fois la mise à niveau terminée, utilisez la commande az aks show pour obtenir des détails sur le pool de nœuds mis à jour. L’image de nœud actuelle est affichée dans la propriété nodeImageVersion.

    az aks show \
        --resource-group <resource-group> \
        --name <cluster-name>
    

Mettre à niveau un pool de nœuds spécifique

  1. Mettez à jour l’image du système d’exploitation du pool de nœuds sans effectuer de mise à niveau du cluster Kubernetes en utilisant la commande az aks nodepool upgrade avec l’indicateur --node-image-only.

    az aks nodepool upgrade \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name> \
        --node-image-only
    
  2. Vous pouvez vérifier l’état des images de nœud avec la commande kubectl get nodes.

    Notes

    Cette commande peut différer légèrement selon l’interpréteur de commandes que vous utilisez. Pour plus d’informations sur les environnements Windows et PowerShell, consultez la documentation Kubernetes JSONPath.

    kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
    
  3. Une fois la mise à niveau terminée, utilisez la commande az aks nodepool show pour obtenir des détails sur le pool de nœuds mis à jour. L’image de nœud actuelle est affichée dans la propriété nodeImageVersion.

    az aks nodepool show \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name>
    

Mettre à niveau les images de nœud à l’aide de l’augmentation du nombre de nœuds

Pour accélérer le processus de mise à niveau des images de nœud, vous pouvez mettre à niveau vos images de nœud à l’aide d’une valeur personnalisable d’augmentation du nombre de nœuds. Par défaut, AKS utilise un nœud supplémentaire pour configurer les mises à niveau.

  1. Mettez à niveau les images de nœud avec l’augmentation du nombre de nœuds en utilisant la commande az aks nodepool update avec l’indicateur --max-surge pour configurer le nombre de nœuds utilisés pour les mises à niveau.

    Remarque

    Pour en savoir plus sur les compromis des différents paramètres --max-surge, consultez Personnaliser la mise à niveau avec l’augmentation du nombre de nœuds.

    az aks nodepool update \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name> \
        --max-surge 33% \
        --no-wait
    
  2. Vous pouvez vérifier l’état des images de nœud avec la commande kubectl get nodes.

    kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
    
  3. Obtenez les détails du pool de nœuds mis à jour en utilisant az aks nodepool show pour obtenir les détails du pool de nœuds mis à jour. L’image de nœud actuelle est affichée dans la propriété nodeImageVersion.

    az aks nodepool show \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name>
    

Étapes suivantes