🚀 جرب Zilliz Cloud، الـ Milvus المدارة بالكامل، مجاناً — تجربة أداء أسرع بـ 10 أضعاف! جرب الآن>>

milvus-logo
LFAI
الصفحة الرئيسية
  • ابدأ الآن

تشغيل Milvus مع دعم وحدة معالجة الرسومات باستخدام مخطط Helm

توضح هذه الصفحة كيفية بدء تشغيل مثيل Milvus مع دعم وحدة معالجة الرسومات باستخدام مخطط Helm.

نظرة عامة

يستخدم Helm تنسيق تغليف يسمى المخططات. المخطط هو مجموعة من الملفات التي تصف مجموعة ذات صلة من موارد Kubernetes. يوفر Milvus مجموعة من المخططات لمساعدتك في نشر تبعيات ومكونات Milvus. إن مخطط Milvus Helm Chart هو حل يقوم بتمهيد نشر Milvus على مجموعة Kubernetes (K8s) باستخدام مدير الحزم Helm.

المتطلبات الأساسية

إذا واجهتك أي مشاكل في سحب الصورة، اتصل بنا على community@zilliz.com مع تفاصيل عن المشكلة، وسنقدم لك الدعم اللازم.

تثبيت مخطط Helm لـ Milvus

Helm هو مدير حزم K8s الذي يمكن أن يساعدك في نشر Milvus بسرعة.

  1. إضافة مستودع Milvus Helm.
$ helm repo add milvus https://zilliztech.github.io/milvus-helm/

تمت أرشفة الريبو الخاص بـ Milvus Helm Charts على https://milvus-io.github.io/milvus-helm/ ويمكنك الحصول على المزيد من التحديثات من https://zilliztech.github.io/milvus-helm/ على النحو التالي:

helm repo add zilliztech https://zilliztech.github.io/milvus-helm
helm repo update
# upgrade existing helm release
helm upgrade my-release zilliztech/milvus

لا يزال الريبو المؤرشف متاحًا للمخططات حتى الإصدار 4.0.31. للإصدارات الأحدث، استخدم الريبو الجديد بدلاً من ذلك.

  1. تحديث الرسوم البيانية محليًا.
$ helm repo update

ابدأ تشغيل ميلفوس

بمجرد تثبيت مخطط Helm، يمكنك بدء تشغيل Milvus على Kubernetes. في هذا القسم، سنرشدك في هذا القسم إلى خطوات بدء تشغيل Milvus مع دعم وحدة معالجة الرسومات.

يجب عليك بدء تشغيل Milvus مع Helm من خلال تحديد اسم الإصدار والمخطط والمعلمات التي تتوقع تغييرها. في هذا الدليل، نستخدم my-release كاسم الإصدار. لاستخدام اسم إصدار مختلف، استبدل my-release في الأوامر التالية بالاسم الذي تستخدمه.

يسمح لك Milvus بتعيين جهاز واحد أو أكثر من أجهزة وحدة معالجة الرسومات إلى Milvus.

1. تعيين جهاز وحدة معالجة رسومات واحد

يسمح لك Milvus مع دعم وحدة معالجة الرسومات بتعيين جهاز واحد أو أكثر من أجهزة وحدة معالجة الرسومات.

  • مجموعة Milvus العنقودية

    cat <<EOF > custom-values.yaml
    indexNode:
      resources:
        requests:
          nvidia.com/gpu: "1"
        limits:
          nvidia.com/gpu: "1"
    queryNode:
      resources:
        requests:
          nvidia.com/gpu: "1"
        limits:
          nvidia.com/gpu: "1"
    EOF
    
    $ helm install my-release milvus/milvus -f custom-values.yaml
    
  • ميلفوس مستقل

    cat <<EOF > custom-values.yaml
    standalone:
      resources:
        requests:
          nvidia.com/gpu: "1"
        limits:
          nvidia.com/gpu: "1"
    EOF
    
    $ helm install my-release milvus/milvus --set cluster.enabled=false --set etcd.replicaCount=1 --set minio.mode=standalone --set pulsar.enabled=false -f custom-values.yaml
    

2. تعيين أجهزة GPU متعددة لوحدة معالجة الرسومات

