EKS集群Daemonset Pod因节点资源不足Pending,如何自动解决无需手动调整?
问题解答
不需要手动重新调度Daemonset Pod,通过调整配置可以让Cluster Autoscaler自动解决Daemonset Pod因节点资源不足导致的Pending问题,以下是具体方案:
核心配置调整
- 开启Daemonset适配支持:在Cluster Autoscaler的启动参数中添加
--balance-similar-node-groups=true和--expander=least-waste,这两个参数能让CA更精准地识别Daemonset的资源缺口并触发节点扩容。 - 完善Pod资源请求配置:必须为Daemonset的Pod明确设置
resources.requests,Cluster Autoscaler依赖该值计算节点容量是否足够,未配置的话CA无法判断资源缺口。 - 确认节点组弹性范围:确保EKS节点组的
minSize和maxSize配置合理,留有足够的扩容空间,让CA能根据需求新增节点。
自动处理流程
当Daemonset Pod因资源不足Pending时,Cluster Autoscaler会扫描现有节点的剩余容量,若所有节点都无法容纳Daemonset Pod,且节点组未达到maxSize上限,就会自动触发节点扩容。新节点加入集群后,Daemonset控制器会自动在新节点上调度对应的Pod,全程无需手动干预。
配置验证
可以通过Cluster Autoscaler日志确认是否触发扩容逻辑:
kubectl logs -n kube-system deployment/cluster-autoscaler | grep "DaemonSet"
若日志中出现类似Triggering scale-up due to DaemonSet的内容,说明配置已生效。
内容的提问来源于stack exchange,提问作者Bhaumik Patel
相关产品推荐
相关产品推荐

