Docker19.0+部署k8s的Nvidia device plugin

 

目前,k8s对gpu的调度还是v1.10 beta版本。官方仅支持AMD和NVIDIA的GPU。(补充:根据之前个人经验,寒武纪自己开发了应用于k8s的device plugin,所以寒武纪也是支持的,只不过k8s官方可能不知道这事。)

注意:根据官方说明,安装英伟达GPU plugin前必须安装好nvidia-docker2,但是docker19.0+版本又不需要安装nvidia-docker2了,所以我姑且试了一下,发现确实不需要安装nvidia-docker2,只需要配置/etc/docker/daemon.json文件,将默认运行时改成nvidia就可以了。(但如果你使用的是docker19.0以下的版本,还是老老实实安装官方教程走。)

参考资料

官方文档:https://kubernetes.io/zh/docs/tasks/manage-gpus/scheduling-gpus/

(官方的 NVIDIA GPU 设备插件)

 

按照官方文档配置完后k8s还是看不到gpu资源,参考下面这个链接配置了/etc/docker/daemon.json文件后就可以看见GPU资源了:

https://blog.csdn.net/hunyxv/article/details/92988788

部署步骤

注意:Step2和Step1的顺序可以调换;10.18.95.13是我部署的机器IP。

Step1. 创建一个daemonset:

$ kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/1.0.0-beta4/nvidia-device-plugin.yml

该daemonset在每个节点上启动一个pod,如下图。

 

需要等待所有pod都是Running状态,如果出现什么错误需要人工解决。我这里遇见的问题是pod所需镜像拉取失败。

解决方法:在10.18.95.13上手动docker pull了5次,终于pull下来了。

 

Step2. 所有节点都要完成这步操作。

参考https://blog.csdn.net/hunyxv/article/details/92988788配置/etc/docker/daemon.json文件(如没有该文件则新建文件):

$ vim /etc/docker/daemon.json
{

    "default-runtime": "nvidia",

    "runtimes": {

        "nvidia": {

            "path": "nvidia-container-runtime",

            "runtimeArgs": []

        }

    }

}
$ systemctl restart docker

验证

$ kubectl describe node 10.18.95.13

可以看见如下nvidia.com/gpu资源,表示plugin安装成功。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值