إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
غالبا ما تستخدم وحدات المعالجة الرسومية (GPUs) لأحمال العمل كثيفة الحوسبة، مثل أحمال عمل الرسومات والتصور. يدعم AKS تجمعات عقد Windows وLinux الممكنة بواسطة وحدة معالجة الرسومات لتشغيل أحمال عمل Kubernetes كثيفة الحوسبة.
تساعدك هذه المقالة على توفير عقد Windows مع وحدات معالجة الرسومات القابلة للمخططات على مجموعات AKS الجديدة والحالية (معاينة).
الأجهزة الظاهرية المدعومة التي تدعم وحدة معالجة الرسومات (VMs)
لعرض الأجهزة الظاهرية المدعومة التي تدعم وحدة معالجة الرسومات، راجع أحجام الأجهزة الظاهرية المحسنة لوحدة معالجة الرسومات في Azure. بالنسبة لتجمعات عقد AKS، نوصي بالحد الأدنى لحجم Standard_NC6s_v3. سلسلة NVv4 (استنادا إلى وحدات معالجة الرسومات AMD) غير مدعومة على AKS.
إشعار
تحتوي الأجهزة الظاهرية التي تدعم وحدة معالجة الرسومات على أجهزة متخصصة تخضع لتسعير أعلى وتوافر المنطقة. للحصول على مزيدٍ من المعلومات، راجع أداة التسعير والتوفر في المنطقة.
القيود
- تحديث تجمع عقدة Windows موجود لإضافة وحدة معالجة الرسومات غير مدعوم.
- غير مدعوم على الإصدار 1.28 من Kubernetes والإصدارات الأحدث.
قبل البدء
- تفترض هذه المقالة أن لديك مجموعة AKS موجودة. إذا لم يكن لديك مجموعة، فبادر بإنشاء مجموعة باستخدام Azure CLI أو Azure PowerShell أو مدخل Microsoft Azure.
- تحتاج إلى تثبيت الإصدار 2.72.2 من Azure CLI أو إصدار أحدث وتكوينه لاستخدام
--gpu-driverالحقل معaz aks nodepool addالأمر . قم بتشغيلaz --versionللعثور على الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI. - إذا كان لديك
aks-previewملحق Azure CLI مثبتا، فيرجى تحديث الإصدار إلى 18.0.0b2 أو أحدث.
الحصول على بيانات اعتماد لمجموعتك
احصل على بيانات الاعتماد لنظام مجموعة AKS باستخدام
az aks get-credentialsالأمر . يحصل الأمر المثال التالي على بيانات الاعتماد الخاصة ب myAKSCluster في مجموعة موارد myResourceGroup :az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
استخدام وحدة معالجة الرسومات في Windows مع تثبيت برنامج التشغيل التلقائي
يتضمن استخدام وحدات معالجة الرسومات NVIDIA تثبيت مكونات برامج NVIDIA المختلفة مثل المكون الإضافي لجهاز DirectX ل Kubernetes وتثبيت برنامج تشغيل GPU والمزيد. عند إنشاء تجمع عقدة Windows مع جهاز ظاهري يدعم GPU، يتم تثبيت هذه المكونات وبرامج تشغيل NVIDIA CUDA أو GRID المناسبة. بالنسبة لأحجام الجهاز الظاهري من السلسلة NC وND، يتم تثبيت برنامج تشغيل CUDA. بالنسبة لأحجام الأجهزة الظاهرية لسلسلة NV، يتم تثبيت برنامج تشغيل GRID.
هام
تتوفر ميزات معاينة AKS على أساس الخدمة الذاتية والاشتراك. يتم توفير المعاينات "كما هي" و"كما هي متوفرة"، ويتم استبعادها من اتفاقيات مستوى الخدمة والضمان المحدود. تتم تغطية معاينات AKS جزئيًا بواسطة دعم العملاء على أساس بذل أفضل الجهود. على هذا النحو، هذه الميزات ليست مخصصة للاستخدام الإنتاجي. لمزيد من المعلومات، يُرجي الاطلاع على مقالات الدعم الآتية:
تثبيت aks-preview امتداد Azure CLI
تسجيل أو تحديث ملحق aks-preview باستخدام
az extension addالأمر أوaz extension update.# Register the aks-preview extension az extension add --name aks-preview # Update the aks-preview extension az extension update --name aks-preview
تسجيل WindowsGPUPreview العلامات المميزة
تسجيل علامة الميزة
WindowsGPUPreviewباستخدامaz feature registerالأمر .az feature register --namespace "Microsoft.ContainerService" --name "WindowsGPUPreview"يستغرق الأمر بضع دقائق حتى تظهر الحالة مُسجل.
تحقق من حالة التسجيل باستخدام
az feature showالأمر .az feature show --namespace "Microsoft.ContainerService" --name "WindowsGPUPreview"عندما تعكس الحالة Registered، قم بتحديث تسجيل موفر موارد Microsoft.ContainerService باستخدام
az provider registerالأمر .az provider register --namespace Microsoft.ContainerService
إنشاء تجمع عقدة Windows GPU ممكن (معاينة)
لإنشاء تجمع عقدة ممكن بواسطة وحدة معالجة الرسومات ل Windows، تحتاج إلى استخدام حجم VM مدعوم ممكن لوحدة معالجة الرسومات وتحديد os-type ك Windows. Windows os-sku الافتراضي هو Windows2022، ولكن جميع خيارات Windows os-sku مدعومة.
إنشاء تجمع عقدة ممكن ل Windows GPU باستخدام
az aks nodepool addالأمر .az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name gpunp \ --node-count 1 \ --os-type Windows \ --kubernetes-version 1.29.0 \ --node-vm-size Standard_NC6s_v3تحقق من أن وحدات معالجة الرسومات قابلة للمخططات.
بمجرد التأكد من أن وحدات معالجة الرسومات قابلة للمخططات، يمكنك تشغيل حمل عمل وحدة معالجة الرسومات.
تحديد نوع برنامج تشغيل GPU (معاينة)
بشكل افتراضي، تحدد AKS نوع برنامج تشغيل GPU افتراضي لكل جهاز ظاهري مدعوم يدعم وحدة معالجة الرسومات. نظرا لأن توافق حمل العمل وبرنامج التشغيل مهمان لأحمال عمل GPU التي تعمل، يمكنك تحديد نوع برنامج التشغيل لعقدة Windows GPU. هذه الميزة غير مدعومة لتجمعات عقدة Linux GPU.
عند إنشاء تجمع وكلاء Windows مع دعم GPU، لديك خيار تحديد نوع برنامج تشغيل GPU باستخدام العلامة --driver-type .
الخيارات المتاحة هي:
- GRID: للتطبيقات التي تتطلب دعم الظاهرية.
- CUDA: محسن للمهام الحسابية في الحوسبة العلمية والتطبيقات كثيفة البيانات.
إشعار
عند تعيين العلامة --driver-type ، تتحمل مسؤولية التأكد من أن نوع برنامج التشغيل المحدد متوافق مع حجم الجهاز الظاهري المحدد وتكوين تجمع العقدة. بينما تحاول AKS التحقق من صحة التوافق، هناك سيناريوهات قد يفشل فيها إنشاء تجمع العقدة بسبب عدم التوافق بين نوع برنامج التشغيل المحدد والأجهزة الظاهرية أو الأجهزة الأساسية.
لإنشاء تجمع عقدة ممكن بواسطة وحدة معالجة الرسومات في Windows مع نوع برنامج تشغيل GPU معين، استخدم az aks nodepool add الأمر .
az aks nodepool add \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name gpunp \
--node-count 1 \
--os-type Windows \
--kubernetes-version 1.29.0 \
--node-vm-size Standard_NC6s_v3 \
--driver-type GRID
على سبيل المثال، يقوم الأمر أعلاه بإنشاء تجمع عقدة ممكن بواسطة GPU باستخدام GRID نوع برنامج تشغيل GPU. يؤدي تحديد نوع برنامج التشغيل هذا إلى تجاوز الافتراضي لنوع CUDA برنامج التشغيل لوحدات sku لسلسلة NC VM.
استخدام وحدة معالجة الرسومات في Windows مع تثبيت برنامج التشغيل اليدوي
عند إنشاء تجمع عقدة Windows مع أحجام الأجهزة الظاهرية لسلسلة N (NVIDIA GPU) في AKS، يتم تثبيت برنامج تشغيل GPU والمكون الإضافي لجهاز Kubernetes DirectX تلقائيا. لتجاوز هذا التثبيت التلقائي، استخدم الخطوات التالية:
-
تخطي تثبيت برنامج تشغيل GPU عن طريق تعيين التكوين
--gpu-driver noneفي وقت إنشاء تجمع العقدة. - التثبيت اليدوي للمكون الإضافي لجهاز Kubernetes DirectX.
تخطي تثبيت برنامج تشغيل GPU
تم تمكين تثبيت برنامج تشغيل GPU تلقائيا في AKS بشكل افتراضي. في بعض الحالات، مثل تثبيت برامج التشغيل الخاصة بك، قد تحتاج إلى تخطي تثبيت برنامج تشغيل GPU.
هام
ابتداء من 14 أغسطس 2025، لم تعد خدمة Azure Kubernetes Service (AKS) تدعم وسم --skip-gpu-driver-install تجمع العقد. بعد هذا التاريخ، لن تتمكن من توفير مجموعات عقد مفعلة باستخدام هذه العلامة لتجاوز التثبيت التلقائي لتعريف بطاقة الرسوميات. يمكنك تحقيق نفس السلوك بضبط --gpu-driver الحقل على none. لمزيد من المعلومات حول هذا التقاعد، راجع مشكلة GitHub للتقاعدوإعلان تقاعد تحديثات Azure. للبقاء على اطلاع بالإعلانات والتحديثات، تابع ملاحظات إصدار AKS.
إنشاء تجمع عقدة
az aks nodepool addباستخدام الأمر وتعيين حقل--gpu-driverAPI لتخطيnoneتثبيت برنامج تشغيل GPU التلقائي.az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name gpunp \ --node-count 1 \ --os-type windows \ --os-sku windows2022 \ --gpu-driver none
إشعار
--node-vm-size إذا لم يتم إلحاق الذي تستخدمه بعد على AKS، فلا يمكنك استخدام وحدات معالجة --gpu-driver الرسومات ولا يعمل الحقل.
تثبيت المكون الإضافي لجهاز Kubernetes DirectX يدويا
يمكنك نشر DaemonSet للمكون الإضافي لجهاز Kubernetes DirectX، والذي يقوم بتشغيل جراب على كل عقدة لتوفير برامج التشغيل المطلوبة لوحدات معالجة الرسومات.
أضف تجمع عقدة إلى نظام المجموعة باستخدام
az aks nodepool addالأمر .az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name gpunp \ --node-count 1 \ --os-type windows \ --os-sku windows2022
إنشاء مساحة اسم ونشر المكون الإضافي لجهاز Kubernetes DirectX
إنشاء مساحة اسم باستخدام
kubectl create namespaceالأمر .kubectl create namespace gpu-resourcesأنشئ ملفا باسم k8s-directx-device-plugin.yaml والصق بيان YAML التالي المقدم كجزء من المكون الإضافي لجهاز NVIDIA لمشروع Kubernetes:
apiVersion: apps/v1 kind: DaemonSet metadata: name: nvidia-device-plugin-daemonset namespace: gpu-resources spec: selector: matchLabels: name: nvidia-device-plugin-ds updateStrategy: type: RollingUpdate template: metadata: # Mark this pod as a critical add-on; when enabled, the critical add-on scheduler # reserves resources for critical add-on pods so that they can be rescheduled after # a failure. This annotation works in tandem with the toleration below. annotations: scheduler.alpha.kubernetes.io/critical-pod: "" labels: name: nvidia-device-plugin-ds spec: tolerations: # Allow this pod to be rescheduled while the node is in "critical add-ons only" mode. # This, along with the annotation above marks this pod as a critical add-on. - key: CriticalAddonsOnly operator: Exists - key: nvidia.com/gpu operator: Exists effect: NoSchedule - key: "sku" operator: "Equal" value: "gpu" effect: "NoSchedule" containers: - image: mcr.microsoft.com/aks/aks-windows-gpu-device-plugin:0.0.17 name: nvidia-device-plugin-ctr securityContext: allowPrivilegeEscalation: false capabilities: drop: ["ALL"] volumeMounts: - name: device-plugin mountPath: /var/lib/kubelet/device-plugins volumes: - name: device-plugin hostPath: path: /var/lib/kubelet/device-pluginsأنشئ DaemonSet وتأكد من إنشاء المكون الإضافي لجهاز NVIDIA بنجاح باستخدام
kubectl applyالأمر .kubectl apply -f nvidia-device-plugin-ds.yamlالآن بعد أن قمت بتثبيت المكون الإضافي لجهاز NVIDIA بنجاح، يمكنك التحقق من أن وحدات معالجة الرسومات الخاصة بك قابلة للتخطط.
تأكد من أن وحدات معالجة الرسومات قابلة للجدولة
بعد إنشاء نظام المجموعة، تأكد من أن وحدات معالجة الرسومات قابلة للمخططات في Kubernetes.
سرد العقد في نظام المجموعة باستخدام
kubectl get nodesالأمر .kubectl get nodesيجب أن يبدو الإخراج مشابها لإخراج المثال التالي:
NAME STATUS ROLES AGE VERSION aks-gpunp-28993262-0 Ready agent 13m v1.20.7تأكد من أن وحدات معالجة الرسومات قابلة للمخططات باستخدام
kubectl describe nodeالأمر .kubectl describe node aks-gpunp-28993262-0ضمن قسم السعة، ينبغي أن تُدرج وحدة معالجة الرسومات باسم
microsoft.com/directx: 1. يجب أن يبدو الإخراج مشابها لإخراج المثال المكثف التالي:Capacity: [...] microsoft.com.directx/gpu: 1 [...]
تنظيف الموارد
قم بإزالة كائنات Kubernetes المقترنة التي قمت بإنشائها في هذه المقالة باستخدام
kubectl delete jobالأمر .kubectl delete jobs windows-gpu-workload
الخطوات التالية
- لتشغيل مهام Apache Spark، راجع تشغيل مهام Apache Spark على AKS.
- لمزيد من المعلومات حول ميزات مجدول Kubernetes، راجع أفضل الممارسات لميزات المجدول المتقدمة في AKS.
- لمزيد من المعلومات حول Azure Kubernetes Service وAzure التعلم الآلي، راجع: