You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows11 WSL2下Docker Desktop的Kubernetes启用NVIDIA GPU支持问询

问题解答

1. 需求是否可行?

完全可行。Docker Desktop搭配WSL2后端的Kubernetes集群可以支持GPU调度,核心是通过配置NVIDIA设备插件让Kubernetes识别并分配GPU资源。

2. 实现步骤

步骤1:确保WSL2内的NVIDIA环境正常

进入你的WSL2发行版(如Ubuntu),先验证GPU驱动:

nvidia-smi

若能正常显示GPU信息,继续安装nvidia-container-toolkit:

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit

配置Docker daemon以支持NVIDIA runtime:
编辑/etc/docker/daemon.json,添加以下内容:

{
  "runtimes": {
    "nvidia": {
      "path": "nvidia-container-runtime",
      "runtimeArgs": []
    }
  }
}

重启Docker服务:

sudo systemctl restart docker

测试WSL2内Docker的GPU调用是否正常:

docker run --rm --gpus all nvidia/cuda:11.8.0-base-ubuntu22.04 nvidia-smi

步骤2:部署NVIDIA Kubernetes设备插件

创建nvidia-device-plugin.yaml文件,内容如下:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: nvidia-device-plugin-daemonset
  namespace: kube-system
spec:
  selector:
    matchLabels:
      name: nvidia-device-plugin-ds
  updateStrategy:
    type: RollingUpdate
  template:
    metadata:
      labels:
        name: nvidia-device-plugin-ds
    spec:
      tolerations:
      - key: node-role.kubernetes.io/master
        effect: NoSchedule
      containers:
      - image: nvidia/k8s-device-plugin:v0.14.0
        name: nvidia-device-plugin-ctr
        securityContext:
          allowPrivilegeEscalation: false
          capabilities:
            drop: ["ALL"]
        volumeMounts:
        - name: device-plugin
          mountPath: /var/lib/kubelet/device-plugins
      volumes:
      - name: device-plugin
        hostPath:
          path: /var/lib/kubelet/device-plugins

执行部署命令:

kubectl apply -f nvidia-device-plugin.yaml

等待Pod运行,验证状态:

kubectl get pods -n kube-system

确保nvidia-device-plugin-daemonset-xxx的状态为Running。

步骤3:验证Kubernetes容器GPU调用

创建gpu-test.yaml测试Pod:

apiVersion: v1
kind: Pod
metadata:
  name: gpu-test
spec:
  restartPolicy: OnFailure
  containers:
  - name: gpu-container
    image: nvidia/cuda:11.8.0-base-ubuntu22.04
    command: ["nvidia-smi"]
    resources:
      limits:
        nvidia.com/gpu: 1

部署测试Pod:

kubectl apply -f gpu-test.yaml

查看日志验证GPU是否可用:

kubectl logs gpu-test

若输出GPU硬件信息,说明配置成功。

关键注意事项

  • 确保Docker Desktop已启用WSL2后端,并开启Kubernetes功能(Docker设置→Kubernetes→勾选Enable Kubernetes)。
  • 在Docker设置→Resources→WSL Integration中,勾选你的WSL2发行版,确保Docker与WSL2关联。
  • Windows上需安装支持WSL2的最新NVIDIA驱动,WSL2内无需单独安装驱动,会自动映射Windows端的驱动。

内容的提问来源于stack exchange,提问作者Ouss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 15:01:12