該DRA資源驅動程序目前正在積極開發中,尚未設計用於生產使用。我們(有時)可能會決定推動main
提交,直到我們擁有更穩定的東西為止。自行使用。
可以在下面找到有關此存儲庫提供的GPU的DRA支持的文檔和演示:
文件 | 演示 |
---|---|
本節描述了使用kind
來演示NVIDIA GPU DRA驅動程序的功能。
首先,因為我們將在GPU支持的情況下啟動那種,請確保滿足以下先決條件:
安裝了kind
。請參閱此處的官方文件。
確保系統上安裝了NVIDIA容器工具包。這可以通過在此處按照說明來完成。
將NVIDIA容器運行時配置為默認Docker運行時:
sudo nvidia-ctk runtime configure --runtime=docker --set-as-default
重新啟動Docker應用更改:
sudo systemctl restart docker
將accept-nvidia-visible-devices-as-volume-mounts
選項設置為true
中的/etc/nvidia-container-runtime/config.toml
文件,以配置NVIDIA容器運行時,以使用音量安裝座來選擇設備以選擇設備以注入一個設備中容器。
sudo nvidia-ctk config --in-place --set accept-nvidia-visible-devices-as-volume-mounts=true
在機器上顯示當前的GPU:
nvidia-smi -L
我們首先首先將此存儲cd
到其中。該演示中使用的所有腳本和示例POD規格都在demo
子目錄中,因此請花一點時間瀏覽各種文件並查看可用的內容:
git clone https://github.com/NVIDIA/k8s-dra-driver.git
cd k8s-dra-driver
這是一個演示,展示瞭如何安裝和配置DRA,並在Linux工作站上運行一個kind
中的POD。
以下是詳細的分步說明。
首先,創建一個kind
集群來運行演示:
./demo/clusters/kind/create-cluster.sh
從這裡,我們將為示例資源驅動程序構建圖像:
./demo/clusters/kind/build-dra-driver.sh
這也使構建圖像可用於kind
集群。
現在,我們安裝NVIDIA GPU DRA驅動程序:
./demo/clusters/kind/install-dra-driver.sh
這應該顯示兩個在nvidia-dra-driver
名稱空間中運行的POD:
kubectl get pods -n nvidia-dra-driver
NAME READY STATUS RESTARTS AGE
nvidia-k8s-dra-driver-kubelet-plugin-t5qgz 1/1 Running 0 44s
最後,您可以運行demo/specs/quickstart
文件夾中包含的各種示例。隨著Kubernetes v1.31的最新更新,該文件夾中只有前3個示例目前具有功能。
您可以按照以下方式運行它們:
kubectl apply --filename=demo/specs/quickstart/gpu-test{1,2,3}.yaml
獲取POD的狀態。根據可用的GPU,運行前三個示例將產生類似於以下的輸出。
注意:有一個已知問題。您可能會在試圖尾部在類似群集中尾隨的日誌時看到錯誤: failed to create fsnotify watcher: too many open files.
可以通過增加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)
刪除在上述步驟中創建的群集:
./demo/clusters/kind/delete-cluster.sh