إن برنامج DRA Resource Driver حاليًا تحت التطوير النشط ولم يتم تصميمه بعد للاستخدام الإنتاجي. قد نقرر (في بعض الأحيان) دفع الالتزامات main حتى يكون لدينا شيء أكثر استقرارًا. استخدم على مسؤوليتك الخاصة.
يمكن العثور على وثيقة وتوضيح لدعم DRA ل GPU التي توفرها هذا الريبو:
| وثيقة | العرض التوضيحي |
|---|---|
يصف هذا القسم باستخدام 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-container-runtime/config.toml لتكوين وقت تشغيل حاوية NVIDIA لاستخدام حوامل الصوت لتحديد الأجهزة لحقنها في أحد حاوية.
sudo nvidia-ctk config --in-place --set accept-nvidia-visible-devices-as-volume-mounts=trueإظهار المجموعة الحالية من وحدات معالجة الرسومات على الجهاز:
nvidia-smi -L نبدأ من خلال استنساخ هذا المستودع الأول cd مضغوط فيه. جميع البرامج النصية ومواصفات POD مثال المستخدمة في هذا العرض التوضيحي في الدليل الفرعي demo ، لذلك خذ لحظة لتصفح الملفات المختلفة ومعرفة ما هو متاح:
git clone https://github.com/NVIDIA/k8s-dra-driver.git cd k8s-dra-driver إليك عرضًا توضيحيًا يوضح كيفية تثبيت وتكوين DRA ، وتشغيل جراب في مجموعة kind على محطة عمل Linux.

فيما يلي التعليمات التفصيلية خطوة بخطوة.
أولاً ، قم بإنشاء مجموعة 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 :
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 ، فإن الأمثلة الثلاثة الأولى فقط في هذا المجلد تعمل حاليًا.
يمكنك تشغيلها على النحو التالي:
kubectl apply --filename=demo/specs/quickstart/gpu-test{1,2,3}.yamlاحصل على حالات القرون. اعتمادًا على وحدات معالجة الرسومات المتوفرة ، فإن تشغيل الأمثلة الثلاثة الأولى ستنتج إخراجًا مشابهًا لما يلي ...
ملاحظة: هناك مشكلة معروفة مع نوع. قد ترى خطأً أثناء محاولة ذنب سجل جراب قيد التشغيل في المجموعة الرقيقة: 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