تشغيل 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 milvus https://zilliztech.github.io/milvus-helm/
تمت أرشفة ريبو Milvus Helm Charts على https://github.com/milvus-io/milvus-helm
ويمكنك الحصول على المزيد من التحديثات من https://github.com/zilliztech/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. للإصدارات الأحدث، استخدم الريبو الجديد بدلاً من ذلك.
ثم قم بجلب مخططات Milvus من المستودع على النحو التالي:
$ helm repo update
يمكنك دائمًا تشغيل هذا الأمر لجلب أحدث مخططات Milvus Helm.
التثبيت عبر الإنترنت
1. نشر مجموعة Milvus
بمجرد تثبيت مخطط Helm، يمكنك بدء تشغيل Milvus على Kubernetes. سيرشدك هذا القسم إلى خطوات بدء تشغيل Milvus.
$ helm install my-release milvus/milvus
في الأمر أعلاه، my-release
هو اسم الإصدار، و milvus/milvus
هو مستودع المخطط المثبت محليًا. لاستخدام اسم مختلف، استبدل my-release
بالاسم الذي تراه مناسبًا.
ينشر الأمر أعلاه مجموعة Milvus مع مكوناتها وتوابعها باستخدام التكوينات الافتراضية. لتخصيص هذه الإعدادات، نوصيك باستخدام أداة Milvus Sizing Tool لضبط التكوينات بناءً على حجم بياناتك الفعلي ثم تنزيل ملف YAML المقابل. لمعرفة المزيد حول معلمات التكوين، راجع قائمة مراجعة تكوينات نظام Milvus.
- يجب أن يحتوي اسم الإصدار على أحرف وأرقام وشرطات فقط. النقاط غير مسموح بها في اسم الإصدار.
- يقوم سطر الأوامر الافتراضي بتثبيت الإصدار العنقودي من Milvus أثناء تثبيت Milvus مع Helm. هناك حاجة إلى مزيد من الإعدادات أثناء تثبيت Milvus مستقل.
- وفقًا لدليل ترحيل واجهة برمجة التطبيقات المهملة لـ Kubernetes، لم يعد يتم تقديم إصدار واجهة برمجة التطبيقات السياسة/إصدار v1beta1 من PodDisruptionBudget اعتبارًا من الإصدار v1.25. يُقترح عليك ترحيل البيانات وعملاء واجهة برمجة التطبيقات لاستخدام إصدار واجهة برمجة تطبيقات السياسة/الإصدار الأول بدلاً من ذلك.
كحل بديل للمستخدمين الذين لا يزالون يستخدمون إصدار السياسة/ الإصدار الأول من واجهة برمجة التطبيقات من PodDisruptionBudget على Kubernetes 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 لمزيد من المعلومات.
2. تحقق من حالة مجموعة ميلفوس
قم بتشغيل الأمر التالي للتحقق من حالة جميع الكبسولات في مجموعة ميلفوس الخاصة بك.
$ kubectl get pods
بمجرد تشغيل جميع الكبسولات، يجب أن تكون مخرجات الأمر أعلاه مشابهة لما يلي:
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-indexnode-5c5f7b5bd9-l8hjg 1/1 Running 0 3m24s
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-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
يمكنك أيضًا الوصول إلى Milvus WebUI على http://127.0.0.1:9091/webui/
لمعرفة المزيد عن مثيل Milvus الخاص بك. للحصول على التفاصيل، ارجع إلى Milvus WebUI.
3. إعادة توجيه منفذ محلي إلى ميلفوس
قم بتشغيل الأمر التالي للحصول على المنفذ الذي تخدم فيه مجموعة ميلفوس الخاصة بك.
$ kubectl get pod my-release-milvus-proxy-6bd7f5587-ds2xv --template
='{{(index (index .spec.containers 0).ports 0).containerPort}}{{"\n"}}'
19530
يظهر الإخراج أن مثيل Milvus يعمل على المنفذ الافتراضي 19530.
إذا كنت قد قمت بنشر Milvus في الوضع المستقل، قم بتغيير اسم الكبسولة من my-release-milvus-proxy-xxxxxxxxxx-xxxxx
إلى my-release-milvus-xxxxxxxxxx-xxxxx
.
ثم، قم بتشغيل الأمر التالي لإعادة توجيه منفذ محلي إلى المنفذ الذي يخدم فيه ميلفوس.
$ 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 على الجهاز المضيف.
الوصول إلى 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 milvus/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 pulsar.enabled=false milvus/milvus > milvus_manifest.yaml
بدلاً من ذلك لعرض قوالب البيان لمثيل Milvus في الوضع المستقل. - لتغيير تكوينات Milvus، قم بتحميل قالب
value.yaml
القالب، ضع الإعدادات التي تريدها فيه، واستخدمhelm template -f values.yaml my-release milvus/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
إلغاء تثبيت ميلفوس
قم بتشغيل الأمر التالي لإلغاء تثبيت Milvus.
$ helm uninstall my-release
ما التالي
بعد تثبيت Milvus في Docker، يمكنك:
التحقق من Hello Milvus لمعرفة ما يمكن لـ Milvus القيام به.
تعلم العمليات الأساسية لميلفوس:
نشر مجموعة ميلفوس العنقودية الخاصة بك على السحب:
استكشف واجهة Milvus WebUI، وهي واجهة ويب سهلة الاستخدام لمراقبة وإدارة Milvus.
استكشف Milvus Backup، وهي أداة مفتوحة المصدر للنسخ الاحتياطية لبيانات Milvus.
استكشف Birdwatcher، وهي أداة مفتوحة المصدر لتصحيح أخطاء ميلفوس وتحديثات التكوين الديناميكية.
استكشف Attu، وهي أداة مفتوحة المصدر لواجهة المستخدم الرسومية لإدارة Milvus بسهولة.