k8s集群节点配置GPU
默认有以下前置条件
- k8s 1.10+
- 操作系统:麒麟v10 SP2(Centos,Ubuntu等见“安装NVIDIA Container Toolkit”中其他源配置,经测试新的centos源也可在麒麟v10 SP2使用)
官方文档:NVIDIA/k8s-device-plugin: NVIDIA device plugin for Kubernetes (github.com)
1|0一、安装NVIDIA显卡驱动
验证是否挂载
如出现以上则已挂载请跳到第二部分进行配置
1|11.1 安装驱动必要依赖
卸载系统自带驱动
1|21.2 禁用 nouveau 驱动
在CentOS系统中,Nouveau是开源第三方的NVIDIA显卡驱动程序,但它与NVIDIA的官方驱动程序NVIDIA Proprietary Driver存在兼容性问题,我们需要先将其屏蔽才能安装NVIDIA官方驱动。否则安装驱动的话,会出现报错:
ERROR: The Nouveau kernel driver is currently in use by your system. This driver is incompatible with the NVIDIA driver。
设置完成后进行重启
1|31.3 安装显卡驱动
查看显卡版本
在下载 NVIDIA 官方驱动 | NVIDIA官方进行下载驱动
将驱动上传至服务器,然后执行
安装过程选项
1|41.4 验证驱动
使用nvidia-smi进行验证
nvidia-smi
全称是NVIDIA System Management Interface ,它是一个基于前面介绍过的NVIDIA Management Library(NVML)
构建的命令行实用工具,旨在帮助管理和监控NVIDIA GPU设备。
查看动态监控显卡状态
验证cuda版本
nvcc -V
2|0二、 增加GPU节点标签
3|0三、在容器中启用 GPU 支持
我们需要安装NVIDIA Container来支持docker调用显卡
如不设置则会报如下错误:
NVIDIA Container主要组件包括nvidia-container-runtime
, nvidia-container-toolkit
, libnvidia-container
,
nvidia-container-toolkit:CUDA Toolkit是一个用于开发和优化CUDA应用程序的软件包,其中包括CUDA驱动程序和CUDA运行时库。
nvidia-container-runtime:CUDA运行时库是一个用于在GPU上执行CUDA应用程序的软件组件,它提供了一组CUDA API函数,于管理GPU内存和执行CUDA内核。
官方架构地址:Architecture Overview — NVIDIA Container Toolkit 1.16.0 documentation
nvidia-container-toolkit已包含运行时,这里我们选择安装nvidia-container-toolkit,用于后续k8s节点使用GPU
因网络原因或在离线环境下NVIDIA Container Toolkit安装部分分为离线安装,在线安装
官方安装 NVIDIA Container Toolkit:Installing the NVIDIA Container Toolkit — NVIDIA Container Toolkit 1.16.0 documentation
运行NVIDIA Container Toolkit的条件:
内核版本 > 3.10 的 GNU/Linux x86_64
Docker >= 19.03(推荐,但某些发行版可能包含旧版本的 Docker。支持的最低版本为 1.12)
架构 >= Kepler(或计算能力 3.0)的 NVIDIA GPU
NVIDIA Linux 驱动程序>= 418.81.07(请注意,不支持较旧的驱动程序版本或分支。)
3|13.1 离线安装NVIDIA Container Toolkit
在一台同环境可联网的机器按教程配置源
使用yumdownloader进行相关包下载
如果使用yumdownloader直接下载也可能会出现国内网络下载缓慢问题,可以直接去github仓库直接下载包
libnvidia-container/stable/rpm/x86_64 at gh-pages · NVIDIA/libnvidia-container (github.com)
选择需要的版本进行下载
例如:
libnvidia-container1-1.16.1-1.x86_64.rpm
libnvidia-container-tools-1.16.1-1.x86_64.rpm
nvidia-container-toolkit-base-1.16.1-1.x86_64.rpm
nvidia-container-toolkit-1.16.1-1.x86_64.rpm
下载后将rpm上传到服务器上,目录下执行安装
3|23.2 在线安装NVIDIA Container Toolkit
- 麒麟系统 v10 sp2设置源:
- CentOS源(经测试麒麟系统也可用此源)
- Ubuntu源
其他系统存储库配置:https://nvidia.github.io/nvidia-docker/
3|33.3 Docker显卡适配
在Docker在19.03版本以后直接安装NVIDIA Container,可以不需要再独立安装nvidia-docker也就是docker2直接设置就可以支持显卡
直接设置daemon.json,增加如下
配置完成后进行重启
3|43.4 Cotainerd显卡适配
在config.toml,增加如下:
配置完成后进行重启
3|5容器内验证
如上为成功设置
4|0四、在Kubernetes中启用 GPU 支持
4|14.1 安装k8s插件 nvidia-device-plugin
nvidia-device-plugin.yml内容:
运行后查看打标签的节点gpu是否启用
4|24.2 k8s部署验证
部署job进行验证
如下输出则k8s启用GPU成功
__EOF__

本文链接:https://www.cnblogs.com/shook/p/17836015.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)