تشغيل Milvus في Kubernetes باستخدام مشغل Milvus
توضح هذه الصفحة كيفية بدء تشغيل مثيل Milvus في Kubernetes باستخدام مشغل Milvus.
نظرة عامة
مشغّل Milvus هو حل يساعدك على نشر وإدارة مكدس خدمة Milvus كامل لمجموعات Kubernetes (K8s) المستهدفة. تتضمن الحزمة جميع مكونات Milvus والتبعيات ذات الصلة مثل etcd وPulsar وMinIO.
المتطلبات الأساسية
تثبيت 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
يقوم مشغل Milvus بتعريف الموارد المخصصة لمجموعة Milvus على رأس موارد Kubernetes المخصصة. عندما يتم تعريف الموارد المخصصة، يمكنك استخدام واجهات برمجة تطبيقات K8s بطريقة توضيحية وإدارة مكدس نشر Milvus لضمان قابليته للتوسع والتوافر العالي.
يمكنك تثبيت مشغل Milvus بأي من الطرق التالية:
التثبيت باستخدام Helm
قم بتشغيل الأمر التالي لتثبيت مشغل Milvus مع Helm.
$ helm install milvus-operator \
-n milvus-operator --create-namespace \
--wait --wait-for-jobs \
https://github.com/zilliztech/milvus-operator/releases/download/v1.2.0/milvus-operator-1.2.0.tgz
سترى مخرجات مشابهة لما يلي بعد انتهاء عملية التثبيت.
NAME: milvus-operator
LAST DEPLOYED: Thu Jul 7 13:18:40 2022
NAMESPACE: milvus-operator
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Milvus Operator Is Starting, use `kubectl get -n milvus-operator deploy/milvus-operator` to check if its successfully installed
If Operator not started successfully, check the checker's log with `kubectl -n milvus-operator logs job/milvus-operator-checker`
Full Installation doc can be found in https://github.com/zilliztech/milvus-operator/blob/main/docs/installation/installation.md
Quick start with `kubectl apply -f https://raw.githubusercontent.com/zilliztech/milvus-operator/main/config/samples/milvus_minimum.yaml`
More samples can be found in https://github.com/zilliztech/milvus-operator/tree/main/config/samples
CRD Documentation can be found in https://github.com/zilliztech/milvus-operator/tree/main/docs/CRD
التثبيت باستخدام kubectl
قم بتشغيل الأمر التالي لتثبيت مشغل Milvus مع kubectl
.
$ kubectl apply -f https://raw.githubusercontent.com/zilliztech/milvus-operator/main/deploy/manifests/deployment.yaml
سترى الإخراج المشابه لما يلي بعد انتهاء عملية التثبيت.
namespace/milvus-operator created
customresourcedefinition.apiextensions.k8s.io/milvusclusters.milvus.io created
serviceaccount/milvus-operator-controller-manager created
role.rbac.authorization.k8s.io/milvus-operator-leader-election-role created
clusterrole.rbac.authorization.k8s.io/milvus-operator-manager-role created
clusterrole.rbac.authorization.k8s.io/milvus-operator-metrics-reader created
clusterrole.rbac.authorization.k8s.io/milvus-operator-proxy-role created
rolebinding.rbac.authorization.k8s.io/milvus-operator-leader-election-rolebinding created
clusterrolebinding.rbac.authorization.k8s.io/milvus-operator-manager-rolebinding created
clusterrolebinding.rbac.authorization.k8s.io/milvus-operator-proxy-rolebinding created
configmap/milvus-operator-manager-config created
service/milvus-operator-controller-manager-metrics-service created
service/milvus-operator-webhook-service created
deployment.apps/milvus-operator-controller-manager created
يمكنك التحقق من تشغيل جراب مشغل ميلفوس على النحو التالي:
$ kubectl get pods -n milvus-operator
NAME READY STATUS RESTARTS AGE
milvus-operator-5fd77b87dc-msrk4 1/1 Running 0 46s
نشر ميلفوس
1. نشر مجموعة ميلفوس
بمجرد تشغيل جراب مشغل Milvus، يمكنك نشر مجموعة Milvus على النحو التالي.
$ kubectl apply -f https://raw.githubusercontent.com/zilliztech/milvus-operator/main/config/samples/milvus_cluster_default.yaml
يقوم الأمر أعلاه بنشر مجموعة Milvus مع مكوناتها وتوابعها في كبسولات منفصلة باستخدام التكوينات الافتراضية. لتخصيص هذه الإعدادات، نوصيك باستخدام أداة تحجيم Milvus لضبط التكوينات بناءً على حجم بياناتك الفعلي ثم تنزيل ملف YAML المقابل. لمعرفة المزيد حول معلمات التكوين، راجع قائمة مراجعة تكوينات نظام Milvus.
- يجب أن يحتوي اسم الإصدار على أحرف وأرقام وشرطات فقط. النقاط غير مسموح بها في اسم الإصدار.
- يمكنك أيضًا نشر مثيل Milvus في الوضع المستقل، حيث يتم تضمين جميع مكوناته داخل حجرة واحدة. للقيام بذلك، قم بتغيير عنوان URL لملف التكوين في الأمر أعلاه إلى
https://raw.githubusercontent.com/zilliztech/milvus-operator/main/config/samples/milvus_default.yaml
2. تحقق من حالة مجموعة ميلفوس
قم بتشغيل الأمر التالي للتحقق من حالة مجموعة ميلفوس العنقودية
$ kubectl get milvus my-release -o yaml
بمجرد أن تصبح مجموعة Milvus جاهزة، يجب أن تكون مخرجات الأمر أعلاه مشابهة لما يلي. إذا بقي الحقل status.status
Unhealthy
، فإن مجموعة ميلفوس الخاصة بك لا تزال قيد الإنشاء.
apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
...
status:
conditions:
- lastTransitionTime: "2021-11-02T05:59:41Z"
reason: StorageReady
status: "True"
type: StorageReady
- lastTransitionTime: "2021-11-02T06:06:23Z"
message: Pulsar is ready
reason: PulsarReady
status: "True"
type: PulsarReady
- lastTransitionTime: "2021-11-02T05:59:41Z"
message: Etcd endpoints is healthy
reason: EtcdReady
status: "True"
type: EtcdReady
- lastTransitionTime: "2021-11-02T06:12:36Z"
message: All Milvus components are healthy
reason: MilvusClusterHealthy
status: "True"
type: MilvusReady
endpoint: my-release-milvus.default:19530
status: Healthy
ينشئ مشغل Milvus تبعيات Milvus، مثل etcd وPulsar وMinIO، ثم مكونات Milvus، مثل الوكيل والمنسقين والعقد.
بمجرد أن تصبح مجموعة Milvus جاهزة، يجب أن تكون حالة جميع الكبسولات في مجموعة Milvus مشابهة لما يلي.
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
my-release-etcd-0 1/1 Running 0 14m
my-release-etcd-1 1/1 Running 0 14m
my-release-etcd-2 1/1 Running 0 14m
my-release-milvus-datanode-5c686bd65-wxtmf 1/1 Running 0 6m
my-release-milvus-indexnode-5b9787b54-xclbx 1/1 Running 0 6m
my-release-milvus-proxy-84f67cdb7f-pg6wf 1/1 Running 0 6m
my-release-milvus-querynode-5bcb59f6-nhqqw 1/1 Running 0 6m
my-release-milvus-mixcoord-fdcccfc84-9964g 1/1 Running 0 6m
my-release-minio-0 1/1 Running 0 14m
my-release-minio-1 1/1 Running 0 14m
my-release-minio-2 1/1 Running 0 14m
my-release-minio-3 1/1 Running 0 14m
my-release-pulsar-bookie-0 1/1 Running 0 14m
my-release-pulsar-bookie-1 1/1 Running 0 14m
my-release-pulsar-bookie-init-h6tfz 0/1 Completed 0 14m
my-release-pulsar-broker-0 1/1 Running 0 14m
my-release-pulsar-broker-1 1/1 Running 0 14m
my-release-pulsar-proxy-0 1/1 Running 0 14m
my-release-pulsar-proxy-1 1/1 Running 0 14m
my-release-pulsar-pulsar-init-d2t56 0/1 Completed 0 14m
my-release-pulsar-recovery-0 1/1 Running 0 14m
my-release-pulsar-toolset-0 1/1 Running 0 14m
my-release-pulsar-zookeeper-0 1/1 Running 0 14m
my-release-pulsar-zookeeper-1 1/1 Running 0 13m
my-release-pulsar-zookeeper-2 1/1 Running 0 13m
3. إعادة توجيه منفذ محلي إلى ميلفوس
قم بتشغيل الأمر التالي للحصول على المنفذ الذي تعمل عليه مجموعة Milvus العنقودية الخاصة بك.
$ kubectl get pod my-release-milvus-proxy-84f67cdb7f-pg6wf --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 على الجهاز المضيف.
$ 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
.
إلغاء تثبيت ميلفوس
قم بتشغيل الأمر التالي لإلغاء تثبيت مجموعة Milvus.
$ kubectl delete milvus my-release
- عندما تقوم بحذف مجموعة Milvus باستخدام التكوين الافتراضي، لا يتم حذف التبعيات مثل etcd وPulsar وMinIO. لذلك، في المرة القادمة عندما تقوم بتثبيت نفس مثيل مجموعة Milvus، سيتم استخدام هذه التبعيات مرة أخرى.
- لحذف التبعيات والسحب الافتراضية الخاصة (PVCs) مع مجموعة Milvus العنقودية، راجع ملف التكوين.
إلغاء تثبيت مشغل ميلفوس
هناك أيضًا طريقتان لإلغاء تثبيت مشغل Milvus.
إلغاء التثبيت باستخدام Helm
$ helm -n milvus-operator uninstall milvus-operator
إلغاء التثبيت باستخدام kubectl
$ kubectl delete -f https://raw.githubusercontent.com/zilliztech/milvus-operator/v1.2.0/deploy/manifests/deployment.yaml
ما التالي
بعد تثبيت Milvus في Docker، يمكنك:
التحقق من Hello Milvus لمعرفة ما يمكن أن يفعله ميلفوس.
تعلم العمليات الأساسية لميلفوس:
نشر مجموعة ميلفوس الخاصة بك على السحابة:
استكشف واجهة Milvus WebUI، وهي واجهة ويب سهلة الاستخدام لمراقبة وإدارة Milvus.
استكشف Milvus Backup، وهي أداة مفتوحة المصدر للنسخ الاحتياطية لبيانات Milvus.
استكشف Birdwatcher، وهي أداة مفتوحة المصدر لتصحيح أخطاء ميلفوس وتحديثات التكوين الديناميكية.
استكشف Attu، وهي أداة مفتوحة المصدر لواجهة المستخدم الرسومية لإدارة Milvus بسهولة.