随着大语言模型(LLM)时代的到来,我一直想玩玩一些开源的自托管小工具。我正在使用一台老工作站作为家庭实验室,方便的是它安装了一个老的 NVIDIA GPU。由于我正在运行一个 Kubernetes 集群,我希望将 GPU 暴露给工作负载,以便利用现有的基础设施轻松托管、调度和部署 GPU 助力的应用程序。
译自 CUDA on Kubernetes。作者 Vegard S. Hagen 。
这篇文章主要是为了作为参考材料,当我开始实际的应用程序时,希望它也能帮助其他人。
我目前在一台运行 Debian 11 的裸机单节点上使用 containerd
运行 Kubernetes 1.28“集群”,所以这篇文章将假设一个类似的设置,尽管我尝试链接到其他设置的相关资源。
将来,当我切换到使用 Proxmox 或类似的虚拟化时,我可能也会更新这篇文章以新增配置。
配置
NVIDIA k8s-device-plugin 的前提条件是节点上运行工作负载的 NVIDIA CUDA 驱动程序和容器工具包能够正常工作。
CUDA 驱动程序
开始之前,请确保您没有任何现有的 NVIDIA 驱动程序,可以使用以下命令卸载它们:
sudo apt-get autoremove cuda* nvidia* nouveau* --purge
并重新启动计算机。
卸载图形驱动程序可能会破坏您的桌面环境。它应该会在下面的步骤中使用新的驱动程序自行修复。
在安装 GPU 驱动程序之前,我们需要适当的内核头文件,可以通过运行以下命令获取:
sudo apt-get install linux-headers-$(uname -r)
接下来我们添加 CUDA 驱动程序的密钥环和仓库
distribution=$(. /etc/os-release;echo $ID$VERSION_ID | sed -e 's/\.//g')
wget https://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
这样我们就可以轻松地使用 apt-get
安装驱动程序:
sudo apt-get update
sudo apt-get install cuda-drivers
重启并通过运行以下命令确保驱动程序正常工作:
nvidia-smi
然后您应该会看到有关连接的 GPU 和驱动程序版本的信息。
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 545.23.08 Driver Version: 545.23.08 CUDA Version: