web-dev-qa-db-ja.com

AKS(Azure Managed Kubernetes)のすべてのコンピューティングを停止します

Azureで管理されたKubernetesクラスターを作成しましたが、これは学習目的のためだけであるため、実際に使用している間のみコンピューティングの料金を支払う必要があります。

VM、利用可能なセット、ロードバランサーを正常にシャットダウンして起動する簡単な方法はありますか?

15
Dan O'Leary

VMのみがすべてのAKSリソースから費用がかかります(VHDも同様ですが、実際にそれらを停止することはできません)。だから、それらの世話をする必要があるだけです。編集:パブリックIpsにも費用がかかりますが、それらを止めることはできません。

AKSクラスターでは、ポータルを使用して、stop\deallocateコマンドを発行するだけです。そして、それらが必要なときにそれらを開始します(すべてが正常に機能しているようです)。

REST API\powershell\cli\various SKDsを使用して、自動化された方法で同じ結果を得ることができます。

9
4c74356b41

Azure CLI を使用して、Powershell経由で仮想マシンを停止できます。

az vm deallocate --ids $(az vm list -g MC_my_resourcegroup_westeurope --query "[].id" -o tsv)

置換MC_my_resourcegroup_westeurope VMを含むリソースグループの名前。

VMを再び起動する場合は、次を実行します。

az vm start --ids $(az vm list -g MC_my_resourcegroup_westeurope --query "[].id" -o tsv)
13
officer

上記のメソッド(az vm <deallocate|start> --ids $(...))は動作しなくなったようです。

最初にVMスケールセットをリストし、これらを使用して割り当て解除/開始することにより解決しました。

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

1
Joost

AKSクラスターで、プロパティに移動し、リソースグループ名を見つけます。リソースグループを検索し、それを選択すると、仮想マシンがリストされます。仮想マシンごとに、[操作]> [自動シャットダウン]オプションを選択してオンにします。これによりVMがオフになり、開発していないときにお金を節約できます!それらを再びオンにするには、以前の回答または回答 ここでアドバイスに従う必要があります

0
sarin