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
- Pour plus d’informations sur les images de nœud les plus récentes, consultez les notes de publication AKS.
- Apprenez à mettre à niveau la version de Kubernetes avec la section Mettre à niveau un cluster AKS.
- Appliquez automatiquement des mises à niveau de pools de nœuds et de clusters avec GitHub Actions.
- En savoir plus sur les pools de nœuds multiples avec Créer plusieurs pools de nœuds.
- Pour obtenir une discussion détaillée sur les meilleures pratiques de mise à niveau et d’autres considérations, consultez Instructions de patch et de mise à niveau AKS.