手动调整 Azure Kubernetes 服务 (AKS) 集群中的节点数量

如果应用程序的资源需求发生变化,群集性能可能会因 CPU、内存、PID 空间或磁盘大小不足而受到影响。 若要解决这些变化,可以手动缩放 AKS 群集以运行不同数量的节点。 横向缩减时,节点会被小心地隔离和清空,从而尽量避免中断正在运行的应用程序。 横向扩展时,AKS 会一直等待,直到节点被 Kubernetes 群集标记为“就绪”,然后才在这些节点上调度 Pod。

本文介绍如何手动增加或减少 AKS 群集中的节点数。

开始之前

  • 查看 AKS 服务配额和限制,以验证群集是否可缩放到所需的节点数。

  • 如果在节点池上启用了群集自动缩放程序,则无法手动更改节点计数。 可以 更新群集自动缩放程序最小值和最大值 ,或者在手动缩放 节点池之前禁用群集自动缩放程序

  • Azure Linux 2.0 支持于 2025 年 11 月 30 日结束。 从 2026 年 3 月 31 日开始,Azure Linux 2.0 节点映像被删除,受影响的节点池无法再缩放。 在缩放 Azure Linux 2.0 节点池之前迁移到 Azure Linux 3

  • 节点池名称必须满足以下要求:

    节点池类型 名称要求
    Linux 介于 1-12 个小写字母数字字符之间。 必须以小写字母开头。
    Windows操作系统 介于 1-6 个小写字母数字字符之间。 必须以小写字母开头。

在 AKS 中缩放群集节点

重要

不支持使用 kubectl 命令从节点池中删除节点。 此操作可能会导致您的 AKS 群集出现缩放问题。

  1. 使用 az aks show 命令获取节点池的名称、模式和节点计数。 以下示例获取 myResourceGroup 资源组中名为 myAKSCluster 的群集的节点池详细信息:

    az aks show --resource-group myResourceGroup --name myAKSCluster --query "agentPoolProfiles[].{Name:name,Mode:mode,Count:count}" --output table
    

    以下示例输出显示 nodepool1 是包含三个节点的系统节点池:

    Name       Mode    Count
    ---------  ------  -------
    nodepool1  System  3
    
  2. 使用 az aks scale 命令缩放群集节点。 以下示例将名为 myAKSCluster 的群集中的 nodepool1 缩放为两个节点:

    az aks scale --resource-group myResourceGroup --name myAKSCluster --node-count 2 --nodepool-name nodepool1 --query "agentPoolProfiles[?name=='nodepool1'].{Name:name,Mode:mode,Count:count}" --output table
    

    以下示例输出显示系统节点池已成功缩放到两个节点:

    Name       Mode    Count
    ---------  ------  -------
    nodepool1  System  2
    

    系统节点池必须至少有两个节点。 对于生产群集,请在系统节点池中使用至少三个节点。 有关详细信息,请参阅 系统和用户节点池

将用户节点池缩放为 0

与始终需要运行节点的系统节点池不同,用户节点池可以扩展到 0。 若要详细了解系统节点池和用户节点池之间的差异,请参阅 系统节点池和用户节点池

重要

若要将用户节点池缩放为 0 个节点,请禁用群集自动缩放程序。 有关详细信息,请参阅在节点池上禁用群集自动缩放程序

若要将用户节点池缩放为 0,请使用 az aks nodepool scale 而不是 az aks scale 用于常规节点缩放的命令,并设置为 --node-count0

az aks nodepool scale --name <your node pool name> --cluster-name myAKSCluster --resource-group myResourceGroup  --node-count 0

通过将群集自动缩放程序的参数设置为0--min-count,可以允许(但不能强制)自动缩放到自动缩放用户节点池上的零个节点。

后续步骤

在本文中,你手动缩放了 AKS 群集以增加或减少节点数量。 还可以使用群集自动缩放程序自动缩放群集。