Driver sumber daya DRA ini saat ini sedang dalam pengembangan aktif dan belum dirancang untuk penggunaan produksi. Kita mungkin (kadang -kadang) memutuskan untuk mendorong komitmen main
sampai kita memiliki sesuatu yang lebih stabil. Gunakan dengan risiko Anda sendiri.
Dokumen dan demo dukungan DRA untuk GPU yang disediakan oleh repo ini dapat ditemukan di bawah:
Dokumen | Demo |
---|---|
Bagian ini menjelaskan penggunaan kind
untuk demo fungsionalitas driver NVIDIA GPU DRA.
Pertama karena kami akan meluncurkan jenis dengan dukungan GPU, pastikan bahwa prasyarat berikut dipenuhi:
kind
dipasang. Lihat dokumentasi resmi di sini.
Pastikan toolkit wadah NVIDIA diinstal pada sistem Anda. Ini dapat dilakukan dengan mengikuti instruksi di sini.
Konfigurasikan runtime nvidia container sebagai runtime Docker default :
sudo nvidia-ctk runtime configure --runtime=docker --set-as-default
Restart Docker untuk menerapkan perubahan:
sudo systemctl restart docker
Atur opsi accept-nvidia-visible-devices-as-volume-mounts
ke true
di /etc/nvidia-container-runtime/config.toml
file untuk mengonfigurasi runtime kontainer nvidia untuk menggunakan volume mounts untuk memilih perangkat untuk menyuntikkan ke a wadah.
sudo nvidia-ctk config --in-place --set accept-nvidia-visible-devices-as-volume-mounts=true
Tunjukkan set GPU saat ini pada mesin:
nvidia-smi -L
Kami mulai dengan terlebih dahulu mengkloning repositori ini dan cd
ing ke dalamnya. Semua skrip dan contoh spesifikasi pod yang digunakan dalam demo ini ada di subdirektori demo
, jadi luangkan waktu sejenak untuk menelusuri berbagai file dan lihat apa yang tersedia:
git clone https://github.com/NVIDIA/k8s-dra-driver.git
cd k8s-dra-driver
Berikut adalah demo yang menunjukkan cara menginstal dan mengonfigurasi DRA, dan jalankan pod dalam kelompok kind
di workstation Linux.
Di bawah ini adalah instruksi yang terperinci, langkah demi langkah.
Pertama, buat kelompok kind
untuk menjalankan demo:
./demo/clusters/kind/create-cluster.sh
Dari sini kita akan membangun gambar untuk driver sumber daya contoh:
./demo/clusters/kind/build-dra-driver.sh
Ini juga membuat gambar yang dibangun tersedia untuk kluster kind
.
Kami sekarang menginstal driver NVIDIA GPU DRA:
./demo/clusters/kind/install-dra-driver.sh
Ini harus menunjukkan dua polong yang berjalan di namespace nvidia-dra-driver
:
kubectl get pods -n nvidia-dra-driver
NAME READY STATUS RESTARTS AGE
nvidia-k8s-dra-driver-kubelet-plugin-t5qgz 1/1 Running 0 44s
Akhirnya, Anda dapat menjalankan berbagai contoh yang terkandung dalam folder demo/specs/quickstart
. Dengan pembaruan terbaru untuk Kubernetes v1.31, hanya 3 contoh pertama dalam folder ini yang saat ini fungsional.
Anda dapat menjalankannya sebagai berikut:
kubectl apply --filename=demo/specs/quickstart/gpu-test{1,2,3}.yaml
Dapatkan status pod. Bergantung pada GPU mana yang tersedia, menjalankan tiga contoh pertama akan menghasilkan output yang mirip dengan yang berikut ...
Catatan: Ada masalah yang diketahui dengan jenis. Anda mungkin melihat kesalahan saat mencoba mengaitkan log pod yang sedang berjalan di The Kind Cluster: failed to create fsnotify watcher: too many open files.
Masalah ini dapat diselesaikan dengan meningkatkan nilai untuk fs.inotify.max_user_watches
.
kubectl get pod -A -l app=pod
NAMESPACE NAME READY STATUS RESTARTS AGE
gpu-test1 pod1 1/1 Running 0 34s
gpu-test1 pod2 1/1 Running 0 34s
gpu-test2 pod 2/2 Running 0 34s
gpu-test3 pod1 1/1 Running 0 34s
gpu-test3 pod2 1/1 Running 0 34s
kubectl logs -n gpu-test1 -l app=pod
GPU 0: A100-SXM4-40GB (UUID: GPU-662077db-fa3f-0d8f-9502-21ab0ef058a2)
GPU 0: A100-SXM4-40GB (UUID: GPU-4cf8db2d-06c0-7d70-1a51-e59b25b2c16c)
kubectl logs -n gpu-test2 pod --all-containers
GPU 0: A100-SXM4-40GB (UUID: GPU-79a2ba02-a537-ccbf-2965-8e9d90c0bd54)
GPU 0: A100-SXM4-40GB (UUID: GPU-79a2ba02-a537-ccbf-2965-8e9d90c0bd54)
kubectl logs -n gpu-test3 -l app=pod
GPU 0: A100-SXM4-40GB (UUID: GPU-4404041a-04cf-1ccf-9e70-f139a9b1e23c)
GPU 0: A100-SXM4-40GB (UUID: GPU-4404041a-04cf-1ccf-9e70-f139a9b1e23c)
Hapus cluster yang dibuat di langkah -langkah sebelumnya:
./demo/clusters/kind/delete-cluster.sh