إنشاء تجمع عقدة GPU مدار بالكامل على خدمة Azure Kubernetes ‏(AKS) (معاينة)

تشغيل أحمال عمل NVIDIA GPU على خدمة Azure Kubernetes ‏(AKS) يتطلب تقليديا تثبيت وصيانة برنامج تشغيل NVIDIA GPU، وإضافة جهاز Kubernetes، ومصدر مقاييس GPU على كل عقدة GPU. تتيح هذه المكونات جدولة وحدة معالجة الرسوميات، والوصول إلى وحدة معالجة الرسوميات على مستوى الحاويات، والقياس عن بعد، لكن تثبيتها يدويا أو عبر مشغل NVIDIA يضيف عبء تشغيلي.

مع عقد معالجة الرسوميات المدارة بالكامل (المعاينة)، يقوم AKS بتثبيت وصيانة برنامج تشغيل NVIDIA GPU، وإضافة الجهاز، ومصدري مقاييس مدير مركز معالجة الرسومات (DCGM) نيابة عنك. يصبح إنشاء تجمع عقد GPU خطوة واحدة، وسعة GPU تتصرف مثل أي تجمع عقد AKS آخر.

تقوم بتكوين تجمع عقد معالجة معالجة الرسومات المدارة عبر حقلين تحت gpuProfile.nvidia:

  • managementMode (Managed أو Unmanaged) يتحكم فيما إذا كان AKS يثبت كامل حزمة GPU المدارة (برنامج التشغيل، إضافة الجهاز، ومصدر مقاييس DCGM) أو فقط على التعريف. الافتراضي هو Unmanaged.
  • migStrategy (None, Single, or Mixed) يحدد استراتيجية وحدة معالجة الرسوميات متعددة المثيلات (MIG) لوحدات معالجة الرسوميات المدعومة مثل A100 وH100. الافتراضي هو None.

في هذا المقال، تقوم بتوفير مجموعة عقد مدارة لوحدات معالجة الرسوميات، وتفعل MIG اختياريا، وتتحقق من المكدس، وتشغل عبء عمل نموذجي لوحدة معالجة الرسوميات.

Important

تتوفر ميزات معاينة AKS على أساس الخدمة الذاتية والاشتراك. يتم توفير المعاينات "كما هي" و"كما هي متوفرة"، ويتم استبعادها من اتفاقيات مستوى الخدمة والضمان المحدود. تتم تغطية معاينات AKS جزئيًا بواسطة دعم العملاء على أساس بذل أفضل الجهود. على هذا النحو، هذه الميزات ليست مخصصة للاستخدام الإنتاجي. لمزيد من المعلومات، يُرجي الاطلاع على مقالات الدعم الآتية:

قبل البدء

مكونات وحدة معالجة الرسوميات المدارة

يمكن أن تتضمن مجموعة عقد GPU المدارة المكونات التالية في كل عقدة:

المكون ماذا تفعل ما تديره AKS
برنامج تشغيل بطاقة الرسوميات NVIDIA وحدات النواة ومكتبات مساحة المستخدم التي تسمح لنظام التشغيل والحاويات بالتواصل مع عتاد وحدة معالجة الرسومات. اختيار نسخة التعريف، التثبيت عند إعداد العقدة، وإعادة التثبيت بعد ترقيات صورة العقدة.
إضافة أجهزة NVIDIA Kubernetes ما يعادل DaemonSet الذي يعلن عن موارد GPU (nvidia.com/gpu, nvidia.com/mig-*) إلى kubelet حتى تتمكن البودات من طلبها. النشر، التكوين (بما في ذلك استراتيجية MIG)، ودورة الحياة على كل عقدة GPU.
مصدرة مقاييس DCGM و DCGM من NVIDIA يقوم مدير وحدة معالجة الرسومات في مركز البيانات بجمع بيانات صحة واستخدام وحدة معالجة الرسومات ويعرض مقاييس بروميثيوس (على سبيل المثال، DCGM_FI_DEV_GPU_UTIL، DCGM_FI_DEV_GPU_TEMP) على المنفذ19400. التركيب، تمكين الخدمة، وتسمية kubernetes.azure.com/dcgm-exporter=enabled العقدة المستخدمة لجمع المقاييس.
إشارات صحة وحدة معالجة الرسومات إشارات NPD التي تظهر حالات عقدة خاصة بوحدة معالجة الرسومات مثل UnhealthyNvidiaDevicePlugin و UnhealthyNvidiaDCGMServices. مراقبة NPD والإبلاغ عن الحالة على عقد GPU.

ملفات تعريف التثبيت

حقلان gpuProfile يحددان أي من هذين المكونين يثبته AKS:

  • gpuProfile.driver (Install أو None): سواء قامت AKS بتثبيت تعريف NVIDIA GPU.
  • gpuProfile.nvidia.managementMode (Managed أو Unmanaged): هل تقوم AKS أيضا بتثبيت مكدس معالج الرسوميات المواجه لكوبيرنتيز فوق برنامج التشغيل.

معا، ينتجان ثلاثة ملفات تعريف للتثبيت:

ملف التثبيت أعلام CLI ما الذي تقوم AKS بتركيبه وإدارته
الحزمة المدارة الكاملة --enable-managed-gpu=true (أو لا علم أبدا) المكونات الأربعة أعلاه: برنامج التشغيل، إضافة الجهاز، مصدرا مقاييس DCGM، ومراقبة صحة وحدة معالجة الرسوميات في NPD.
السائق فقط (الافتراضي) --enable-managed-gpu=false برنامج تشغيل بطاقة الرسومات NVIDIA فقط. تقوم بتثبيت وإدارة إضافة الجهاز، ومصدر المقاييس، ومراقبة الصحة بنفسك (على سبيل المثال، باستخدام مشغل بطاقة NVIDIA).
لا شيء (BYO) --enable-managed-gpu=false --gpu-driver None بدون. AKS لا يثبت أيا من المكونات الأربعة. أنت تملك الحزمة الكاملة. انظر أحضر تعريف بطاقة الرسوميات الخاص بك.

الإعدادات الافتراضية والتجاوزات

  • الإعدادات الافتراضية: إذا لم تنجح --enable-managed-gpu أو --gpu-driver، يطبق AKS ملف تعريف التعريف الخاص بالسائق فقط على مجموعة العقد التي تم إنشاؤها بحجم جهاز افتراضي مفعل بمعالج NVIDIA .
  • التجاوز: managementMode: Managed يتطلب تعريف التشغيل، لذا --gpu-driver None يتم تجاهله عندما --enable-managed-gpu=true يكون التعريف مثبتا. لتجاوز برنامج التشغيل، قم بتعيين كلا الاثنين --enable-managed-gpu=false و --gpu-driver None.
  • الثبات: managementMode، migStrategy، و driver كلها ثابتة عند وقت الخلق. لتغيير الملف الشخصي، أنشئ مجموعة عقد جديدة.

aks-preview تثبيت ملحق CLI

  1. aks-preview تثبيت ملحق CLI باستخدام az extension add الأمر . الإصدار 19.0.0b29 أو أحدث مطلوب.

    az extension add --name aks-preview
    
  2. قم بتحديث الملحق للتأكد من تثبيت أحدث إصدار باستخدام az extension update الأمر .

    az extension update --name aks-preview
    

تسجيل ManagedGPUExperiencePreview العلامات المميزة

سجل علامة الميزة ManagedGPUExperiencePreview في اشتراكك باستخدام az feature register الأمر .

az feature register --namespace Microsoft.ContainerService --name ManagedGPUExperiencePreview

Limitations

  • تدعم هذه الميزة حاليا أحجام الجهاز الظاهري (VM) التي تدعم وحدة معالجة الرسومات NVIDIA فقط.
  • تحديث تجمع عقد للأغراض العامة لإضافة حجم جهاز ظاهري لوحدة معالجة الرسومات غير مدعوم على AKS.
  • تجمع عقد Windows غير مدعوم بهذه الميزة، لأن مقاييس GPU غير مدعومة. عند إنشاء مجموعات عقد بطاقات Windows، يقوم AKS تلقائيا بتثبيت وإدارة التعريفات وإضافة جهاز DirectX. لمزيد من المعلومات، راجع AKS Windows توثيق GPU.
  • لا يتم دعم ترحيل تجمعات عقد GPU الحالية متعددة المثيلات لاستخدام هذه الميزة.
  • الترقيات المباشرة من مجموعة عقد NVIDIA الحالية إلى مجموعة عقد معالجة الرسوميات المدارة غير مدعومة. للترحيل، قم بتقييد واستنزاف عقد GPU الحالية، ثم أعد نشر أعباء العمل إلى مجموعة عقد GPU جديدة تم إنشاؤها باستخدام --enable-managed-gpu=true. لمزيد من المعلومات، راجع تجمعات إعادة تكبير العقد على AKS.
  • الحقول managementMode، migStrategy، والحقول driver تحت gpuProfile تكون ثابتة بعد إنشاء تجمع العقد. لتغيير هذه القيم، أنشئ مجموعة عقد جديدة.
  • مقياس تلقائي للعنقود غير مدعوم في مجموعات عقد GPU المدارة أثناء المعاينة. قم بتوسيع هذه المجموعات يدويا.

