Arrêter et démarrer un cluster Azure Kubernetes Service (AKS)
Vous n’avez peut-être pas besoin d’exécuter en continu vos charges de travail Azure Kubernetes Service (AKS). Par exemple, vous pouvez utiliser votre cluster de développement uniquement pendant les heures d’ouverture. Ce qui signifie que votre cluster peut être inactif à certaines heures et n’exécute rien de plus que les composants système. Vous pouvez réduire l’empreinte du cluster en mettant à l’échelle tous les pools de nœud User
sur 0, mais votre pool System
reste nécessaire à l’exécution des composants système pendant que le cluster est en cours d’exécution.
Pour mieux optimiser vos coûts pendant ces périodes, vous pouvez désactiver, ou arrêter, votre cluster. Cette action arrête votre plan de contrôle et les nœuds de l’agent, ce qui vous permet d’économiser tous les coûts de calcul, tout en conservant l’ensemble de vos objets, à l’exception des pods autonomes. L’état du cluster est stocké et sert lorsque vous le redémarrez, ce qui vous permet de reprendre là où vous vous étiez arrêté.
Attention
L’arrêt de votre cluster libère le plan de contrôle et la capacité. Dans les régions soumises à des contraintes de capacité, les clients peuvent ne pas être en mesure de démarrer un cluster arrêté. Nous vous déconseillons d’arrêter les charges de travail stratégiques pour cette raison.
Remarque
Les opérations de démarrage d’AKS restaurent tous les objets depuis ETCD, à l’exception des pods autonomes de noms et d’âges identiques. Cela signifie que l’âge d’un pod continuera d’être calculé à compter de l’heure de création d’origine. Ce nombre continue d’augmenter au fil du temps, que le cluster soit à l’état arrêté ou non.
Avant de commencer
Cet article suppose que vous disposez d’un cluster AKS. Si vous avez besoin d’un cluster AKS, vous pouvez en créer un en utilisant Azure CLI, Azure PowerShell ou le Portail Azure.
À propos de la fonctionnalité arrêt/démarrage du cluster
Lorsque vous utilisez la fonctionnalité arrêt/démarrage du cluster, les conditions suivantes s’appliquent :
- Cette fonctionnalité est uniquement prise en charge par les clusters supportés par des groupes de machines virtuelles identiques.
- Vous ne pouvez pas arrêter les clusters qui utilisent la fonctionnalité d’Autoapprovisionnement des nœuds (NAP).
- L’état du cluster d’un cluster AKS arrêté est conservé pendant 12 mois au maximum. Si votre cluster est arrêté pendant plus de 12 mois, vous ne pouvez pas récupérer l’état. Pour plus d’informations, consultez les stratégies de support AKS.
- Vous pouvez uniquement lancer ou supprimer des opérations sur un cluster AKS à l’arrêt. Pour effectuer d’autres opérations, telles que la mise à l’échelle ou la mise à niveau, vous devez d’abord démarrer votre cluster.
- Si vous provisionnez des PrivateEndpoints liés à des clusters privés, ils doivent être supprimés et recréés quand vous démarrez un cluster AKS arrêté.
- Étant donné que le processus d’arrêt draine tous les nœuds, tous les pod autonomes (c’est-à-dire les pods non gérés par un Deployment, StatefulSet, DaemonSet, Job, etc.) seront supprimés.
- Lorsque vous démarrez la sauvegarde de votre cluster, le comportement suivant est attendu :
- L’adresse IP de votre serveur d’API peut changer.
- Si vous utilisez le programme de mise à l’échelle automatique de cluster, lorsque vous démarrez votre cluster, le nombre de nœuds existant peut ne pas être compris entre les valeurs de plage minimale et maximale que vous avez définies. Le cluster démarre avec le nombre de nœuds dont il a besoin pour exécuter ses charges de travail, et ce nombre n’est pas impacté par les paramètres de votre programme de mise à l’échelle automatique. Quand votre cluster effectue des opérations de mise à l’échelle, les valeurs minimale et maximale ont un impact sur le nombre de nœuds actuel. Le cluster finit par atteindre la plage souhaitée et y reste jusqu’à ce que vous l’arrêtiez.
Arrêter un cluster AKS
Utilisez la commande
az aks stop
pour arrêter un cluster AKS en cours d’exécution, y compris les nœuds et le plan de contrôle. L’exemple suivant arrête un cluster nommé myAKSCluster :az aks stop --name myAKSCluster --resource-group myResourceGroup
Vérifiez que votre cluster est arrêté en utilisant la commande
az aks show
et en confirmant quepowerState
s’affiche commeStopped
.az aks show --name myAKSCluster --resource-group myResourceGroup
Le résultat doit être similaire à l’exemple condensé de sortie suivant :
{ [...] "nodeResourceGroup": "MC_myResourceGroup_myAKSCluster_westus2", "powerState":{ "code":"Stopped" }, "privateFqdn": null, "provisioningState": "Succeeded", "resourceGroup": "myResourceGroup", [...] }
Si
provisioningState
afficheStopping
, votre cluster n’est pas encore complètement arrêté.
Important
Si vous utilisez des budgets d’interruption de pods, l’opération d’arrêt peut être plus longue, car le processus de drainage prendra plus de temps.
Démarrer un cluster AKS
Attention
Après avoir utilisé la fonctionnalité de démarrage/arrêt d’AKS, vous devez compter 15 à 30 minutes avant de redémarrer votre cluster AKS. Cette période d’attente est nécessaire car l’arrêt complet des services concernés prend plusieurs minutes. Si vous tentez de redémarrer votre cluster au cours de ce processus, vous risquez de perturber le processus d’arrêt et de provoquer des problèmes avec le cluster ou ses charges de travail.
Utilisez la commande
az aks start
pour démarrer un cluster AKS arrêté. Le cluster redémarre dans l’état du plan de contrôle et avec le nombre de nœuds d’agent précédents. L’exemple suivant démarre un cluster nommé myAKSCluster :az aks start --name myAKSCluster --resource-group myResourceGroup
Vérifiez que votre cluster a démarré en utilisant la commande
az aks show
et en confirmant quepowerState
afficheRunning
.az aks show --name myAKSCluster --resource-group myResourceGroup
Le résultat doit être similaire à l’exemple condensé de sortie suivant :
{ [...] "nodeResourceGroup": "MC_myResourceGroup_myAKSCluster_westus2", "powerState":{ "code":"Running" }, "privateFqdn": null, "provisioningState": "Succeeded", "resourceGroup": "myResourceGroup", [...] }
Si
provisioningState
afficheStarting
, votre cluster n’a pas encore complètement démarré.
Étapes suivantes
- Pour savoir comment mettre à l’échelle les pools
User
à 0, consultez Mettre à l’échelle les poolsUser
à 0. - Pour savoir comment réduire les coûts à l’aide d’instances Spot, consultez Ajouter un pool de nœuds spot à AKS.
- Pour en savoir plus sur les stratégies de prise en charge d’AKS, consultez Stratégies de prise en charge d’AKS.
Azure Kubernetes Service