Kubernetes 中已经实验性地支持管理多个节点上的 AMD / NVIDIA GPU (显卡)。 本文重点介绍在k8s集群中,集成Nvidia显卡容器资源调度。
整个实施过程流程总共分为三大步骤:
- 安装Nvidia驱动和CUDA。
- 安装nvidia-docker 2, 这个是支持nvidia显卡运行的容器运行时,默认的docker运行时是runc,该模块提供docker使用gpu资源的能力。
- 安装 k8s-device-plugin, 这个插件用来和k8s集成,该模块提供k8s集群通过kubelet动态调度gpu资源的能力。
全部安装完成后,通过运行一个gpu计算容器来验证安装正确性。下面看详细的安装过程:
一、实施环境
| 操作系统 |
Ubuntu-20.04.1 |
| Kubernetes Cluster Version |
1.22.15 |
| Docker Version |
docker-ce-20.10.21 |
| GPU |
tesla-A100 |
二、安装Nvidia驱动
2.1 官方驱动安装
2.1.1 驱动下载
下载地址 本示例不从官方下载驱动安装,采用更加方便的PPA方式。
2.1.2 安装
😜略
2.2 PPA方式安装
Ubuntu 社区建立了一个命名为 Graphics Drivers PPA 的 PPA,专门为 Ubuntu 用户提供最新版本的各种驱动程序。目前,率先推出的即为 Nvidia 驱动。因此我们可以通过 PPA 为 Ubuntu 安装 Nvidia 驱动程序。
2.2.1 添加PPA镜像源
add-apt-repository ppa:graphics-drivers/ppa
apt-get update
2.2.2 查看可用的驱动版本
ubuntu-drivers devices

2.2.3 选择合适的版本进行安装
安装建议版本:
ubuntu-drivers autoinstall
安装指定版本:
apt-get install nvidia-driver-XXX
2.2.4 安装完成后重启查看
nvidia-smi
# cuda
nvcc -V
查看驱动版本
root@worker-05:~# cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 520.61.05 Thu Sep 29 05:30:25 UTC 2022
GCC version: gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
安装成功后通过 nvidia-smi 命令可以看到显卡利用状态,使用 watch 可持续监控 watch -n 5 nvidia-smi

三、安装CUDA(可跳过,安装驱动时已安装)
CUDA是NVIDIA推出的用于自家GPU的并行计算框架,也就是说CUDA只能在NVIDIA的GPU上运行,而且只有当要解决的计算

本文详细介绍了如何在Kubernetes集群中集成和管理NVIDIA GPU资源,包括安装NVIDIA驱动和CUDA,设置nvidia-docker2,安装k8s-device-plugin,以及验证GPU计算容器的运行。通过遵循这些步骤,用户可以在Kubernetes环境中有效地调度和利用GPU资源。
&spm=1001.2101.3001.5002&articleId=127767490&d=1&t=3&u=fc1cc02b176447c8941be767c8d58598)
142

被折叠的 条评论
为什么被折叠?



