启动和停止 Azure Kubernetes 服务 (AKS) 节点池
你可能不需要持续运行 AKS 工作负载。 例如,你可能有一个开发群集,其中包含运行特定工作负载的节点池。 为了优化计算成本,可以完全停止 AKS 群集中的节点池。
功能和限制
- 无法停止系统池。
- 支持现成节点池。
- 可以升级已停止的节点池。
- 群集和节点池必须正在运行。
- 无法停止那些使用节点自动预配 (NAP) 功能的群集中的节点池。
开始之前
本文假设你有现有 AKS 群集。 如果需要 AKS 群集,请使用 Azure CLI、Azure PowerShell 或 Azure 门户创建一个。
停止 AKS 节点池
使用
az aks nodepool stop
命令停止正在运行的 AKS 节点池。az aks nodepool stop --resource-group myResourceGroup --cluster-name myAKSCluster --nodepool-name testnodepool
使用
az aks nodepool show
命令验证节点池是否已停止。az aks nodepool show --resource-group myResourceGroup --cluster-name myAKSCluster --nodepool-name testnodepool
下面的精简示例输出显示
powerState
的状态为Stopped
:{ [...] "osType": "Linux", "podSubnetId": null, "powerState": { "code": "Stopped" }, "provisioningState": "Succeeded", "proximityPlacementGroupId": null, [...] }
注意
如果
provisioningState
显示Stopping
,则节点池仍在停止过程中。注意
停止节点池将停止其群集自动缩放程序,并会在启动节点池时重新启动它。 因此,如果在池中停止时手动修改 VMSS 实例数,群集自动缩放程序可能会显示不一致。
启动已停止的 AKS 节点池
使用
az aks nodepool start
命令重启已停止的节点池。az aks nodepool start --resource-group myResourceGroup --cluster-name myAKSCluster --nodepool-name testnodepool
使用
az aks nodepool show
命令验证节点池是否已启用。az aks nodepool show --resource-group myResourceGroup --cluster-name myAKSCluster --nodepool-name testnodepool
下面的精简示例输出显示
powerState
的状态为Running
:{ [...] "osType": "Linux", "podSubnetId": null, "powerState": { "code": "Running" }, "provisioningState": "Succeeded", "proximityPlacementGroupId": null, [...] }
注意
如果
provisioningState
显示Starting
,则节点池仍在启动过程中。
后续步骤
- 若要了解如何将
User
池缩小为 0,请参阅将User
池缩小为 0。 - 若要了解如何停止群集,请参阅群集启动/停止。
- 若要了解如何使用现成实例节省成本,请参阅将现成节点池添加到 AKS。
- 若要了解有关 AKS 支持策略的详细信息,请参阅 AKS 支持策略。