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. Les mises à niveau d’images de nœud peuvent également être effectuées automatiquement et planifiées à l’aide d’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

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 mynodepool \
    --cluster-name myAKSCluster \
    --resource-group myResourceGroup

La sortie affiche la latestNodeImageVersion, comme dans l’exemple suivant :

{
  "id": "/subscriptions/XXXX-XXX-XXX-XXX-XXXXX/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/agentPools/mynodepool/upgradeProfiles/default",
  "kubernetesVersion": "1.17.11",
  "latestNodeImageVersion": "AKSUbuntu-1604-2020.10.28",
  "name": "default",
  "osType": "Linux",
  "resourceGroup": "myResourceGroup",
  "type": "Microsoft.ContainerService/managedClusters/agentPools/upgradeProfiles",
  "upgrades": null
}

L’exemple de sortie affiche AKSUbuntu-1604-2020.10.28 en tant que latestNodeImageVersion.

Comparez la dernière version avec la version actuelle de votre image de nœud à l’aide de la commande az aks nodepool show.

az aks nodepool show \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool \
    --query nodeImageVersion

Vous devez obtenir un résultat semblable à l’exemple qui suit :

"AKSUbuntu-1604-2020.10.08"

Dans cet exemple, il existe une mise à niveau de version d’image de nœud disponible, qui passe de la version AKSUbuntu-1604-2020.10.08 à la version AKSUbuntu-1604-2020.10.28.

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

Mettez à niveau l’image de nœud en tirant parti de la az aks upgrade commande avec l’indicateur --node-image-only.

az aks upgrade \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-image-only

Vous pouvez vérifier l’état des images de nœud à l’aide de 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}'

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 myResourceGroup \
    --name myAKSCluster

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

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

az aks nodepool upgrade \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool \
    --node-image-only

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}'

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 myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool

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.

Si vous souhaitez augmenter la vitesse des mises à niveau, utilisez la commande az aks nodepool update avec l’indicateur --max-surge pour configurer le nombre de nœuds utilisés pour les mises à niveau. 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 myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool \
    --max-surge 33% \
    --no-wait

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}'

Utilisez az aks nodepool show pour récupérer 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 myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool

Étapes suivantes