美文网首页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