配置正确情况下,NPU芯片故障不能触发重调度特性
2023/06/13
123
问题信息
问题来源 | 产品大类 | 产品子类 | 关键字 |
---|---|---|---|
官方 | 集群调度 | 断点续训 | 芯片故障、重调度 |
问题现象描述
- 在正确配置重调度特性时,偶尔出现NPU芯片故障但是重调度特性不能正常触发的场景。
- NPU芯片故障后,会偶尔出现volcano-scheduler组件的Pod重启,并且重调度后下发的任务Pod长时间处于pending状态。
- 任务运行过程中,重启device-plugin后的一段时间内,若发生NPU芯片故障,会概率性的导致NPU故障重调度不执行。
原因分析
NPU芯片故障后,k8s将故障的NPU芯片移除。当Volcano归还Pod占用的NPU芯片资源时,发现当前NPU芯片和K8s上NPU芯片数量不一致,从而引发panic。Volcano会将该node设置为notReady状态(直到下一个改变node状态的事件发生才会被设置为ready),期间若没有其他节点满足NPU芯片资源要求,则重调度后的新Pod会一直处于pending状态。
解决措施
原因一:
- 方法1:手动删除Pod。执行如下命令,删除Pod。
kubectl delete pod -n pod所在namespace pod名称
- 方法2:重新下发任务。
原因二和原因三:
由于该问题为Volcano v1.4.0版本问题(开源社区),因此只能通过删除Volcano的Pod方式解决。
删除Volcano的Pod的命令如下(其中volcano-scheduler的Pod的名称需要根据实际情况填写):
kubectl delete pod -n volcano-system volcano-scheduler-xxxxxxxxx
本页内容