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

如何正确使用eksctl ClusterConfig搭配vpc-cni传递maxPodsPerNode到启动模板?

EKS VPC-CNI模式下调整节点最大Pod数到110的正确配置方法

问题根因

你仅配置了托管节点组的maxPodsPerNode参数,该参数只会修改kubelet的--max-pods启动参数,但是VPC CNI默认的IP分配逻辑受限于EC2实例的ENI可用私有IP数量:m5.xlarge实例默认支持4个ENI,每个ENI最多分配15个私有IP,扣除网络预留资源后计算得到的默认最大Pod数为57,对应节点可分配Pod数显示为58,因此仅修改kubelet配置无法生效,需要先调整VPC CNI的IP分配策略。

操作步骤

1. 确认VPC CNI版本符合要求

VPC CNI从v1.9.0版本开始支持前缀委派功能,这是实现单节点高密度Pod部署的前提,执行以下命令检查当前插件版本:

kubectl describe daemonset aws-node -n kube-system | grep Image | cut -d "/" -f 3

如果版本低于v1.9.0,先升级VPC CNI插件到兼容版本。

2. 开启VPC CNI前缀委派功能

执行以下命令修改VPC CNI的DaemonSet配置,开启前缀委派,允许单个ENI分配/28前缀段,大幅提升单节点可用IP数量:

kubectl set env daemonset aws-node -n kube-system ENABLE_PREFIX_DELEGATION=true

你可以根据集群IP使用效率需求,可选配置前缀预热参数,减少IP浪费:

kubectl set env daemonset aws-node -n kube-system WARM_PREFIX_TARGET=1

3. 滚动更新节点组使配置生效

你在ClusterConfig的managedNodeGroups中配置maxPodsPerNode: 110的操作是正确的,在完成VPC CNI配置后,需要对已有的节点组执行滚动更新,让新启动的节点加载完整配置:

eksctl update nodegroup --cluster <你的集群名称> --name <你的节点组名称> --force-update-version

如果是新建节点组,直接在配置文件中声明maxPodsPerNode: 110后创建即可。

验证配置

节点组滚动更新完成后,执行以下命令查看节点可分配Pod数:

kubectl describe node <目标节点名称> | grep "pods:"

输出显示pods: 110即为配置成功。

注意事项

  • 开启前缀委派后,需要确保集群节点所属的VPC子网有足够的/28 CIDR块可用,避免出现IP分配失败的问题
  • m5.xlarge实例开启前缀委派后最大可支持230个Pod,配置110个Pod的需求完全可以满足
  • 如果需要配置超过110个Pod的上限,需要同步调整kubelet的podPidsLimit参数,避免PID资源不足

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 09:12:05