تشغيل Milvus في Kubernetes باستخدام Helm
توضح هذه الصفحة كيفية تشغيل مثيل Milvus في Kubernetes باستخدام مخططات Helm الخاصة بـ Milvus.
نظرة عامة
يستخدم 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 Sizing Tool لتقدير متطلبات الأجهزة بناءً على حجم البيانات لديك. يساعد ذلك في ضمان الأداء الأمثل وتخصيص الموارد بشكل مثالي لتثبيت Milvus الخاص بك.
إذا واجهت أي مشكلات في سحب الصورة، فاتصل بنا على community@zilliz.com مع تفاصيل حول المشكلة، وسنقدم لك الدعم اللازم.
تثبيت مخطط Helm الخاص بـ Milvus
قبل تثبيت مخططات Helm الخاصة بـ Milvus، تحتاج إلى إضافة مستودع Helm الخاص بـ Milvus.
helm repo add zilliztech https://zilliztech.github.io/milvus-helm/
تم أرشفة مستودع مخططات Helm الخاصة بـ Milvus الموجود على 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.0 \
--set cluster.enabled=false \
--set pulsarv3.enabled=false \
--set standalone.messageQueue=woodpecker \
--set woodpecker.enabled=true \
--set streaming.enabled=true
ملاحظة: يستخدم الوضع المستقل Woodpecker كقائمة انتظار الرسائل الافتراضية ويقوم بتمكين مكون Streaming Node. تعمل عمليات النشر المستقلة على تشغيل Woodpecker المدمج في pod Milvus؛ بينما تُستخدم خدمة Woodpecker المخصصة (pods منفصلة) لعمليات النشر الموزعة/على الكتلة فقط. لمزيد من التفاصيل، راجع نظرة عامة على البنية و Woodpecker.
نشر مجموعة Milvus:
بالنسبة لوضع خدمة Woodpecker، نوصي باستخدام الإصدار القادم Milvus 3.0.1 أو إصدار أحدث مع Woodpecker v0.1.37 أو أحدث من أجل تحسينات تنظيف الضغط والتزام المجموعة.
يقوم الأمر التالي بنشر مجموعة Milvus بإعدادات مُحسَّنة للإصدار v3.0.0، باستخدام Woodpecker كقائمة انتظار الرسائل الموصى بها:
helm install my-release zilliztech/milvus \
--set image.all.tag=v3.0.0 \
--set woodpecker.enabled=true \
--set woodpecker.image.tag=v0.1.37 \
--set streaming.enabled=true \
--set streaming.woodpecker.embedded=false \
--set indexNode.enabled=false
ما يفعله هذا الأمر:
- يستخدم Woodpecker كقائمة انتظار الرسائل (موصى به لتقليل الصيانة)
- تشغيل Woodpecker كخدمة مخصصة (مجموعة StatefulSet منفصلة)، وليست مدمجة في عقدة البث
- يقوم بتمكين مكون «عقدة البث » الجديد لتحسين الأداء
- يعطل «عقدة الفهرس » القديمة (تتولى «عقدة البيانات» الآن هذه الوظيفة)
التغييرات في بنية Milvus 2.6.x:
- قائمة انتظار الرسائل: يُوصى الآن باستخدام Woodpecker (يقلل من صيانة البنية التحتية مقارنةً بـ Pulsar)
- مكون جديد: تم تقديم Streaming Node وتم تمكينه افتراضيًا
- المكونات المدمجة: تم دمج «عقدة الفهرس » و«عقدة البيانات » في «عقدة بيانات» واحدة
للحصول على تفاصيل كاملة عن البنية، راجع نظرة عامة على البنية.
قوائم انتظار الرسائل البديلة: للنشر باستخدام Pulsar أو Kafka أو RocksMQ بدلاً من Woodpecker، راجع التبعيات الاختيارية.
الخطوات التالية: يقوم الأمر أعلاه بنشر Milvus بالتكوينات الموصى بها. للاستخدام في بيئة الإنتاج:
- استخدم أداة تحديد حجم Milvus لتحسين الإعدادات بناءً على حجم البيانات لديك
- راجع قائمة مراجعة تكوينات نظام Milvus للحصول على خيارات التكوين المتقدمة
ملاحظات مهمة:
- تسمية الإصدار: استخدم الأحرف والأرقام والشرطات فقط (لا يُسمح باستخدام النقاط)
لمزيد من المعلومات، راجع مخطط Helm الخاص بـ Milvus ووثائق Helm.
2. تحقق من حالة مجموعة Milvus
تأكد من نجاح النشر عن طريق التحقق من حالة البودات:
kubectl get pods
انتظر حتى تظهر حالة «قيد التشغيل» لجميع البودات. مع تكوين الإصدار v3.0.0، من المفترض أن ترى بودات مشابهة لما يلي:
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-streamingnode-7b8cfc769c-mqmsm 1/1 Running 0 3m24s
my-release-milvus-woodpecker-0 1/1 Running 0 3m24s
my-release-milvus-woodpecker-1 1/1 Running 0 3m24s
my-release-milvus-woodpecker-2 1/1 Running 0 3m24s
my-release-milvus-woodpecker-3 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
المكونات الرئيسية التي يجب التحقق منها:
- مكونات Milvus:
mixcoord،datanode،querynode،proxy،streamingnode - التبعيات:
etcd(البيانات الوصفية)،minio(تخزين الكائنات)،woodpecker(قائمة انتظار الرسائل)
باستخدام streaming.woodpecker.embedded=false ، يعمل Woodpecker كـ StatefulSet مخصص (my-release-milvus-woodpecker ، 4 نسخ متماثلة افتراضيًا — أغلبية 3 عقد بالإضافة إلى عقدة احتياطية واحدة للتحمل الأعطال؛ لا تضبط woodpecker.replicaCount على أقل من 3) مدعومة بخدمة بدون واجهة مستخدم، باستخدام MinIO كخلفية تخزين — لذا فإن المجموعة تحتوي على مجموعة بودات woodpecker منفصلة، متميزة عن عقدة البث.
يمكنك أيضًا الوصول إلى واجهة المستخدم على الويب لـ Milvus على http://127.0.0.1:9091/webui/ بمجرد إعداد إعادة توجيه المنفذ (انظر الخطوة التالية). لمزيد من التفاصيل، راجع واجهة المستخدم على الويب لـ Milvus.
3. الاتصال بـ Milvus
للاتصال بمجموعة Milvus الخاصة بك من خارج Kubernetes، تحتاج إلى إعداد إعادة توجيه المنافذ.
إعداد إعادة توجيه المنفذ:
kubectl port-forward service/my-release-milvus 27017:19530
يقوم هذا الأمر بتوجيه المنفذ المحلي 27017 إلى منفذ Milvus 19530. يجب أن ترى:
Forwarding from 127.0.0.1:27017 -> 19530
تفاصيل الاتصال:
- الاتصال المحلي:
localhost:27017 - المنفذ الافتراضي لـ Milvus:
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 باستخدام أي SDK لـ Milvus على localhost:27017.
(اختياري) تحديث تكوينات Milvus
يمكنك تحديث تكوينات مجموعة Milvus الخاصة بك عن طريق تحرير ملف 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
يأتي Milvus مزودًا بأداة واجهة مستخدم رسومية مدمجة تسمى Milvus WebUI يمكنك الوصول إليها من خلال متصفحك. تعمل واجهة Milvus WebUI على تحسين قابلية مراقبة النظام بفضل واجهة بسيطة وسهلة الاستخدام. يمكنك استخدام واجهة Milvus WebUI لمراقبة الإحصائيات والمقاييس الخاصة بمكونات Milvus وتبعياته، والتحقق من تفاصيل قاعدة البيانات والمجموعات، وعرض قائمة بالتكوينات التفصيلية لـ Milvus. للحصول على تفاصيل حول واجهة المستخدم الرسومية لـ Milvus، راجع Milvus WebUI
لتمكين الوصول إلى واجهة المستخدم الرسومية لـ Milvus WebUI، تحتاج إلى إعادة توجيه منفذ pod الوكيل إلى منفذ محلي.
$ kubectl port-forward --address 0.0.0.0 service/my-release-milvus 27018:9091
Forwarding from 0.0.0.0:27018 -> 9091
الآن، يمكنك الوصول إلى واجهة المستخدم على الويب لـ Milvus على العنوان http://localhost:27018.
التثبيت دون اتصال بالإنترنت
إذا كنت في بيئة مقيدة الشبكة، فاتبع الإجراء الوارد في هذا القسم لبدء تشغيل مجموعة Milvus.
1. الحصول على ملف بيان Milvus
قم بتشغيل الأمر التالي للحصول على ملف بيان 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 --set standalone.messageQueue=woodpecker --set woodpecker.enabled=true --set streaming.enabled=true 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. نشر Milvus
$ kubectl apply -f milvus_manifest.yaml
حتى الآن، يمكنك اتباع الخطوتين 2 و3 من التثبيت عبر الإنترنت للتحقق من حالة المجموعة وتوجيه منفذ محلي إلى Milvus.
ترقية مجموعة Milvus قيد التشغيل
قم بتشغيل الأمر التالي لترقية مجموعة Milvus قيد التشغيل إلى أحدث إصدار:
$ helm repo update
$ helm upgrade my-release zilliztech/milvus --reset-then-reuse-values
إلغاء تثبيت Milvus
قم بتشغيل الأمر التالي لإلغاء تثبيت Milvus.
$ helm uninstall my-release
التبعيات الاختيارية
يستخدم هذا النشر Woodpecker كقائمة انتظار الرسائل، وetcd للبيانات الوصفية، وMinIO لتخزين الكائنات. لاستخدام قائمة انتظار رسائل مختلفة أو توصيل تخزين كائنات / بيانات وصفية خارجية، انظر:
- قائمة انتظار الرسائل: Woodpecker (افتراضي) · Pulsar · Kafka · RocksMQ
- تخزين الكائنات: MinIO (افتراضي) · AWS S3 · Azure Blob · GCP Cloud Storage · Aliyun OSS · Tencent COS · Huawei OBS · متوافق مع S3
- البيانات الوصفية: etcd
يتم تعطيل التخزين V3 افتراضيًا. قم بتمكينه قبل استخدام الميزات التي تعتمد عليه. للاطلاع على المتطلبات واعتبارات التوافق، راجع التخزين V3.
الخطوة التالية
بعد تثبيت Milvus في Docker، يمكنك:
تحقق من Hello Milvus لمعرفة ما يمكن لـ Milvus القيام به.
تعلم العمليات الأساسية لـ Milvus:
نشر مجموعة Milvus الخاصة بك على السحابة:
استكشف Milvus WebUI، وهي واجهة ويب سهلة الاستخدام لمراقبة وإدارة Milvus.
اكتشف Milvus Backup، وهي أداة مفتوحة المصدر لنسخ بيانات Milvus احتياطيًا.
اكتشف Birdwatcher، وهي أداة مفتوحة المصدر لتصحيح أخطاء Milvus وتحديثات التكوين الديناميكية.
اكتشف Attu، وهي أداة واجهة مستخدم رسومية مفتوحة المصدر لإدارة Milvus بطريقة بديهية.