Ubuntu实现K8S调度NVIDIA GPU小记
本文最后更新于:1 年前
场景需求
最近新到zhe货一台GPU服务器,系统是Ubuntu20.04,需要在服务器中搭建个K8S集群来做一些容器相关的业务场景,虽然他的CPU配置蛮高,但是它的GPU也不能浪费,因此本文就记录下利用起他GPU的全流程。
nvidia-docker
nvidia-docker是英伟达出品的一款产品,我相信能找到我这篇藏在犄角旮旯里的破文章的人,肯定已经了解了他和docker之间的异同,这里提供个传送门知道英伟达官网的相关介绍>>>戳这里<<<(其实就是我懒得写了)。
英伟达驱动
要想使用GPU资源,那么你首先得有GPU,有了GPU,还需要安装相对应的驱动才能正常使用。
查看GPU型号
在Ubuntu中,可以使用以下命令查看GPU型号:
1 |
|
这里我的运行结果如下:(还是一块RTX2070 SUPER!!想拆下来带回家装到我的电脑上玩吃鸡)
其中可以看到倒数第三行的recommended(推荐的意思),这表明推荐安装的驱动是:nvidia-driver-470 - distro non-free
下载驱动
这里需要到英伟达的官方网站下载驱动>>>NVIDIA驱动官网<<<,进入页面之后按照各自查询到的显卡型号填写:
点击搜索之后可以看到具体的驱动说明,点击下载即可:
安装驱动
一般默认的Ubuntu会为GPU安装一个开源版本的驱动(可能有可能没有,没有就不用管了),现在我们有了专用的驱动,所以就需要将开源驱动给禁用掉:
1 |
|
或者直接卸载也不是不可以:
1 |
|
完事之后重启电脑,接下来就可以安装驱动了,以下的驱动文件名根据你自己的而定:
1 |
|
安装驱动时,可能会因为缺少一些依赖而导致安装失败,可以在安装失败之后执行apt install -f
自动安装依赖。安装过程中一路同意即可。
安装过程中可能的问题:WARNING: Unable to find suitable destination to install 32-bit compatibility libraries
执行以下命令装以来即可:
1 |
|
nvidia-docker安装
安装nvidia-docker可以参考官网的教程>>>安装教程<<<,我这里实在实在实在是懒得做搬迁了:-)
创建K8S集群
本人为了图方便,搭建k8S使用的是rancher,之前的文章中有相关的流程,这里不在赘述,直接到搭建完K8S集群之后的步骤,关于搭建K8S的流程这里给一个传送门>>>Rancher安装以及创建K8S集群<<<(备用地址:>>>CSDN:Rancher安装以及创建K8S集群<<<)
安装K8S的英伟达GPU插件
相关的调度方法其实K8S官网也有>>>K8S<<<,其实就是在K8S集群中安装一个相关的插件:
1 |
|
测试
我们到dockerhub中,拉取一个tensorflow-gpu镜像,这里使用opensciencegrid/tensorflow-gpu:latest,这里我使用Rancher管理界面创建了一个负载,GPU分配1:
之后我们在这个负载容器内使用tensorflow来测试下是否能调取到GPU:
首先执行python3进入python交互终端,输入一下代码:
1 |
|
若显示GPU True则表明调度成功。
如果在以上步骤中,没有安装驱动、没有安装K8S的英伟达支持插件等等都会导致无法调度,显示GPU False。
以上就是简单的记录,后续有时间将会更新文中未搬迁过来的内容,完结撒花。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!