J'ai créé un cluster Kubernetes géré dans Azure, mais c'est uniquement à des fins d'apprentissage et je ne veux donc payer que pour le calcul pendant que je l'utilise.
Existe-t-il un moyen simple d'arrêter et de démarrer normalement les machines virtuelles, les ensembles de disponibilité et les équilibreurs de charge?
Seules les machines virtuelles coûtent de l'argent sur toutes les ressources AKS (enfin, les disques durs virtuels également, mais vous ne pouvez pas vraiment les arrêter). Il vous suffit donc de vous en occuper. Edit: les Ips publics coûtent également de l'argent, mais vous ne pouvez pas les arrêter non plus.
Pour mon cluster AKS, j'utilise simplement le portail et lance la commande stop\deallocate. Et recommencez quand j'en ai besoin (tout semble bien fonctionner).
Vous pouvez utiliser REST API\powershell\cli\divers SKD pour obtenir le même résultat de manière automatisée.
Vous pouvez utiliser Azure CLI pour arrêter les machines virtuelles via Powershell:
az vm deallocate --ids $(az vm list -g MC_my_resourcegroup_westeurope --query "[].id" -o tsv)
Remplacer MC_my_resourcegroup_westeurope
avec le nom de votre groupe de ressources qui contient la ou les machines virtuelles.
Lorsque vous souhaitez redémarrer la ou les machines virtuelles, exécutez:
az vm start --ids $(az vm list -g MC_my_resourcegroup_westeurope --query "[].id" -o tsv)
La méthode ci-dessus (az vm <deallocate|start> --ids $(...)
) ne semble plus fonctionner.
Résolu en répertoriant d'abord les ensembles d'échelle VM et en les utilisant pour désallouer/démarrer:
$ResourceGroup = "MyResourceGroup"
$ClusterName = "MyAKSCluster"
$Location = "westeurope"
$vmssResourceGroup="MC_${ResourceGroup}_${ClusterName}_${Location}"
# List all VM scale sets
$vmssNames=(az vmss list --resource-group $vmssResourceGroup --query "[].id" -o tsv | Split-Path -Leaf)
# Deallocate first instance for each VM scale set
$vmssNames | ForEach-Object { az vmss deallocate --resource-group $vmssResourceGroup --name $_ --instance-ids 0}
# Start first instance for each VM scale set
$vmssNames | ForEach-Object { az vmss start --resource-group $vmssResourceGroup --name $_ --instance-ids 0}
Dans votre cluster AKS, accédez aux propriétés et recherchez le nom de votre groupe de ressources. recherchez le groupe de ressources et lorsque vous le sélectionnez, il répertorie vos machines virtuelles. Pour chaque machine virtuelle, sélectionnez l'option Opérations> Arrêt automatique et activez-la. Cela désactivera la fonction VM pour économiser de l'argent lorsque vous ne développez pas! Pour les réactiver, vous devrez suivre les conseils des réponses précédentes ou la réponse ici