如何在Kubernetes中配置GPU

GPU
小华
2025-05-29

在Kubernetes中配置GPU主要涉及以下几个步骤:

安装NVIDIA GPU驱动

首先,需要卸载系统之前安装的nvidia显卡驱动,以防万一。然后,编辑/etc/modprobe.d/blacklist.conf文件,添加以下行:

blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv

接下来,更新initramfs并重启服务器。

安装CUDA Toolkit

安装CUDA Toolkit,这通常会在安装Cuda Toolkit时自动安装相应的显卡驱动。如果需要手动安装,可以从NVIDIA官网下载对应版本的脚本进行安装。

安装nvidia-docker2

添加NVIDIA的GPG key,并添加nvidia-docker的apt源:

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/distribution/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd

验证nvidia-smi是否正常工作。

安装NVIDIA Device Plugin

在所有的GPU节点上执行以下命令来安装NVIDIA Device Plugin:

kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.9.0/nvidia-device-plugin.yml

配置Kubernetes使用GPU

在Kubernetes的Pod定义中指定资源请求和限制来使用GPU。例如:

apiVersion: v1
kind: Pod
metadata:
name: gpu-pod
spec:
containers:
- name: gpu-container
image: nvidia/cuda:9.0-runtime
resources:
limits:
nvidia.com/gpu: 1

通过执行kubectl apply -f gpu-pod.yaml来启动Pod,并通过kubectl describe pod gpu-pod确认Pod是否已经成功启动,并且GPU资源已经分配。

使用MIG策略(可选)

对于需要多个独立GPU实例的场景,可以使用NVIDIA的MIG(Multi-Instance GPU)策略。这需要安装NVIDIA k8s-device-plugin和gpu-feature-discovery组件,并通过Helm进行部署。
以上步骤是在Kubernetes中配置GPU的基本流程,具体操作可能会因不同的环境和需求而有所差异。

亿速云提供售前/售后服务

售前业务咨询

售后技术保障

400-100-2938

7*24小时售后电话

官方微信小程序