Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Au cours du cycle de vie des applications et des clusters, vous pouvez vouloir effectuer une mise à niveau vers la dernière version disponible de Kubernetes. Vous pouvez mettre à niveau votre cluster Azure Kubernetes Service (AKS) à l'aide de l’interface de ligne de commande Azure (Azure CLI), d'Azure PowerShell ou du portail Azure.
Dans ce tutoriel, vous mettez à niveau un cluster AKS. Vous allez apprendre à effectuer les actions suivantes :
- Identifier les versions Kubernetes actuelles et disponibles.
- Mettre à niveau vos nœuds Kubernetes.
- Valider une mise à niveau réussie.
Avant de commencer
Dans les didacticiels précédents, vous avez empaqueté une application dans une image conteneur, puis chargé l’image conteneur dans Azure Container Registry (ACR). Vous avez également créé un cluster AKS et déployé une application dans celui-ci. Si vous n’avez pas effectué ces étapes et voulez suivre cette procédure, commencez par Tutoriel 1 : préparer une application pour AKS.
Si vous utilisez Azure CLI, ce tutoriel nécessite Azure CLI version 2.34.1 ou ultérieure. Exécutez az --version pour trouver la version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.
Si vous utilisez Azure PowerShell, ce tutoriel nécessite Azure PowerShell version 5.9.0 ou ultérieure. Exécutez Get-InstalledModule -Name Az pour trouver la version. Si vous avez besoin de procéder à une installation ou à une mise à niveau, consultez Installer Azure PowerShell.
Pour mettre à niveau un cluster AKS, vous avez besoin du rôle contributeur Azure Kubernetes Service ou des autorisations équivalentes.
Avant de procéder à la mise à niveau, passez en revue les notes de publication AKS pour connaître les changements cassants et les API déconseillées. Validez également les budgets de perturbation des pods (PDB) de votre charge de travail, le quota de calcul disponible et la capacité en adresses IP du sous-réseau pour les nœuds supplémentaires. Pour plus d’informations, consultez les options de mise à niveau et les recommandations pour les clusters AKS.
Obtenir les versions de cluster disponibles à l’aide de la Azure CLI
Avant de procéder à la mise à niveau, vérifiez quelles versions Kubernetes sont disponibles pour votre cluster à l’aide de la az aks get-upgrades commande.
az aks get-upgrades --resource-group myResourceGroup --name myAKSCluster
L’exemple de sortie suivant montre la version actuelle d’un cluster et répertorie les versions plus récentes sous upgrades:
{
"agentPoolProfiles": null,
"controlPlaneProfile": {
"kubernetesVersion": "1.33.7",
...
"upgrades": [
{
"isPreview": null,
"kubernetesVersion": "1.34.10"
},
{
"isPreview": null,
"kubernetesVersion": "1.34.9"
}
]
},
...
}
Obtenir les versions de cluster disponibles à l’aide de Azure PowerShell
Avant de procéder à la mise à niveau, vérifiez la version et la région actuelles de Kubernetes de votre cluster à l’aide de l’applet de
Get-AzAksClustercommande.Get-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster | Select-Object -Property Name, CurrentKubernetesVersion, LocationL’exemple de sortie suivant montre la version et l’emplacement actuels du cluster :
Name CurrentKubernetesVersion Location ---- ------------------------ -------- myAKSCluster 1.33.7 westus2Répertoriez les versions kubernetes disponibles dans la région où réside votre cluster à l’aide de l’applet
Get-AzAksVersionde commande.Get-AzAksVersion -Location westus2 | Where-Object OrchestratorVersionL’exemple de sortie suivant montre les versions régionales sous
OrchestratorVersion:Default IsPreview OrchestratorType OrchestratorVersion ------- --------- ---------------- ------------------- Kubernetes 1.34.10 Kubernetes 1.34.9 True Kubernetes 1.33.7 ...Pour identifier les cibles de mise à niveau potentielles, comparez les versions plus récentes que la version actuelle de votre cluster avec les règles de mise à niveau de version Kubernetes. Cette applet de commande répertorie la disponibilité régionale et ne valide pas le chemin de mise à niveau d’un cluster spécifique.
Obtenir les versions de cluster disponibles à l’aide du portail Azure
Connectez-vous au portail Azure.
Accédez à votre ressource de cluster AKS.
Dans le menu du service, sous Paramètres, sélectionnez Mises à niveau.
Par version de Kubernetes, sélectionnez Mettre à niveau la version.
Dans la page Mettre à niveau la version de Kubernetes , sélectionnez la liste déroulante Version de Kubernetes pour afficher les versions de Kubernetes disponibles pour la mise à niveau.
Si aucune mise à niveau n’est disponible, votre cluster peut déjà se trouver sur la dernière version disponible ou la version du cluster peut se trouver en dehors de la fenêtre de support. Si la version n’est pas prise en charge et qu’AKS n’offre pas de mise à niveau de récupération, créez un cluster avec une version Kubernetes prise en charge et migrez vos charges de travail. Pour plus d’informations, consultez les stratégies de prise en charge AKS pour les versions de Kubernetes.
Processus de mise à niveau du cluster AKS
Les nœuds AKS sont soigneusement coordonnés et purgés afin de limiter les perturbations potentielles pour les applications en cours d’exécution. Au cours de ce processus, AKS effectue les étapes suivantes :
- Il ajoute un nouveau nœud de tampon (ou autant de nœuds que ceux configurés dans max-surge) au cluster qui exécute la version de Kubernetes spécifiée.
- Il effectue l’isolation et le drainage de l’un des anciens nœuds afin de limiter la perturbation des applications en cours d’exécution. Si vous utilisez max surge, il isole et draine simultanément autant de nœuds que le nombre de nœuds de tampon spécifié.
- Lorsqu'il est entièrement drainé, l'ancien nœud est reconfiguré pour recevoir la nouvelle version et devient le nœud tampon pour le nœud suivant à mettre à niveau.
- Ce processus se répète jusqu’à ce que tous les nœuds du cluster soient mis à niveau.
- À la fin du processus, le dernier nœud tampon est supprimé, ce qui a pour effet de maintenir le nombre de nœuds d’agent existants et l’équilibre de la zone.
Remarque
Si aucun patch n’est spécifié, le cluster est automatiquement mis à niveau vers le dernier patch GA de la version mineure spécifiée. Par exemple, la définition de --kubernetes-version sur 1.28 entraîne la mise à niveau du cluster vers 1.28.9.
Pour plus d’informations, consultez Mises à niveau des versions mineures de Kubernetes prises en charge dans AKS.
Vous pouvez mettre à niveau manuellement votre cluster ou configurer des mises à niveau automatiques de cluster. Configurez les mises à niveau automatiques de cluster pour aider à maintenir votre cluster sur une version prise en charge de Kubernetes.
Mettre à niveau manuellement le cluster à l’aide du Azure CLI
Mettez à niveau votre cluster à l’aide de la az aks upgrade commande. Cet exemple met à niveau le cluster vers la version 1.34.10 :
az aks upgrade \
--resource-group myResourceGroup \
--name myAKSCluster \
--kubernetes-version 1.34.10
Remarque
Les clusters non LTS pris en charge doivent être mis à niveau séquentiellement par version mineure. Par exemple, pour effectuer une mise à niveau de la version 1.33.x vers la version 1.35.x, commencez par effectuer une mise à niveau vers la version 1.34.x. Un cluster LTS peut ignorer les versions mineures lors du passage à une version LTS supérieure proposée par AKS si la mise à niveau répond aux exigences et aux vérifications de validation des versions. Pour plus d’informations, consultez les règles de mise à niveau des versions de Kubernetes.
L’exemple de sortie suivant montre le résultat de la mise à niveau. La kubernetesVersion valeur correspond maintenant à la version spécifiée dans l’exemple de commande :
{
...
"agentPoolProfiles": [
{
...
"count": 3,
"currentOrchestratorVersion": "1.34.10",
"maxPods": 110,
"name": "nodepool1",
"nodeImageVersion": "AKSUbuntu-2204gen2containerd-202608.26.0",
"orchestratorVersion": "1.34.10",
"osType": "Linux",
"upgradeSettings": {
"drainTimeoutInMinutes": null,
"maxSurge": "10%",
"nodeSoakDurationInMinutes": null,
"undrainableNodeBehavior": null
},
"vmSize": "Standard_DS2_v2",
...
}
],
...
"currentKubernetesVersion": "1.34.10",
"dnsPrefix": "myAKSClust-myResourceGroup-12ab34",
"enableRbac": false,
"fqdn": "myaksclust-myresourcegroup-12ab34-cd56e7fg.hcp.westus2.azmk8s.io",
"id": "/subscriptions/<Subscription ID>/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster",
"kubernetesVersion": "1.34.10",
"location": "westus2",
"name": "myAKSCluster",
"type": "Microsoft.ContainerService/ManagedClusters"
...
}
Mettre à niveau manuellement un cluster à l’aide de Azure PowerShell
Mettez à niveau votre cluster à l’aide de l’applet de commande Set-AzAksCluster. Cet exemple met à niveau le cluster vers la version 1.34.10 :
Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -KubernetesVersion 1.34.10
Remarque
Les clusters non LTS pris en charge doivent être mis à niveau séquentiellement par version mineure. Par exemple, pour effectuer une mise à niveau de la version 1.33.x vers la version 1.35.x, commencez par effectuer une mise à niveau vers la version 1.34.x. Un cluster LTS peut ignorer les versions mineures lors du passage à une version LTS supérieure proposée par AKS si la mise à niveau répond aux exigences et aux vérifications de validation des versions. Pour plus d’informations, consultez les règles de mise à niveau des versions de Kubernetes.
L’exemple de sortie suivant montre le résultat de la mise à niveau. La KubernetesVersion valeur correspond maintenant à la version spécifiée dans l’exemple d’applet de commande :
...
ProvisioningState : Succeeded
MaxAgentPools : 100
KubernetesVersion : 1.34.10
CurrentKubernetesVersion : 1.34.10
...
ResourceGroupName : myResourceGroup
Name : myAKSCluster
Type : Microsoft.ContainerService/ManagedClusters
Location : westus2
Tags :
Mettre à niveau manuellement le cluster à l’aide du portail Azure
Dans le portail Azure, naviguez vers la ressource de votre cluster AKS.
Dans le menu du service, sous Paramètres, sélectionnez Mises à niveau.
Par version de Kubernetes, sélectionnez Mettre à niveau la version.
Dans la page Mettre à niveau la version de Kubernetes , sélectionnez la liste déroulante Version de Kubernetes pour afficher les versions de Kubernetes disponibles pour la mise à niveau.
Sélectionnez la version de Kubernetes vers laquelle vous souhaitez effectuer la mise à niveau, puis sélectionnez Enregistrer.
La durée de la mise à niveau dépend de facteurs tels que le nombre de nœuds, les paramètres de surge, les contraintes de perturbation des charges de travail, le délai d’expiration du drain et la durée de stabilisation des nœuds. Le délai d’expiration du drainage par défaut est de 30 minutes par nœud et peut être configuré de cinq minutes à 24 heures. La durée de trempage du nœud peut ajouter de 0 à 30 minutes par nœud. Pour plus d’informations, consultez Personnaliser l’augmentation du pool de nœuds et les paramètres non disponibles.
Configurer des mises à niveau automatiques de cluster à l’aide de l’Azure CLI
Configurer des mises à niveau automatiques de cluster à l’aide de Azure PowerShell
Configurer des mises à niveau automatiques de cluster à l’aide du portail Azure
Les clusters automatiques AKS utilisent le stable canal et vous n’avez pas besoin de configurer un canal. Pour les clusters AKS Standard, sélectionnez un canal en fonction de votre stratégie de version. Les canaux stable et rapid font passer Kubernetes à des versions mineures ultérieures et aident à maintenir le cluster dans la plage de versions prises en charge. Le patch canal installe uniquement les correctifs pour la version mineure actuelle et n’avance pas le cluster vers une version mineure plus récente.
Sur un cluster AKS Standard, définissez le canal de mise à niveau automatique à l’aide de la az aks update commande. L’exemple suivant utilise le stable canal :
az aks update --resource-group myResourceGroup --name myAKSCluster --auto-upgrade-channel stable
Sur un cluster AKS Standard, définissez le canal de mise à niveau automatique à l’aide du cmdlet Set-AzAksCluster. L’exemple suivant utilise le Stable canal :
Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -AutoUpgradeChannel Stable
Dans le portail Azure, naviguez vers la ressource de votre cluster AKS.
Dans le menu du service, sous Paramètres, sélectionnez Mises à niveau.
Par version de Kubernetes, sélectionnez Mettre à niveau la version.
Pour un cluster AKS Standard, sur la page Mettre à niveau la version de Kubernetes, sélectionnez la liste déroulante Mise à niveau automatique, sélectionnez Activée avec la version stable, puis sélectionnez Enregistrer.
Pour plus d’informations, consultez Mettre à niveau automatiquement un cluster Azure Kubernetes Service (AKS).
Mise à niveau des images de nœud
AKS fournit régulièrement de nouvelles images de nœud. Les images de nœud Linux sont mises à jour chaque semaine et les images de nœud Windows le sont chaque mois. Nous vous recommandons de mettre à niveau fréquemment vos images de nœud pour utiliser les dernières fonctionnalités et mises à jour de sécurité AKS. Pour plus d’informations, consultez Mise à niveau des images des nœuds dans Azure Kubernetes Service (AKS). Pour configurer les mises à niveau automatiques d’images de nœud, consultez Mettre à niveau automatiquement les images de système d’exploitation de nœud de cluster Azure Kubernetes Service (AKS).
Afficher les événements de mise à niveau
Remarque
Lorsque vous mettez votre cluster à niveau, les événements Kubernetes suivants peuvent se produire sur les nœuds :
- Surge (Surtension) : création d’un nœud de surtension.
- Drain(Vidage) : supprime les pods du nœud. Par défaut, AKS accorde 30 minutes pour drainer un nœud. Vous pouvez configurer le délai d’expiration du drainage de cinq minutes à 24 heures.
- Update (Mise à jour) : Réussite ou échec de la mise à jour d’un nœud.
- Delete (Suppression) : supprimer un nœud de surtension.
Utilisez la kubectl get commande avec un sélecteur de champ pour afficher les événements de mise à niveau AKS dans l’espace de noms par défaut.
kubectl get events --field-selector source=upgrader
L’exemple de sortie suivant montre certains des événements précédents répertoriés lors d’une mise à niveau :
LAST SEEN TYPE REASON OBJECT MESSAGE
...
5m Normal Drain node/aks-nodepool1-12345678-vmss000000 Draining node: aks-nodepool1-12345678-vmss000000
5m Normal Upgrade node/aks-nodepool1-12345678-vmss000000 Deleting node aks-nodepool1-12345678-vmss000000 from API server
4m Normal Upgrade node/aks-nodepool1-12345678-vmss000000 Successfully reimaged node: aks-nodepool1-12345678-vmss000000
4m Normal Upgrade node/aks-nodepool1-12345678-vmss000000 Successfully upgraded node: aks-nodepool1-12345678-vmss000000
4m Normal Drain node/aks-nodepool1-12345678-vmss000000 Draining node: aks-nodepool1-12345678-vmss000000
...
Valider une mise à niveau à l’aide de la Azure CLI
Vérifiez que la mise à niveau a réussi à l’aide de la az aks show commande.
az aks show --resource-group myResourceGroup --name myAKSCluster --output table
L’exemple de sortie suivant montre que le cluster AKS exécute la version de Kubernetes cible :
Name Location ResourceGroup KubernetesVersion CurrentKubernetesVersion ProvisioningState Fqdn
------------ ---------- --------------- ------------------- ------------------------ ------------------- ----------------------------------------------------------------
myAKSCluster westus2 myResourceGroup 1.34.10 1.34.10 Succeeded myaksclust-myresourcegroup-12ab34-cd56e7fg.hcp.westus2.azmk8s.io
Valider une mise à niveau à l’aide de Azure PowerShell
Vérifiez que la mise à niveau a réussi à l’aide de l’applet de commande Get-AzAksCluster.
Get-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster |
Select-Object -Property Name, Location, KubernetesVersion, ProvisioningState
L’exemple de sortie suivant montre que le cluster AKS exécute la version de Kubernetes cible :
Name Location KubernetesVersion ProvisioningState
---- -------- ----------------- -----------------
myAKSCluster westus2 1.34.10 Succeeded
Valider une mise à niveau à l’aide du portail Azure
- Dans le portail Azure, naviguez vers la ressource de votre cluster AKS.
- Dans la page Vue d’ensemble , sous Essentials, vérifiez la version de Kubernetes pour confirmer que la mise à niveau a réussi.
Supprimer le cluster à l’aide du Azure CLI
Supprimer le cluster à l’aide de Azure PowerShell
Supprimer le cluster à l’aide du portail Azure
Comme ce tutoriel est la dernière partie de la série, vous pouvez supprimer votre cluster AKS pour éviter les frais Azure.
Supprimez le groupe de ressources, le service de conteneur et toutes les ressources associées à l’aide de la az group delete commande.
az group delete --name myResourceGroup --yes --no-wait
Supprimez le groupe de ressources, le service de conteneur ainsi que toutes les ressources associées à l’aide de l’applet de commande Remove-AzResourceGroup.
Remove-AzResourceGroup -Name myResourceGroup
- Dans le portail Azure, naviguez vers la ressource de votre cluster AKS.
- Dans la page Vue d’ensemble, sélectionnez Supprimer.
- Dans la page de confirmation Supprimer le cluster, sélectionnez Supprimer.
Remarque
Lorsque vous supprimez le cluster, le principal de service Microsoft Entra utilisé par le cluster AKS n’est pas supprimé. Pour obtenir des instructions sur la façon de supprimer le principal de service, consultez Considérations et suppression du principal de service AKS. Si vous avez utilisé une identité managée, l’identité est managée par la plateforme et ne vous demande pas de provisionner ou de permuter des secrets.
Étapes suivantes
Dans ce tutoriel, vous avez mis à niveau Kubernetes dans un cluster AKS. Vous avez appris à :
- Identifier les versions Kubernetes actuelles et disponibles.
- Mettre à niveau vos nœuds Kubernetes.
- Valider une mise à niveau réussie.
Pour plus d’informations sur AKS, consultez la section Vue d’ensemble d’AKS. Pour obtenir des conseils sur la création de solutions complètes avec AKS, consultez l’article Conseils pour les solutions AKS.