启动和停止 Azure Kubernetes 服务 (AKS) 节点池

你可能不需要持续运行 AKS 工作负载。 例如,你可能有一个开发群集,其中包含运行特定工作负载的节点池。 为了优化计算成本,可以完全停止 AKS 群集中的节点池。

功能和限制

  • 无法停止系统池。
  • 支持现成节点池。
  • 可以升级已停止的节点池。
  • 群集和节点池必须正在运行。
  • 无法停止那些使用节点自动预配 (NAP) 功能的群集中的节点池。

开始之前

本文假设你有现有 AKS 群集。 如果需要 AKS 群集,请使用 Azure CLIAzure PowerShellAzure 门户创建一个。

停止 AKS 节点池

  1. 使用 az aks nodepool stop 命令停止正在运行的 AKS 节点池。

    az aks nodepool stop --resource-group myResourceGroup --cluster-name myAKSCluster --nodepool-name testnodepool 
    
  2. 使用 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 节点池

  1. 使用 az aks nodepool start 命令重启已停止的节点池。

    az aks nodepool start --resource-group myResourceGroup --cluster-name myAKSCluster --nodepool-name testnodepool 
    
  2. 使用 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,则节点池仍在启动过程中。


后续步骤