停止AKS中的所有计算(Azure托管Kubernetes)

时间:2018-01-21 14:33:19

标签: azure kubernetes

我在Azure中创建了一个托管的Kubernetes集群,但它仅用于学习目的,所以我只想在我实际使用它的同时为计算付费。

是否有一种简单的方法可以正常关闭和启动虚拟机,可用性集和负载均衡器?

5 个答案:

答案 0 :(得分:8)

您可以使用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)

答案 1 :(得分:6)

只有VM会从所有AKS资源中花钱(嗯,VHD也是如此,但你无法真正阻止它们)。所以你只需要照顾那些。编辑:公共Ips也花钱,但你也不能阻止它们。

对于我的AKS群集,我只使用portal并发出stop \ deallocate命令。当我需要它们时,它们就会重新开始(一切似乎都运转良好)。

您可以使用REST API \ powershell \ cli \各种SKD以自动方式获得相同的结果。

答案 2 :(得分:2)

以上方法(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}

答案 3 :(得分:2)

AKS刚刚添加了一项新功能:

现在在公共预览中的AKS停止/启动群集功能允许AKS 客户完全暂停AKS群集并在他们的位置接机 稍后只需按下按钮即可取消操作,从而节省了时间和成本。 以前,客户必须采取多个步骤才能停止或启动广告 集群,增加了操作时间并浪费了计算资源。的 停止/启动功能可将群集配置保持在适当的位置,并为客户提供服务 可以在不重新配置集群的情况下从中断的地方继续。

https://docs.microsoft.com/en-gb/azure/aks/start-stop-cluster

答案 4 :(得分:0)

在AKS群集中,转到属性,然后找到您的资源组名称。搜索资源组,当您选择它时,它将列出您的虚拟机。对于每个虚拟机,选择操作>自动关闭选项,然后将其打开。当您不进行开发时,这将关闭VM,为您省钱!要重新打开它们,您需要遵循先前答案或答案here

的建议。