You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AKS(Azure托管Kubernetes)中按需启停计算资源以节省成本?

优雅启停AKS计算资源(学习场景省钱方案)

嗨,针对你这种仅用于学习的AKS集群,想要按需付费、不用的时候彻底停掉计算资源,我整理了几个实用又简便的方案,操作起来都不复杂:

一、手动快速操作(适合临时启停)

首先得说清楚:AKS的工作节点是基于**虚拟机规模集(VMSS)**的(不是传统的可用性集),核心成本就是这些VM,再加上配套的负载均衡器费用。手动操作分两步走:

1. 停止计算资源(不使用时)

  • 先把节点池缩放到0,这样所有VM都会被停止并释放,彻底终止VM费用:
    az aks nodepool scale --resource-group <你的资源组名> --cluster-name <AKS集群名> --name <节点池名称,默认是nodepool1> --node-count 0
    
  • 然后处理负载均衡器:AKS创建的负载均衡器按小时收费,哪怕没有后端节点也会产生费用。你可以把它设置为停止状态(比删除更稳妥,下次启动不用重新创建):
    # 先查LB名称:az network lb list --resource-group <你的资源组名>
    az network lb stop --resource-group <你的资源组名> --name <AKS的LB名称,格式一般是aks-<集群名>-xxxx>
    

2. 恢复计算资源(使用时)

  • 先启动负载均衡器:
    az network lb start --resource-group <你的资源组名> --name <AKS的LB名称>
    
  • 再把节点池缩回到需要的节点数(学习用1个节点足够):
    az aks nodepool scale --resource-group <你的资源组名> --cluster-name <AKS集群名> --name <节点池名称> --node-count 1
    

小贴士:AKS的控制平面是Azure托管的,目前完全免费,所以即使节点池缩到0,控制平面依然正常运行,不会产生额外费用,下次恢复时直接用就行。

二、自动化启停(适合固定时段学习)

如果不想每次手动敲命令,可以用Azure Automation Runbook来定时执行启停脚本,彻底解放双手:

  • 先在Azure门户创建一个Automation账户,然后新建两个Runbook(选Bash或PowerShell都可以):
    • 停止脚本:包含节点池缩0和LB停止的命令
    • 启动脚本:包含LB启动和节点池扩容的命令
  • 给每个Runbook配置定时触发器,比如设置每周一到周五早8点启动、晚6点停止,完全不用操心。

三、进阶自动方案:Cluster Autoscaler

如果你的学习时间不固定,偶尔才需要用集群,可以开启AKS的Cluster Autoscaler,设置最小节点数为0,最大节点数为2:

az aks update --resource-group <你的资源组名> --name <AKS集群名> --enable-cluster-autoscaler --min-count 0 --max-count 2

这样当你部署Pod到集群时,Autoscaler会自动扩容节点;当所有Pod都删除后,它会自动把节点缩到0,完全自动化,特别适合临时测试场景。


内容的提问来源于stack exchange,提问作者Dan O'Leary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:37:05