بالإضافة إلى جهاز GPU واحد، يمكنك أيضاً تعيين أجهزة GPU متعددة إلى Milvus.

  • مجموعة ميلفوس العنقودية

    cat <<EOF > custom-values.yaml
    indexNode:
      resources:
        requests:
          nvidia.com/gpu: "2"
        limits:
          nvidia.com/gpu: "2"
    queryNode:
      resources:
        requests:
          nvidia.com/gpu: "2"
        limits:
          nvidia.com/gpu: "2"
    EOF
    

    في التهيئة أعلاه، تشترك عقدة الفهرس وعقدة الاستعلام في وحدتي معالجة رسومات. لتعيين وحدتي GPU مختلفتين لوحدتي GPU إلى عقدة الفهرس وعقدة الاستعلام، يمكنك تعديل التكوين وفقًا لذلك من خلال تعيين extraEnv في ملف التكوين على النحو التالي:

    cat <<EOF > custom-values.yaml
    indexNode:
      resources:
        requests:
          nvidia.com/gpu: "1"
        limits:
          nvidia.com/gpu: "1"
      extraEnv:
        - name: CUDA_VISIBLE_DEVICES
          value: "0"
    queryNode:
      resources:
        requests:
          nvidia.com/gpu: "1"
        limits:
          nvidia.com/gpu: "1"
      extraEnv:
        - name: CUDA_VISIBLE_DEVICES
          value: "1"
    EOF
    
    $ helm install my-release milvus/milvus -f custom-values.yaml
    
    • يجب أن يحتوي اسم الإصدار على أحرف وأرقام وشرطات فقط. غير مسموح بالنقاط في اسم الإصدار.
    • يقوم سطر الأوامر الافتراضي بتثبيت الإصدار العنقودي من Milvus أثناء تثبيت Milvus مع Helm. هناك حاجة إلى مزيد من الإعدادات أثناء تثبيت Milvus مستقل.
    • وفقًا لدليل ترحيل واجهة برمجة التطبيقات المهملة من Kuberenetes، لم يعد يتم تقديم إصدار واجهة برمجة التطبيقات Policy/v1beta1 من PodDisruptionBudget اعتبارًا من الإصدار v1.25. يُقترح عليك ترحيل القوائم وعملاء واجهة برمجة التطبيقات لاستخدام إصدار السياسة/ الإصدار الأول من واجهة برمجة التطبيقات بدلاً من ذلك.
      كحل بديل للمستخدمين الذين لا يزالون يستخدمون إصدار Policy/v1beta1 API من PodDisruptionBudget على Kuberenetes v1.25 والإصدارات الأحدث، يمكنك بدلاً من ذلك تشغيل الأمر التالي لتثبيت Milvus:
      helm install my-release milvus/milvus --set pulsar.bookkeeper.pdb.usePolicy=false,pulsar.broker.pdb.usePolicy=false,pulsar.proxy.pdb.usePolicy=false,pulsar.zookeeper.pdb.usePolicy=false
    • انظر مخطط Milvus Helm و Helm لمزيد من المعلومات.
  • ميلفوس مستقل

    cat <<EOF > custom-values.yaml
    indexNode:
      resources:
        requests:
          nvidia.com/gpu: "2"
        limits:
          nvidia.com/gpu: "2"
    queryNode:
      resources:
        requests:
          nvidia.com/gpu: "2"
        limits:
          nvidia.com/gpu: "2"
    EOF
    

    في التهيئة أعلاه، تشترك عقدة الفهرس وعقدة الاستعلام في وحدتي معالجة رسومات. لتعيين وحدات معالجة رسومات مختلفة إلى عقدة الفهرس وعقدة الاستعلام، يمكنك تعديل التكوين وفقًا لذلك عن طريق تعيين extraEnv في ملف التكوين على النحو التالي:

    cat <<EOF > custom-values.yaml
    indexNode:
      resources:
        requests:
          nvidia.com/gpu: "1"
        limits:
          nvidia.com/gpu: "1"
      extraEnv:
        - name: CUDA_VISIBLE_DEVICES
          value: "0"
    queryNode:
      resources:
        requests:
          nvidia.com/gpu: "1"
        limits:
          nvidia.com/gpu: "1"
      extraEnv:
        - name: CUDA_VISIBLE_DEVICES
          value: "1"
    EOF
    
    $ helm install my-release milvus/milvus --set cluster.enabled=false --set etcd.replicaCount=1 --set minio.mode=standalone --set pulsar.enabled=false -f custom-values.yaml
    

2. تحقق من حالة ميلفوس

قم بتشغيل الأمر التالي للتحقق من حالة Milvus:

$ kubectl get pods

بعد بدء تشغيل Milvus، يعرض العمود READY 1/1 لجميع الكبسولات.

  • مجموعة ميلفوس العنقودية

    NAME                                             READY  STATUS   RESTARTS  AGE
    my-release-etcd-0                                1/1    Running   0        3m23s
    my-release-etcd-1                                1/1    Running   0        3m23s
    my-release-etcd-2                                1/1    Running   0        3m23s
    my-release-milvus-datacoord-6fd4bd885c-gkzwx     1/1    Running   0        3m23s
    my-release-milvus-datanode-68cb87dcbd-4khpm      1/1    Running   0        3m23s
    my-release-milvus-indexcoord-5bfcf6bdd8-nmh5l    1/1    Running   0        3m23s
    my-release-milvus-indexnode-5c5f7b5bd9-l8hjg     1/1    Running   0        3m24s
    my-release-milvus-proxy-6bd7f5587-ds2xv          1/1    Running   0        3m24s
    my-release-milvus-querycoord-579cd79455-xht5n    1/1    Running   0        3m24s
    my-release-milvus-querynode-5cd8fff495-k6gtg     1/1    Running   0        3m24s
    my-release-milvus-rootcoord-7fb9488465-dmbbj     1/1    Running   0        3m23s
    my-release-minio-0                               1/1    Running   0        3m23s
    my-release-minio-1                               1/1    Running   0        3m23s
    my-release-minio-2                               1/1    Running   0        3m23s
    my-release-minio-3                               1/1    Running   0        3m23s
    my-release-pulsar-autorecovery-86f5dbdf77-lchpc  1/1    Running   0        3m24s
    my-release-pulsar-bookkeeper-0                   1/1    Running   0        3m23s
    my-release-pulsar-bookkeeper-1                   1/1    Running   0        98s
    my-release-pulsar-broker-556ff89d4c-2m29m        1/1    Running   0        3m23s
    my-release-pulsar-proxy-6fbd75db75-nhg4v         1/1    Running   0        3m23s
    my-release-pulsar-zookeeper-0                    1/1    Running   0        3m23s
    my-release-pulsar-zookeeper-metadata-98zbr       0/1   Completed  0        3m24s
    
  • ميلفوس مستقل

    NAME                                               READY   STATUS      RESTARTS   AGE
    my-release-etcd-0                                  1/1     Running     0          30s
    my-release-milvus-standalone-54c4f88cb9-f84pf      1/1     Running     0          30s
    my-release-minio-5564fbbddc-mz7f5                  1/1     Running     0          30s
    

3. إعادة توجيه منفذ محلي إلى ميلفوس

تحقق من المنفذ المحلي الذي يستمع إليه خادم Milvus. استبدل اسم الكبسولة باسمك.

$ kubectl get pod my-release-milvus-proxy-6bd7f5587-ds2xv --template
='{{(index (index .spec.containers 0).ports 0).containerPort}}{{"\n"}}'
19530

بعد ذلك، قم بتشغيل الأمر التالي لإعادة توجيه منفذ محلي إلى المنفذ الذي يعمل عليه Milvus.

$ kubectl port-forward service/my-release-milvus 27017:19530
Forwarding from 127.0.0.1:27017 -> 19530

اختياريًا، يمكنك استخدام :19530 بدلًا من 27017:19530 في الأمر أعلاه للسماح لـ kubectl بتخصيص منفذ محلي لك حتى لا تضطر إلى إدارة تعارضات المنافذ.

بشكل افتراضي، يستمع منفذ إعادة توجيه المنفذ الخاص بـ kubectl بشكل افتراضي فقط على localhost. استخدم العلامة address إذا كنت تريد أن يستمع ميلفوس على عناوين IP المحددة أو جميع عناوين IP. الأمر التالي يجعل الأمر التالي المنفذ إلى الأمام يستمع على جميع عناوين IP على الجهاز المضيف.

$ kubectl port-forward --address 0.0.0.0 service/my-release-milvus 27017:19530
Forwarding from 0.0.0.0:27017 -> 19530

الآن، يمكنك الاتصال ب Milvus باستخدام المنفذ المعاد توجيهه.

الوصول إلى Milvus WebUI

يأتي Milvus مزودًا بأداة واجهة مستخدم رسومية مدمجة تسمى Milvus WebUI والتي يمكنك الوصول إليها من خلال متصفحك. تعزز واجهة مستخدم Milvus WebUI إمكانية مراقبة النظام بواجهة بسيطة وبديهية. يمكنك استخدام واجهة مستخدم الويب Milvus Web UI لمراقبة الإحصائيات والمقاييس الخاصة بمكونات وتبعيات Milvus، والتحقق من تفاصيل قاعدة البيانات والتجميع، وسرد تكوينات Milvus المفصلة. للحصول على تفاصيل حول واجهة مستخدم ميلفوس ويب، راجع واجهة مستخدم ميلفوس ويب

لتمكين الوصول إلى واجهة مستخدم ويب Milvus Web UI، تحتاج إلى إعادة توجيه منفذ إلى منفذ محلي.

$ kubectl port-forward --address 0.0.0.0 service/my-release-milvus 27018:9091
Forwarding from 0.0.0.0:27018 -> 9091

الآن، يمكنك الوصول إلى واجهة مستخدم ويب Milvus Web UI على http://localhost:27018.

إلغاء تثبيت ميلفوس

قم بتشغيل الأمر التالي لإلغاء تثبيت ميلفوس.

$ helm uninstall my-release

ما التالي

بعد تثبيت ميلفوس، يمكنك

جرب Managed Milvus مجاناً

Zilliz Cloud خالي من المتاعب، ويعمل بواسطة Milvus ويعمل بسرعة 10 أضعاف.

ابدأ
التعليقات

هل كانت هذه الصفحة مفيدة؟