Note

تحتوي الأجهزة الظاهرية التي تدعم وحدة معالجة الرسومات على أجهزة متخصصة تخضع لتسعير أعلى وتوافر المنطقة. لمزيد من المعلومات، راجع أداة التسعيروتوافر المنطقة.

إنشاء تجمع عقدة GPU مدار بواسطة AKS (معاينة)

أضف تجمع عقد معالجة رسومات مدارة إلى عنقود AKS موجود عن طريق التمرير --enable-managed-gpu=true إلى az aks nodepool add. يقوم AKS بتعيين gpuProfile.nvidia.managementModeManaged وتثبيت تعريف GPU وإضافة الجهاز ومصدري مقاييس DCGM تلقائيا.

لاستخدام SKU الافتراضي لنظام التشغيل (OS) Ubuntu، يمكنك إنشاء تجمع العقد دون تحديد SKU لنظام التشغيل. يتم تكوين تجمع العقدة لنظام التشغيل الافتراضي استنادا إلى إصدار Kubernetes من نظام المجموعة.

  1. أضف تجمع عقدة إلى نظام المجموعة الخاص بك باستخدام az aks nodepool add الأمر الذي يحتوي على العلامة --enable-managed-gpu=true .

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name gpunp \
        --node-count 1 \
        --node-vm-size Standard_NC6s_v3 \
        --node-taints sku=gpu:NoSchedule \
        --enable-managed-gpu=true
    
  2. تأكد من تثبيت مكونات برنامج NVIDIA GPU المدارة بنجاح:

    az aks nodepool show \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name gpunp
    

    يجب أن يتضمن الإخراج القيم التالية:

    ...
    "gpuProfile": {
        "driver": "Install",
        "driverType": "",
        "nvidia": {
            "managementMode": "Managed",
            "migStrategy": null
        }
    },
    ...
    

إنشاء مجموعة عقد معالجة معالجة رسوميات متعددة الحالات (MIG) مدارة (معاينة)

بالنسبة لوحدات معالجة الرسومات التي تدعم وحدة معالجة الرسومات متعددة المثيلات (مثل A100 و H100)، قم بتكوين استراتيجية MIG عند إنشاء تجمع العقد باستخدام العلم --gpu-mig-strategy . تتحكم الاستراتيجية في كيفية تعرض تقسيمات MIG للعبة Kubernetes:

  • Singleجميع نسخ MIG مجمعة تحت المورد القياسي nvidia.com/gpu .
  • Mixed: يتم عرض كل ملف تعريف MIG كمورد منفصل، مثل nvidia.com/mig-1g.10gb.
  • None (افتراضي): MIG غير مهيأ.

migStrategy يصبح الحقل غير قابل للتغيير بعد إنشاء تجمع العقد.

للحصول على خلفية حول تقسيم MIG، وأحجام الأجهزة الافتراضية المدعومة، وملفات ملفات مثيلة GPU، راجع إنشاء تجمع عقد GPU متعدد النسخات في AKSوNVIDIA Multi-Instance GPU.

az aks nodepool add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mignp \
    --node-count 1 \
    --node-vm-size Standard_NC24ads_A100_v4 \
    --node-taints sku=gpu:NoSchedule \
    --enable-managed-gpu=true \
    --gpu-instance-profile MIG1g \
    --gpu-mig-strategy Single

مع هذا التكوين، تطلب البودات موارد وحدة معالجة الرسومات باستخدام اسم المورد القياسي nvidia.com/gpu .

تحقق من مجموعة عقد وحدة معالجة الرسوميات المدارة (معاينة)

بعد أن يصبح تجمع العقد جاهزا، قم بإجراء الفحوصات التالية للتأكد من أن الحزمة المدارة بالكامل مثبتة وبصحة جيدة.

  1. تحقق من شروط العقدة الخاصة بوحدة معالجة الرسومات من كاشف مشاكل العقدة (NPD):

    GPU_NODE=$(kubectl get nodes -l agentpool=gpunp -o jsonpath='{.items[0].metadata.name}')
    kubectl describe node $GPU_NODE
    

    على عقدة معالجة رسومات مدارة، يجب أن تظهر Falseالشروط التالية كلاهما:

    شرط Status Reason
    UnhealthyNvidiaDevicePlugin False HealthyNvidiaDevicePlugin
    UnhealthyNvidiaDCGMServices False HealthyNvidiaDCGMServices
  2. تحقق من وجود تسمية وحدة معالجة الرسوميات المدارة على العقدة:

    kubectl get node $GPU_NODE -o jsonpath='{.metadata.labels.kubernetes\.azure\.com/dcgm-exporter}'
    

    الإنتاج المتوقع: enabled.

  3. تحقق من أن موارد GPU معلنة في الموارد القابلة للتخصيص للعقدة:

    kubectl get node $GPU_NODE -o jsonpath='{.status.allocatable}'
    

    بالنسبة لتجمع عقد غير MIG، يشمل "nvidia.com/gpu": "1" الناتج (أو أكثر، حسب وحدة SKU). بالنسبة لمجموعة عقد MIG Mixed ، يشمل الناتج موارد خاصة ب MIG مثل "nvidia.com/mig-1g.10gb": "7".

  4. شغل عبء عمل نموذجي لتأكيد وصول وحدة معالجة الرسومات من داخل الحاوية:

    apiVersion: v1
    kind: Pod
    metadata:
      name: managed-gpu-test
    spec:
      restartPolicy: Never
      tolerations:
        - key: "sku"
          operator: "Equal"
          value: "gpu"
          effect: "NoSchedule"
      containers:
      - name: gpu-test
        image: mcr.microsoft.com/azuredocs/samples-tf-mnist-demo:gpu
        command: ["nvidia-smi"]
        resources:
          limits:
            nvidia.com/gpu: 1
    

    عرض سجلات البودات لرؤية nvidia-smi الإخراج الذي يظهر جهاز GPU، وإصدار التعريف، ونسخة CUDA:

    kubectl logs managed-gpu-test
    

تكبير مجموعة عقد GPU المدارة (المعاينة)

قم بتوسيع مجموعة عقد معالجة الرسوميات المدارة يدويا باستخدام az aks nodepool scale. العقد الجديدة تثبت كامل حزمة معالجة الرسومات المدارة.

az aks nodepool scale \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name gpunp \
    --node-count 2

Important

أثناء المعاينة، لا تدعم مجموعات عقد وحدات معالجة الرسومات المدارة جهاز التكبير التلقائي للعناصر. قم بتوسيع هذه المجموعات يدويا.

ملفات تعريف التثبيت البديلة

إذا لم يكن ملف تعريف الحزمة المدارة الكاملة مناسبا، يدعم AKS ملفي تعريف بديل في مجموعات عقد GPU.

استخدم هذا الملف عندما تريد من AKS تثبيت وصيانة تعريف بطاقة NVIDIA، لكنك تخطط لنشر إضافة الجهاز ومصدري المقاييس بنفسك (على سبيل المثال، مع مشغل NVIDIA GPU). تعيين --enable-managed-gpu=false:

az aks nodepool add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name gpunp \
    --node-count 1 \
    --node-vm-size Standard_NC6s_v3 \
    --node-taints sku=gpu:NoSchedule \
    --enable-managed-gpu=false

مع هذا التكوين:

  • تقوم AKS بتثبيت وإدارة تعريف بطاقة NVIDIA (gpuProfile.driver هي Install).
  • AKS لا يثبت إضافة جهاز، أو مصدرة مقاييس DCGM، أو قواعد صحة وحدة معالجة الرسوميات. gpuProfile.nvidia هي null.
  • لا nvidia.com/gpu يتم الإعلان عن أي مورد حتى تقوم بنشر إضافة جهاز.

الخطوات التالية