このDRAリソースドライバーは現在、アクティブな開発中であり、まだ生産用に設計されていません。より安定したものがあるまで、私たちは(時には) mainにコミットをプッシュすることを決定するかもしれません。あなた自身の責任で使用してください。
このレポで提供されるGPUのDRAサポートのドキュメントとデモは、以下にあります。
| 書類 | デモ |
|---|---|
このセクションでは、NVIDIA GPU DRAドライバーの機能をデモするためにkindを使用することについて説明します。
まず、GPUサポートを使用してKindを起動してから、次の前提条件が満たされていることを確認してください。
kindがインストールされています。こちらの公式ドキュメントをご覧ください。
NVIDIAコンテナツールキットがシステムにインストールされていることを確認してください。これは、ここで指示に従うことで実行できます。
nvidiaコンテナランタイムをデフォルトのDockerランタイムとして構成します。
sudo nvidia-ctk runtime configure --runtime=docker --set-as-defaultDockerを再起動して変更を適用します。
sudo systemctl restart docker accept-nvidia-visible-devices-as-volume-mountsオプションを/etc/nvidia-container-runtime/config.tomlファイルにtrueします。容器。
sudo nvidia-ctk config --in-place --set accept-nvidia-visible-devices-as-volume-mounts=trueマシンに現在のGPUのセットを表示します。
nvidia-smi -L最初にこのリポジトリとcdをクローニングすることから始めます。このデモで使用されているすべてのスクリプトと例のポッド仕様はdemoディレクトリにありますので、さまざまなファイルを閲覧して、利用可能なものを確認してください。
git clone https://github.com/NVIDIA/k8s-dra-driver.git cd k8s-dra-driverDRAのインストールと構成の方法を示すデモを示し、Linuxワークステーションでkindクラスターでポッドを実行します。

以下は、詳細な段階的な指示です。
まず、デモを実行するためにkindクラスターを作成します。
./demo/clusters/kind/create-cluster.shここから、リソースドライバーの例の画像を作成します。
./demo/clusters/kind/build-dra-driver.shこれにより、構築された画像がkind Clusterで利用可能になります。
NVIDIA GPU DRAドライバーをインストールしました。
./demo/clusters/kind/install-dra-driver.shこれによりnvidia-dra-driver名前空間で実行されている2つのポッドが表示されるはずです。
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ポッドのステータスを取得します。どのGPUが利用可能かによって、最初の3つの例を実行すると、次のような出力が生成されます...
注: Kindには既知の問題があります。 Kind Clusterで実行されているポッドのログをテールしようとするときにエラーが表示される場合があります。FSNotifyWatcher 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