CentOS 7 上使用 CUDA 时间切片技术实现 Kubernetes 中 NVIDIA GPU 共享访问
在 CentOS 7 上设置 Kubernetes 中的 NVIDIA GPU 共享访问,可以通过 CUDA 时间切片技术实现,以下步骤可以帮助您配置:
- 安装 NVIDIA 驱动程序
- 首先,确认您的 GPU 型号,并从 NVIDIA 官方网站下载相应的驱动程序。
- 运行以下命令以启用 ELRepo 存储库:
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm ```
- 安装 NVIDIA 驱动程序:
- 对于 NVIDIA Tesla V100 GPU,可以运行以下命令:
- 对于 NVIDIA Tesla V100 GPU,可以运行以下命令:
sudo yum install kmod-nvidia nvidia-docker2 sudo reboot ``` - 对于其他 GPU 型号,将命令中的 'kmod-nvidia' 替换为相应的驱动程序名称。
- 验证驱动程序是否正确安装:
nvidia-smi ```
- 安装 Docker 和 NVIDIA Docker v2
- 安装 Docker:
- 安装 Docker:
sudo yum install docker sudo systemctl enable docker sudo systemctl start docker ```
- 安装 NVIDIA Docker v2:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo |
sudo tee /etc/yum.repos.d/nvidia-docker.repo
sudo yum install -y nvidia-docker2
sudo pkill -SIGHUP dockerd
```
- 配置 kubelet 以支持 GPU
- 编辑 kubelet 配置文件(/etc/systemd/system/kubelet.service.d/10-kubeadm.conf),添加以下行:
- 编辑 kubelet 配置文件(/etc/systemd/system/kubelet.service.d/10-kubeadm.conf),添加以下行:
Environment='KUBELET_EXTRA_ARGS=--feature-gates=DevicePlugins=true' ```
- 重启 kubelet 服务:
sudo systemctl daemon-reload sudo systemctl restart kubelet ```
- 部署 NVIDIA Device Plugin for Kubernetes
- 克隆 NVIDIA Device Plugin 的 GitHub 存储库:
- 克隆 NVIDIA Device Plugin 的 GitHub 存储库:
git clone https://github.com/NVIDIA/k8s-device-plugin.git ```
- 部署设备插件:
kubectl create -f k8s-device-plugin/nvidia-device-plugin.yml ```
完成上述步骤后,您的 CentOS 7 上的 Kubernetes 集群应该已经配置了 NVIDIA GPU 的共享访问,并且支持 CUDA 时间切片技术。您可以通过在 Pod 规范中指定 GPU 资源请求来使用 GPU。例如,您可以在 Pod 的规范中添加以下内容来请求一个 GPU:
apiVersion: v1
kind: Pod
metadata:
name: gpu-pod
spec:
containers:
- name: gpu-container
image: '<your_image>'
resources:
limits:
nvidia.com/gpu: 1
请注意,上述步骤假设您已经在 CentOS 7 上安装了 Kubernetes 集群。如果您还没有安装 Kubernetes,请先按照 Kubernetes 官方文档进行安装。
原文地址: https://www.cveoy.top/t/topic/qeLH 著作权归作者所有。请勿转载和采集!