美文网首页Kubernetes
Kubernetes安装k8s-device-plugin失败

Kubernetes安装k8s-device-plugin失败

作者: 王勇1024 | 来源:发表于2019-11-18 17:39 被阅读0次

背景

今天在尝试安装k8s-device-plugin用于驱动nvidia显卡,搭建TensorFlow训练环境时,发现k8s-device-plugin daemonset 启动失败,提示找不到CUDA Device。之前遇到过这个错误,所以我直接确定是nvidia-driver安装有问题。

原因

原因是我在这台机器上安装过两个版本的nvida-driver,但旧版本由于卸载方式不正确,卸载不干净。导致kernel mod 的 Nvidia driver 的版本没有更新,一般情况下,重启机器就能够解决,如果因为某些原因不能够重启的话,也有办法reload kernel mod。

解决思路

于是我登录到目标机器上,查看nvdia-driver状态,输出如下:

$ nvidia-smi
Failed to initialize NVML: Driver/library version mismatch

于是我安装 解决Driver/library version mismatch 这篇文档尝试reload kernel mod:

$ sudo rmmod nvidia
rmmod: ERROR: Module nvidia is in use by: nvidia_uvm

从上面的提示信息可以看出:nvidia目前正在被nvida_uvm进程占用,所以需要先卸载nvidia_uvm。命令如下:

$ sudo rmmod nvidia_uvm
[mesos@bj3-136-163-14-s1 nvidia_driver]$ nvidia-smi

然后在重新执行sudo rmmod nvidia
再重新通过nvidia-smi命令查看显卡状态,发现显卡已经恢复正常:

$ nvidia-smi
Mon Nov 18 17:24:53 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 418.43       Driver Version: 418.43       CUDA Version: 10.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce RTX 208...  Off  | 00000000:18:00.0 Off |                  N/A |
| 28%   53C    P0    76W / 250W |      0MiB / 10989MiB |      1%      Default |
+-------------------------------+----------------------+----------------------+
|   1  GeForce RTX 208...  Off  | 00000000:D8:00.0 Off |                  N/A |
| 14%   52C    P0    60W / 250W |      0MiB / 10989MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

再回到Kubernetes中查看k8s-device-plugin的运行状态,发现已经恢复正常,问题解决。

nvidia-device-plugin-daemonset

参考文档

在Kubernetes集群中使用GPU资源
解决Driver/library version mismatch

相关文章

网友评论

    本文标题:Kubernetes安装k8s-device-plugin失败

    本文链接:https://www.haomeiwen.com/subject/lcmbictx.html