Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
停止AKS中的所有计算(Azure托管Kubernetes)_Azure_Kubernetes_Azure Aks - Fatal编程技术网

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

停止AKS中的所有计算(Azure托管Kubernetes),azure,kubernetes,azure-aks,Azure,Kubernetes,Azure Aks,我已经在Azure中创建了一个托管Kubernetes群集,但它仅用于学习目的,因此我只想在实际使用时支付计算费用 有没有一种简单的方法可以优雅地关闭和启动虚拟机、可用性集和负载平衡器?只有虚拟机会从所有AKS资源中支出成本(当然,还有VHD,但您无法真正停止这些)。所以你只需要照顾这些。编辑:公共IP也要花钱,但你也不能阻止它们 对于我的AKS集群,我只需使用portal并发出stop\deallocate命令。当我需要的时候再开始(一切似乎都很好) 您可以使用REST API\powersh

我已经在Azure中创建了一个托管Kubernetes群集,但它仅用于学习目的,因此我只想在实际使用时支付计算费用


有没有一种简单的方法可以优雅地关闭和启动虚拟机、可用性集和负载平衡器?

只有虚拟机会从所有AKS资源中支出成本(当然,还有VHD,但您无法真正停止这些)。所以你只需要照顾这些。编辑:公共IP也要花钱,但你也不能阻止它们


对于我的AKS集群,我只需使用portal并发出stop\deallocate命令。当我需要的时候再开始(一切似乎都很好)

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

您可以使用:

然后从新开始

az aks start --name myAksCluster --resource-group myResourceGroup

在此功能之前,可以通过Powershell停止虚拟机:

az vm deallocate --ids $(az vm list -g MC_my_resourcegroup_westeurope --query "[].id" -o tsv)
MC\u my\u resourcegroup\u westeurope
替换为包含VM的资源组的名称

如果要再次启动VM,请运行:

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

在AKS集群中,转到属性并查找资源组名称。搜索资源组,当您选择它时,它将列出您的虚拟机。对于每个虚拟机,选择操作>自动关闭选项并将其打开。这将关闭虚拟机节省你的钱,当你没有开发!要再次打开它们,您需要遵循前面答案的建议,或者上面的答案方法(
az vm--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}


AKS新增了一项新功能:

AKS停止/启动集群功能现在在公共预览中允许AKS 客户需要完全暂停AKS群集,并在他们需要的位置拾取数据 之后只需按一下按钮,即可省时省钱。 以前,客户必须采取多个步骤来停止或启动服务 群集,增加了操作时间并浪费了计算资源。这个 停止/启动功能使群集配置保持在适当位置,并使客户 可以在不重新配置集群的情况下继续进行


“发出停止\解除分配命令。”。。。你能详细说明一下吗?我对Azure门户不太熟悉。基本上按门户上的
deallocate
按钮。参考:@tallOrderDevice如果使用VM缩放集,还需要使用
az vms
而不是
az VM
。请记住,如果可以,请始终使用kubectl scale down或remove node pools命令。直接使用az-vm/az-vmms命令可能会破坏集群。我碰巧遇到了我。不要在prod上这样做。重要的是要澄清这没有得到官方支持。如果群集无法重新启动,Microsoft支持部门将以尽力而为的方式帮助您。因此,最好将其视为失去支持
$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}