تشغيل Milvus في Kubernetes باستخدام Helm
توضح هذه الصفحة كيفية بدء تشغيل مثيل Milvus في Kubernetes باستخدام مخططات Milvus Helm.
نظرة عامة
يستخدم Helm تنسيق تغليف يسمى المخططات. المخطط عبارة عن مجموعة من الملفات التي تصف مجموعة ذات صلة من موارد Kubernetes. يوفر Milvus مجموعة من المخططات لمساعدتك في نشر تبعيات ومكونات Milvus.
المتطلبات الأساسية
تثبيت StorageClass. يمكنك التحقق من StorageClass المثبت على النحو التالي.
$ kubectl get sc NAME PROVISIONER RECLAIMPOLICY VOLUMEBIINDINGMODE ALLOWVOLUMEEXPANSION AGE standard (default) k8s.io/minikube-hostpath Delete Immediate falseتحقق من متطلبات الأجهزة والبرامج قبل التثبيت.
قبل تثبيت Milvus، يوصى باستخدام أداة تحجيم Milvus لتقدير متطلبات الأجهزة بناءً على حجم بياناتك. يساعد ذلك على ضمان الأداء الأمثل وتخصيص الموارد لتثبيت Milvus الخاص بك.
إذا واجهتك أي مشاكل في سحب الصورة، اتصل بنا على community@zilliz.com مع تفاصيل المشكلة، وسنقدم لك الدعم اللازم.
تثبيت مخطط ميلفوس هيلم
قبل تثبيت مخططات Milvus Helm Charts، تحتاج إلى إضافة مستودع Milvus Helm.
helm repo add zilliztech https://zilliztech.github.io/milvus-helm/
تمت أرشفة ريبو Milvus Helm Charts على https://github.com/milvus-io/milvus-helm. نستخدم الآن المستودع الجديد على https://github.com/zilliztech/milvus-helm. لا يزال الريبو المؤرشف متاحًا للمخططات حتى الإصدار 4.0.31، ولكن استخدم الريبو الجديد للإصدارات الأحدث.
ثم قم بجلب مخططات Milvus من المستودع على النحو التالي:
$ helm repo update
يمكنك دائمًا تشغيل هذا الأمر لجلب أحدث مخططات Milvus Helm.
التثبيت عبر الإنترنت
1. نشر مجموعة Milvus
بمجرد تثبيت مخطط Helm، يمكنك بدء تشغيل Milvus على Kubernetes. يرشدك هذا القسم خلال نشر مجموعة Milvus العنقودية.
هل تحتاج إلى نشر مستقل بدلاً من ذلك؟
إذا كنت تفضل نشر Milvus في الوضع المستقل (عقدة واحدة) للتطوير أو الاختبار، استخدم هذا الأمر:
helm install my-release zilliztech/milvus \
--set image.all.tag=v3.0-beta \
--set cluster.enabled=false \
--set pulsarv3.enabled=false \
--set standalone.messageQueue=woodpecker \
--set woodpecker.enabled=true \
--set streaming.enabled=true
ملحوظة: يستخدم الوضع المستقل Woodpecker كقائمة انتظار الرسائل الافتراضية ويمكّن مكون عقدة التدفق. للحصول على التفاصيل، راجع نظرة عامة على البنية واستخدام Woodpecker.
نشر مجموعة ميلفوس العنقودية:
يقوم الأمر التالي بنشر مجموعة Milvus مع إعدادات محسّنة للإصدار 3.0-بيتا باستخدام Woodpecker كقائمة انتظار الرسائل الموصى بها:
helm install my-release zilliztech/milvus \
--set image.all.tag=v3.0-beta \
--set pulsarv3.enabled=false \
--set woodpecker.enabled=true \
--set streaming.enabled=true \
--set indexNode.enabled=false
ما الذي يفعله هذا الأمر:
- يستخدم Woodpecker كقائمة انتظار الرسائل (موصى به لتقليل الصيانة)
- تمكين مكون عقدة التدفق الجديدة لتحسين الأداء.
- تعطيل عقدة الفهرس القديمة (يتم التعامل مع الوظيفة الآن بواسطة عقدة البيانات)
- تعطيل Pulsar لاستخدام Woodpecker بدلاً من ذلك.
تغييرات البنية في Milvus 2.6.x:
- قائمة انتظار الرسائل: يوصى الآن باستخدام Woodpecker (يقلل من صيانة البنية التحتية مقارنةً ب Pulsar)
- مكون جديد: تم تقديم عقدة البث وتمكينها افتراضيًا
- مكونات مدمجة: تم دمج عقدة الفهرس وعقدة البيانات في عقدة بيانات واحدة
للحصول على تفاصيل البنية الكاملة، راجع نظرة عامة على البنية.
خيارات قائمة انتظار الرسائل البديلة:
إذا كنت تفضل استخدام Pulsar (الخيار التقليدي) بدلاً من Woodpecker:
helm install my-release zilliztech/milvus \
--set image.all.tag=v3.0-beta \
--set streaming.enabled=true \
--set indexNode.enabled=false
الخطوات التالية:يقوم الأمر أعلاه بنشر ميلفوس بالتكوينات الموصى بها. للاستخدام في الإنتاج:
- استخدم أداة تحجيم ميلفوس لتحسين الإعدادات بناءً على حجم بياناتك
- راجع قائمة مراجعة تكوينات نظام Milvus للحصول على خيارات التكوين المتقدمة
ملاحظات مهمة:
- تسمية الإصدار: استخدم الحروف والأرقام والشرطات فقط (غير مسموح بالنقاط)
- Kubernetes v1.25+: إذا واجهت مشاكل في PodDisruptionBudget، استخدم هذا الحل البديل:
helm install my-release zilliztech/milvus \ --set pulsar.bookkeeper.pdb.usePolicy=false \ --set pulsar.broker.pdb.usePolicy=false \ --set pulsar.proxy.pdb.usePolicy=false \ --set pulsar.zookeeper.pdb.usePolicy=false
لمزيد من المعلومات، راجع مخطط Milvus Helm ووثائق Helm.
2. تحقق من حالة مجموعة ميلفوس
تحقق من نجاح عملية النشر الخاصة بك عن طريق التحقق من حالة الكبسولات:
kubectl get pods
انتظر حتى تظهر جميع الكبسولات حالة "قيد التشغيل". باستخدام تكوين v3.0-beta، يجب أن ترى كبسولات مشابهة لـ
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-datanode-68cb87dcbd-4khpm 1/1 Running 0 3m23s
my-release-milvus-mixcoord-7fb9488465-dmbbj 1/1 Running 0 3m23s
my-release-milvus-proxy-6bd7f5587-ds2xv 1/1 Running 0 3m24s
my-release-milvus-querynode-5cd8fff495-k6gtg 1/1 Running 0 3m24s
my-release-milvus-streaming-node-xxxxxxxxx 1/1 Running 0 3m24s
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
المكونات الرئيسية للتحقق:
- مكونات ميلفوس
mixcoord،datanode،querynode، ،proxy,streaming-node - التبعيات:
etcd(البيانات الوصفية)،minio(تخزين الكائنات)،pulsar(قائمة انتظار الرسائل)
يمكنك أيضًا الوصول إلى واجهة ويب Milvus WebUI على http://127.0.0.1:9091/webui/ بمجرد إعداد إعادة توجيه المنفذ (انظر الخطوة التالية). للحصول على التفاصيل، راجع Milvus WebUI.
3. الاتصال بميلفوس
للاتصال بمجموعة Milvus من خارج Kubernetes، تحتاج إلى إعداد إعادة توجيه المنفذ.
قم بإعداد إعادة توجيه المنفذ:
kubectl port-forward service/my-release-milvus 27017:19530
يقوم هذا الأمر بإعادة توجيه المنفذ المحلي 27017 إلى منفذ Milvus 19530. يجب أن ترى:
Forwarding from 127.0.0.1:27017 -> 19530
تفاصيل الاتصال:
- الاتصال المحلي:
localhost:27017 - منفذ ميلفوس الافتراضي:
19530
خيارات لإعادة توجيه المنفذ:
- التعيين التلقائي للمنفذ المحلي: استخدم
:19530بدلاً من27017:19530للسماح لـ kubectl باختيار منفذ متاح - الاستماع على جميع الواجهات: إضافة
--address 0.0.0.0للسماح بالاتصالات من أجهزة أخرى:kubectl port-forward --address 0.0.0.0 service/my-release-milvus 27017:19530 - النشر المستقل: في حالة استخدام الوضع المستقل، يظل اسم الخدمة كما هو
أبقِ هذه المحطة مفتوحة أثناء استخدام ميلفوس. يمكنك الآن الاتصال بـ Milvus باستخدام أي مجموعة أدوات تطوير البرمجيات الخاصة بـ Milvus على localhost:27017.
(اختياري) تحديث تكوينات ملفوس
يمكنك تحديث تكوينات مجموعة ميلفوس الخاصة بك عن طريق تحرير الملف values.yaml وتطبيقه مرة أخرى.
قم بإنشاء ملف
values.yamlمع التكوينات المطلوبة.يفترض ما يلي أنك تريد تمكين
proxy.http.extraConfigFiles: user.yaml: |+ proxy: http: enabled: trueللحصول على عناصر التكوين القابلة للتطبيق، راجع تكوين النظام.
قم بتطبيق الملف
values.yaml.
helm upgrade my-release zilliztech/milvus --namespace my-namespace -f values.yaml
تحقق من التكوينات المحدثة.
helm get values my-releaseيجب أن يعرض الإخراج التكوينات المحدثة.
الوصول إلى 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.
التثبيت دون اتصال
إذا كنت في بيئة مقيدة بالشبكة، اتبع الإجراء الوارد في هذا القسم لبدء مجموعة Milvus.
1. احصل على بيان ميلفوس
قم بتشغيل الأمر التالي للحصول على بيان Milvus.
$ helm template my-release zilliztech/milvus > milvus_manifest.yaml
يقوم الأمر أعلاه بعرض قوالب المخططات لمجموعة Milvus ويحفظ المخرجات في ملف بيان باسم milvus_manifest.yaml. باستخدام هذا البيان، يمكنك تثبيت مجموعة Milvus مع مكوناتها وتوابعها في كبسولات منفصلة.
- لتثبيت مثيل Milvus في الوضع المستقل حيث يتم تضمين جميع مكونات Milvus في كبسولة واحدة، يجب عليك تشغيل
helm template my-release --set cluster.enabled=false --set etcd.replicaCount=1 --set minio.mode=standalone --set pulsarv3.enabled=false zilliztech/milvus > milvus_manifest.yamlبدلاً من ذلك لعرض قوالب البيان لمثيل Milvus في الوضع المستقل. - لتغيير تكوينات Milvus، قم بتحميل قالب
value.yamlالقالب، ضع الإعدادات التي تريدها فيه، واستخدمhelm template -f values.yaml my-release zilliztech/milvus > milvus_manifest.yamlلعرض البيان وفقًا لذلك.
2. تنزيل البرنامج النصي لسحب الصور
تم تطوير البرنامج النصي لسحب الصور بلغة Python. يجب عليك تنزيل البرنامج النصي مع تبعياته في ملف requirement.txt.
$ wget https://raw.githubusercontent.com/milvus-io/milvus/master/deployments/offline/requirements.txt
$ wget https://raw.githubusercontent.com/milvus-io/milvus/master/deployments/offline/save_image.py
3. سحب الصور وحفظها
قم بتشغيل الأمر التالي لسحب الصور المطلوبة وحفظها.
$ pip3 install -r requirements.txt
$ python3 save_image.py --manifest milvus_manifest.yaml
يتم سحب الصور في مجلد فرعي باسم images في الدليل الحالي.
4. تحميل الصور
يمكنك الآن تحميل الصور إلى المضيفين في البيئة المقيدة بالشبكة على النحو التالي:
$ for image in $(find . -type f -name "*.tar.gz") ; do gunzip -c $image | docker load; done
5. نشر ميلفوس
$ kubectl apply -f milvus_manifest.yaml
حتى الآن، يمكنك اتباع الخطوتين 2 و3 من التثبيت عبر الإنترنت للتحقق من حالة المجموعة وإعادة توجيه منفذ محلي إلى Milvus.
ترقية مجموعة ميلفوس قيد التشغيل
قم بتشغيل الأمر التالي لترقية مجموعة Milvus قيد التشغيل إلى أحدث إصدار:
$ helm repo update
$ helm upgrade my-release zilliztech/milvus --reset-then-reuse-values
إلغاء تثبيت ميلفوس
قم بتشغيل الأمر التالي لإلغاء تثبيت Milvus.
$ helm uninstall my-release
ما التالي
بعد تثبيت Milvus في Docker، يمكنك:
التحقق من Hello Milvus لمعرفة ما يمكن لـ Milvus القيام به.
تعلم العمليات الأساسية لميلفوس:
نشر مجموعة ميلفوس العنقودية الخاصة بك على السحب:
استكشف واجهة Milvus WebUI، وهي واجهة ويب سهلة الاستخدام لمراقبة وإدارة Milvus.
استكشف Milvus Backup، وهي أداة مفتوحة المصدر للنسخ الاحتياطية لبيانات Milvus.
استكشف Birdwatcher، وهي أداة مفتوحة المصدر لتصحيح أخطاء ميلفوس وتحديثات التكوين الديناميكية.
استكشف Attu، وهي أداة مفتوحة المصدر لواجهة المستخدم الرسومية لإدارة Milvus بسهولة.