تشغيل Milvus مع دعم وحدة معالجة الرسومات باستخدام مخطط Helm
توضح هذه الصفحة كيفية بدء تشغيل مثيل Milvus مع دعم وحدة معالجة الرسومات باستخدام مخطط Helm.
نظرة عامة
يستخدم Helm تنسيق تغليف يسمى المخططات. المخطط هو مجموعة من الملفات التي تصف مجموعة ذات صلة من موارد Kubernetes. يوفر Milvus مجموعة من المخططات لمساعدتك في نشر تبعيات ومكونات Milvus. إن مخطط Milvus Helm Chart هو حل يقوم بتمهيد نشر Milvus على مجموعة Kubernetes (K8s) باستخدام مدير الحزم Helm.
المتطلبات الأساسية
تثبيت StorageClass. يمكنك التحقق من StorageClass المثبت على النحو التالي.
$ kubectl get sc NAME PROVISIONER RECLAIMPOLICY VOLUMEBIINDINGMODE ALLOWVOLUMEEXPANSION AGE standard (default) k8s.io/minikube-hostpath Delete Immediate false
تحقق من متطلبات الأجهزة والبرامج قبل التثبيت.
إذا واجهتك أي مشاكل في سحب الصورة، اتصل بنا على community@zilliz.com مع تفاصيل عن المشكلة، وسنقدم لك الدعم اللازم.
تثبيت مخطط Helm لـ Milvus
Helm هو مدير حزم K8s الذي يمكن أن يساعدك في نشر Milvus بسرعة.
- إضافة مستودع 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. للإصدارات الأحدث، استخدم الريبو الجديد بدلاً من ذلك.
- تحديث الرسوم البيانية محليًا.
$ 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
ما التالي
بعد تثبيت ميلفوس، يمكنك
التحقق من Quickstart لمعرفة ما يمكن لـ Milvus القيام به.
تعلم العمليات الأساسية لملفوس:
نشر مجموعة ميلفوس الخاصة بك على السحابة:
استكشف واجهة Milvus WebUI، وهي واجهة ويب سهلة الاستخدام لمراقبة وإدارة Milvus.
استكشف Milvus Backup، وهي أداة مفتوحة المصدر للنسخ الاحتياطية لبيانات Milvus.
استكشف Birdwatcher، وهي أداة مفتوحة المصدر لتصحيح أخطاء ميلفوس وتحديثات التكوين الديناميكية.
استكشف Attu، وهي أداة مفتوحة المصدر لواجهة المستخدم الرسومية لإدارة Milvus بسهولة.