В продолжении предыдущей статьи: Настройка рабочей (worker) ноды Kubernetes на WSL2 (Windows 10) В данной статье-заметке будет добавлен компонент для работы GPU Nvidia в WSL2.
Настройка Nvidia GPU (Windows 10)
Нужно лишь скачать и установить подходящие драйвера. Драйвера в WSL2 ставить не нужно!
https://www.nvidia.com/Download/index.aspx?lang=ru
Настройка Nvidia GPU (WSL2 Ubuntu)
Компоненты
1 2 3 4 |
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \ && curl -s -L https://nvidia.github.io/libnvidia-container/gpgkey | sudo apt-key add - \ && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list apt update && apt install -y nvidia-container-toolkit |
Патч для containerd
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
cat <<EOF | tee /etc/containerd/config.toml.patch 70,71d69 < enable_cdi = true < cdi_spec_dirs = ["/etc/cdi", "/var/run/cdi"] 81c79 < default_runtime_name = "nvidia" --- > default_runtime_name = "runc" 115,124d112 < < [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.nvidia] < privileged_without_host_devices = false < runtime_engine = "" < runtime_root = "" < runtime_type = "io.containerd.runc.v2" < < [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.nvidia.options] < BinaryName = "/usr/bin/nvidia-container-runtime" < SystemdCgroup = true EOF |
Настройки в кластере Kubernetes
Помните, что WSL2 умеет работать только с 1 GPU (на момент написания статьи), не важно сколько у вас их стоит на ПК. Так же, на данный момент, Nvidia Device Plugin (компонент, требуемых для проброса GPU в поды) не поддерживает WSL2. Но спасибо энтузиастам, они сделали merdge-request, где добавили поддержку GPU на WSL2.
https://gitlab.com/nvidia/kubernetes/device-plugin/-/merge_requests/291
Т.е для плагина можно использовать этот образ registry.gitlab.com/achim92/device-plugin/k8s-device-plugin:251066e0-ubuntu20.04