你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Azure Kubernetes 服务中缩放节点池(AKS)

随着应用程序工作负荷需求的变化,可能需要缩放 Azure Kubernetes 服务(AKS)中节点池中的节点数。 本文介绍如何在 AKS 中手动自动缩放节点池。

AKS 节点池缩放的先决条件

  • 具有至少一个节点池的现有 AKS 群集。 如果需要创建一个群集,请参阅 创建包含节点池的 AKS 群集
  • 需要安装并配置 Azure CLI 2.2.0 或更高版本。 运行 az --version 即可查找版本。 如果需要安装或升级,请参阅 安装 Azure CLI

手动缩放节点池

  1. 使用 [az aks nodepool scale][az-aks-nodepool-scale] 命令缩放节点池中的节点数。 该 --node-count 标志指定节点池中所需的节点数。 在此示例中,节点池缩放为五个节点。

    az aks nodepool scale \
        --resource-group <resource-group-name> \
        --cluster-name <cluster-name> \
        --name <node-pool-name> \
        --node-count 5 \
        --no-wait
    
  2. 使用 [az aks nodepool list][az-aks-nodepool-list] 命令检查节点池的状态。

    az aks nodepool list --resource-group <resource-group-name> --cluster-name <cluster-name>
    

    以下示例输出显示节点池处于 缩放 状态,新计数为 5 个节点:

    [
      {
        ...
        "count": 5,
        ...
        "name": "<node-pool-name>",
        "orchestratorVersion": "1.15.7",
        ...
        "provisioningState": "Scaling",
        ...
        "vmSize": "Standard_DS2_v2",
        ...
      },
      {
        ...
        "count": 2,
        ...
        "name": "<node-pool-name-2>",
        "orchestratorVersion": "1.15.7",
        ...
        "provisioningState": "Succeeded",
        ...
        "vmSize": "Standard_DS2_v2",
        ...
      }
    ]
    

    需要花费几分钟时间来完成缩放操作。 缩放操作完成后,节点池的 provisioningState 将更改为 成功

使用群集自动缩放程序自动缩放节点池

可以将 群集自动缩放程序 与多个节点池配合使用,并且可以在单个节点池上启用它,并向其传递唯一的自动缩放规则。

  • 使用带有 --update-cluster-autoscaler 标志的 [az aks nodepool update][az-aks-nodepool-update] 命令在现有节点池上启用群集自动缩放器。 和--min-count--max-count标志指定节点池中的最小和最大节点数。 在此示例中,群集自动缩放程序启用,最小计数为一个节点,最大计数为五个节点:

    az aks nodepool update \
      --resource-group <resource-group-name> \
      --cluster-name <cluster-name> \
      --name <node-pool-name> \
      --update-cluster-autoscaler \
      --min-count 1 \
      --max-count 5
    

注释

如果要在节点池上禁用群集自动缩放程序,请使用 [--disable-cluster-autoscaler][az-aks-nodepool-update] 命令,并用 --disable-cluster-autoscaler 标志代替 --update-cluster-autoscaler 标志。

后续步骤:在 AKS 中管理节点池

若要详细了解如何在 AKS 中管理节点池,请参阅在 Azure Kubernetes 服务(AKS)中管理节点池