NPU插件从1.x.x升级到2.x.x后Pod无法启动如何解决?
问题现象
NPU插件从1.x.x版本升级到2.x.x版本之后,按照原先的配置部署业务,业务的Pod一直处于Pending状态无法启动。
通过kubectl describe pod命令查询,发现该Pod存在以下报错导致创建容器失败。
Error response from daemon: Duplicate mount point: /usr/local/bin/npu-smi
问题原因
由于1.x.x版本的插件不具备给业务容器自动挂载驱动和npu-smi工具的能力,用户需要业务手动挂载主机上的驱动和npu-smi的对应目录。但是2.x.x版本的插件具有给业务容器挂载驱动和npu-smi的能力,而1.x.x版本插件中手动挂载的npu-smi目录与插件自动挂载的npu-smi目录冲突,导致了Duplicate mount point: /usr/local/bin/npu-smi的错误。
2.x.x版本的NPU插件会自动为业务容器挂载以下目录:
/usr/local/Ascend/driver/lib64/common /usr/local/Ascend/driver/lib64/driver /usr/local/bin/npu-smi
NPU插件为业务容器挂载驱动与npu-smi随版本的情况变化,如下表所示:
类型 |
1.x.x版本的NPU插件 |
2.0.0 ~ 2.1.6版本的NPU插件 |
2.1.7 ~ 最新版本的NPU插件 |
|
---|---|---|---|---|
310系列卡 |
驱动版本 < 23.0.rc0 |
您需要在业务容器中手动挂载驱动以及npu-smi |
您需要在业务容器中手动挂载驱动以及npu-smi |
您需要在业务容器中手动挂载驱动以及npu-smi |
驱动版本 >= 23.0.rc0 |
您需要在业务容器中手动挂载驱动以及npu-smi |
插件可以在业务容器中自动挂载驱动,但是无法挂载npu-smi |
插件可以在业务容器中自动挂载驱动以及npu-smi |
解决方案
使用2.x.x版本的NPU插件时,您可以在业务的YAML中去掉自行挂载驱动和npu-smi目录的字段,由NPU插件自动挂载。
如果您需要手动挂载,可以将挂载路径/usr/local/bin/npu-smi修改为/usr/local/sbin/npu-smi,解决路径冲突即可。