إن برنامج 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