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

AKS节点单节点Pod数量限制:能否设置最大数小于30?

解答:AKS集群节点最大Pod数可设置为小于30,以此解决子网IP不足问题

首先明确回答:完全可以将AKS集群每个节点的最大Pod数量设置为小于30,这正是解决你碰到的Pre-allocated IPs 31 exceeds IPs available in Subnet 27错误的核心方案。

错误原因解析

你使用的/27子网仅有30个可用IP,而AKS在CNI网络模式下,每个节点启动时会预分配足够的IP资源——既要覆盖节点自身的系统IP,也要满足该节点的最大Pod数(包括kube-proxy、coredns这类系统Pod)。如果节点的最大Pod数设为30,加上节点自身的1个IP,总共需要31个IP,直接超出了子网的可用配额,这就是报错的根源。

具体操作步骤

1. 新建AKS集群时设置最大Pod数

创建集群时,通过--max-pods参数指定每个节点的最大Pod数(建议设为24-25,留1-2个IP作为备用):

az aks create --resource-group myResourceGroup --name myAKSCluster --max-pods 25 --node-count 1 --vnet-subnet-id <你的子网ID>

这里要注意:不同VM规格有对应的最大Pod数上限(大部分常规VM支持至少10-100个Pod),25这个数值在绝大多数VM上都是合法的。

2. 现有集群调整最大Pod数

现有集群无法直接修改原有节点池的max-pods参数,需要通过添加新节点池的方式来实现:

  • 第一步:添加一个设置了目标最大Pod数的新节点池
az aks nodepool add --resource-group myResourceGroup --cluster-name myAKSCluster --name new-node-pool --max-pods 25 --node-count 2
  • 第二步:将旧节点池上的Pod逐步迁移到新节点池(可以手动驱逐Pod,或等待业务Pod自动调度)
  • 第三步:确认所有业务Pod正常运行后,删除旧节点池
az aks nodepool delete --resource-group myResourceGroup --cluster-name myAKSCluster --name old-node-pool

额外注意事项

  • 预留备用IP:建议不要把可用IP用满,留1-2个IP应对节点重建、临时扩容等场景,避免再次出现IP不足问题。
  • 系统Pod占用:每个AKS节点自身会占用1个IP,加上kube-proxy、coredns等系统Pod(大概3-4个),所以用户可设置的最大Pod数=子网可用IP数 - 节点自身IP - 系统Pod数 - 备用IP,比如30-1-4-1=24,设置24会更稳妥。

内容的提问来源于stack exchange,提问作者Chris J.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:12:54