CentOS 7 上设置 Kubernetes NVIDIA GPU 共享访问和 CUDA 时间切片
要在 CentOS 7 上设置 Kubernetes(k8s)的 NVIDIA GPU 共享访问和 CUDA 时间切片,以及将虚拟 GPU 数量设置为 10,可以按照以下步骤进行操作:
-
首先,确保您的系统已经安装了 NVIDIA 显卡驱动程序,以及 CUDA 工具包和 NVIDIA 容器运行时(nvidia-docker2)。
-
安装 NVIDIA Device Plugin for Kubernetes,这是一个 Kubernetes 插件,用于管理 GPU 资源。可以使用以下命令进行安装:
kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.9.0/nvidia-device-plugin.yml
- 在 Kubernetes 集群的节点上,编辑 kubelet 的配置文件(/etc/default/kubelet),并添加以下参数:
KUBELET_EXTRA_ARGS="--feature-gates=DevicePlugins=true"
- 重新启动 kubelet 服务:
sudo systemctl restart kubelet
- 创建一个文件(例如,gpu-pod.yaml),并将以下内容复制到文件中:
apiVersion: v1
kind: Pod
metadata:
name: gpu-pod
spec:
containers:
- name: gpu-container
image: nvidia/cuda:11.0-base
resources:
limits:
nvidia.com/gpu: 1
- 使用 kubectl 命令创建 Pod:
kubectl create -f gpu-pod.yaml
- 检查 Pod 的状态,确保它已经运行并且没有出现错误:
kubectl get pod gpu-pod
- 现在,您可以使用 NVIDIA 的设备插件来设置虚拟 GPU 数量为 10。编辑 kubelet 的配置文件(/etc/default/kubelet),并添加以下参数:
KUBELET_EXTRA_ARGS="--feature-gates=DevicePlugins=true --resource-reservations=^nvidia\.com/gpu$"
- 重新启动 kubelet 服务:
sudo systemctl restart kubelet
- 创建一个文件(例如,virtual-gpu.yaml),并将以下内容复制到文件中:
apiVersion: v1
kind: Pod
metadata:
name: virtual-gpu-pod
spec:
containers:
- name: virtual-gpu-container
image: nvidia/cuda:11.0-base
resources:
limits:
'virtual-gpu.kubeflow.org/gpu': 10
- 使用 kubectl 命令创建 Pod:
kubectl create -f virtual-gpu.yaml
- 检查 Pod 的状态,确保它已经运行并且没有出现错误:
kubectl get pod virtual-gpu-pod
现在,您应该已经成功地在 CentOS 7 上设置了 Kubernetes 的 NVIDIA GPU 共享访问和 CUDA 时间切片,并将虚拟 GPU 数量设置为 10。
原文地址: https://www.cveoy.top/t/topic/qeLQ 著作权归作者所有。请勿转载和采集!