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

Kubernetes单节点提交作业出现OutOfpods报错问题咨询

问题根因

从你提供的kubectl describe pod报错信息可以直接定位原因:当前工作节点的Pod容量上限为10,已经运行了10个Pod,新提交的Pod需要申请1个Pod配额,超出节点可承载上限,因此触发OutOfpods错误,属于资源不足的预期报错。
你提到已经将节点最大Pod数下调为10,但Kubelet保持默认配置,说明你修改的是Node对象的spec.allocatable.pods配置,该配置会限制节点实际可分配的Pod数量,优先级会覆盖调度层的默认逻辑,只要这个值设为10,不管Kubelet默认的110上限多高,节点最多都只能跑10个Pod。

解决方案

根据你的实际需求选择对应操作:

方案1:接受节点最多跑10个Pod的设置

当前报错属于正常现象,多提交的作业会持续处于Pending状态直到已有Pod结束释放资源。如果集群有其他空闲节点,可以检查调度策略配置,引导多余Pod调度到其他节点;如果只有单个工作节点,可以调整作业的并发执行数,避免一次性提交超过10个作业。

方案2:调高节点Pod承载上限,消除报错

需要同步修改Kubelet配置和Node可分配资源配置:

  1. 登录报错的工作节点,修改Kubelet配置文件(默认路径为/var/lib/kubelet/config.yaml,部分kubeadm部署的集群配置在/etc/systemd/system/kubelet.service.d/10-kubeadm.conf启动参数中),将maxPods参数调整为你需要的数值,比如50
  2. 重载配置并重启Kubelet生效:
systemctl daemon-reload && systemctl restart kubelet
  1. 如果你之前手动修改过Node对象的spec.allocatable.pods,需要同步修改该值为和maxPods一致的数值,否则限制还是会生效

注意事项

  • 调整maxPods数值时要结合节点的CPU、内存配置以及业务Pod的资源申请量设置,你当前的节点配置为40核/528G内存,只要业务Pod资源需求不高,设置100~200的maxPods都是可行的
  • 不要设置远大于节点资源承载能力的maxPods,避免出现Pod调度到节点后因为CPU/内存不足无法运行的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 12:06:03