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

Azure Kubernetes Service(AKS)节点池调整大小后集群不生效如何处理

AKS节点池替换后集群仍维持原节点数量的解决方案

触发原因

  • 未提前将新节点池设置为系统节点池,AKS要求集群最少存在1个激活的系统节点池,删除原有系统节点池后,控制平面会自动尝试恢复原系统节点池的容量
  • 集群自动扩缩容(Cluster Autoscaler)的最小/最大节点数边界未更新,仍沿用旧节点池的配置触发扩容
  • 存量Pod存在节点亲和性、污点容忍等配置,无法调度到新节点池的节点上,集群为了运行Pending状态的Pod自动扩容

操作步骤

  1. 确认新节点池的角色配置
    将新节点池切换为系统节点池,避免集群触发系统节点容量恢复逻辑:
az aks nodepool update --resource-group <你的资源组名称> --cluster-name <AKS集群名称> --name <新节点池名称> --mode System
  1. 更新节点池的伸缩配置
  • 如果不需要自动扩缩容,直接手动指定节点池的期望节点数:
    az aks nodepool scale --resource-group <你的资源组名称> --cluster-name <AKS集群名称> --name <新节点池名称> --node-count <目标节点数>
  • 如果需要开启自动扩缩容,更新伸缩阈值为你预期的范围:
    az aks nodepool update --resource-group <你的资源组名称> --cluster-name <AKS集群名称> --name <新节点池名称> --enable-cluster-autoscaler --min-count <最小节点数> --max-count <最大节点数>
  1. 清理旧节点残留并检查Pod调度状态
  • 执行kubectl get nodes确认是否存在旧节点池的残留节点记录,如有执行kubectl delete node <旧节点名称>清理etcd中的残留数据
  • 执行kubectl get pods -A | grep Pending查看是否存在未调度的Pod,若存在执行kubectl describe pod <Pod名称> -n <命名空间>查看调度失败原因:
    • 若为节点亲和性/污点不匹配,修改对应Deployment/StatefulSet的调度规则适配新节点池
    • 若为节点资源不足,可调整新节点池的VM规格,或在新建节点池时添加--max-pods <数值>参数调大单节点可承载的Pod数量(Azure CNI模式下默认单节点最多30个Pod,最高可调整到250,大幅节省VNet IP占用)
  1. 验证配置生效
    执行az aks nodepool show --resource-group <你的资源组名称> --cluster-name <AKS集群名称> --name <新节点池名称> --query "count"确认返回的节点数和你的预期一致,等待10分钟左右观察集群是否再自动扩容额外节点。

内容的提问来源于stack exchange,提问作者rsh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 21:45:03