Iguazio作业长期卡在Pending状态无日志报错如何解决
Iguazio平台作业长期显示蓝色Pending状态、无异常日志排查修复方案
蓝色Pending状态代表作业尚未完成调度、未分配到运行所需的节点资源,此时业务容器未启动,因此作业页面不会输出业务相关日志,按以下优先级排查即可:
- 校验资源配额与集群剩余容量
首先核对当前项目剩余CPU、内存、GPU配额是否大于作业申请的资源值,配额不足时调度器不会向作业页抛出显式报错,会直接将作业放入等待队列。若项目配额充足,再核对集群所有工作节点的剩余可用资源:如果所有节点剩余资源均小于作业申请的最小资源阈值,作业会无限期排队,可手动终止几个闲置的非必要作业验证,若终止后作业正常启动,可通过调低作业资源申请值、联系管理员扩容集群节点解决。另外注意检查工作节点是否存在未配置对应容忍度的污点,这类情况会导致作业无法调度到带污点的节点,剩余可用节点不足时就会卡Pending。 - 校验作业配置与调度规则的匹配性
先检查作业自定义的节点选择器、节点亲和性规则:如果规则中引用了不存在的节点标签、要求的标签组合无任何节点匹配,作业会一直卡调度,可临时清空所有自定义调度规则,用平台默认配置提交测试作业,若测试作业正常运行,回溯修正自定义调度规则即可。其次检查存储挂载配置:如果挂载的PVC未绑定、指定的存储类不存在、挂载路径权限配置错误,这类存储类阻塞问题大多不会同步到作业业务日志,需要查看Pod原生事件定位。最后检查镜像拉取配置:如果私有镜像未配置正确的拉取密钥、镜像地址填写错误、大镜像拉取超时未触发告警,也会导致作业卡在Pending阶段,可替换为平台内置公开基础镜像提交测试,排除镜像类问题。 - 校验平台核心组件状态
如果提交最简单的hello world测试作业也同样卡在Pending,大概率是平台核心调度组件异常:检查kube-scheduler、Iguazio作业控制器、Nuclio相关服务组件是否正常运行,有没有异常重启、资源占满的情况,这类组件故障会导致所有新提交作业无法调度,需要联系平台管理员重启异常组件、恢复调度队列。另外排查是否存在资源抢占死锁:高优先级作业占满全部集群资源,但自身依赖低优先级作业提供的服务无法正常启动,低优先级作业又因为资源被抢占无法调度,这类情况需要管理员手动清理死锁作业、调整作业优先级规则。
快速定位技巧:不要仅依赖作业页展示的简化日志,直接找到作业关联的Kubernetes Pod查看Events事件流,90%以上的无日志Pending问题都会在事件流中给出明确阻塞原因,比如
Insufficient cpu、node(s) had taint that the pod didn't tolerate、persistentvolumeclaim not found这类明确报错。
内容的提问来源于stack exchange,提问作者Brennan
相关产品推荐
相关产品推荐

