تكوين تخزين الرسائل مع مشغل Milvus
يستخدم Milvus RocksMQ أو Pulsar أو Kafka لإدارة سجلات التغييرات الأخيرة، وإخراج سجلات الدفق، وتوفير اشتراكات السجل. يقدم هذا الموضوع كيفية تكوين تبعيات تخزين الرسائل عند تثبيت Milvus مع مشغل Milvus. لمزيد من التفاصيل، راجع تكوين تخزين الرسائل مع مشغل Milvus في مستودع مشغل Milvus.
يفترض هذا الموضوع أنك قمت بنشر مشغل Milvus.
تحتاج إلى تحديد ملف تكوين لاستخدام مشغل Milvus لبدء تشغيل مجموعة Milvus.
kubectl apply -f https://raw.githubusercontent.com/zilliztech/milvus-operator/main/config/samples/milvus_cluster_default.yaml
تحتاج فقط إلى تحرير قالب التعليمات البرمجية في milvus_cluster_default.yaml لتكوين تبعيات الطرف الثالث. تقدم الأقسام التالية كيفية تكوين تخزين الكائنات و etcd وPulsar على التوالي.
قبل أن تبدأ
يوضح الجدول أدناه ما إذا كانت RocksMQ و Pulsar و Kafka و Woodpecker مدعومة في وضع Milvus المستقل ووضع المجموعة.
| RocksMQ | بولسار | كافكا | نقار الخشب | |
|---|---|---|---|---|
| الوضع المستقل | ✔️ | ✔️ | ✔️ | ✔️ |
| الوضع العنقودي | ✖️ | ✔️ | ✔️ | ✔️ |
هناك أيضًا قيود أخرى لتحديد تخزين الرسائل:
- يتم دعم مخزن رسائل واحد فقط لمثيل Milvus واحد. ومع ذلك لا يزال لدينا توافق مع الإصدارات السابقة مع تعيين مخازن رسائل متعددة لمثيل واحد. الأولوية كما يلي:
- الوضع المستقل: RocksMQ (افتراضي)> بولسار > كافكا
- الوضع العنقودي: بولسار (افتراضي)> كافكا > كافكا
- لا يمكن تغيير تخزين الرسائل أثناء تشغيل نظام Milvus.
- يتم دعم إصدار Kafka 2.x أو 3.x فقط.
- قيود الترقية: قيود قائمة انتظار الرسائل: عند الترقية إلى الإصدار 2.6.15 من Milvus، يجب الحفاظ على اختيار قائمة انتظار الرسائل الحالية. التبديل بين أنظمة طابور الرسائل المختلفة أثناء الترقية غير مدعوم. سيتوفر دعم تغيير أنظمة قائمة انتظار الرسائل في الإصدارات المستقبلية.
تكوين RocksMQ
RocksMQ هو المخزن الافتراضي للرسائل في نظام Milvus المستقل.
وحالياً، يمكنك فقط تكوين RocksMQ كمخزن للرسائل في نظام Milvus المستقل مع مشغل Milvus.
مثال
يقوم المثال التالي بتكوين خدمة RocksMQ.
apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
name: milvus
spec:
mode: standalone
dependencies:
msgStreamType: rocksmq
rocksmq:
persistence:
enabled: true
pvcDeletion: true
persistentVolumeClaim:
spec:
accessModes: ["ReadWriteOnce"]
storageClassName: "local-path" # Specify your storage class
resources:
requests:
storage: 10Gi # Specify your desired storage size
components: {}
config: {}
خيارات التكوين الرئيسية:
msgStreamType:: rocksmq: تعيين RocksMQ صراحةً كقائمة انتظار الرسائلpersistence.enabled: تمكين التخزين الدائم لبيانات RocksMQ.persistence.pvcDeletion: عندما يكون صحيحًا، سيتم حذف PVC عندما يتم حذف مثيل MilvuspersistentVolumeClaim.spec: مواصفات Kubernetes PVC القياسيةaccessModes: عادةًReadWriteOnceلتخزين الكتلstorageClassName: فئة التخزين الخاصة بمجموعتكstorage: حجم وحدة التخزين الثابتة
تكوين Woodpecker
Woodpecker هو سجل كتابة أمامي سحابي أصلي (WAL) مصمم لتخزين الكائنات. وهو يوفر إنتاجية عالية، ونفقات تشغيلية منخفضة، وقابلية توسع سلسة. لمزيد من التفاصيل، راجع استخدام Woodpecker.
تكوين بولسار
يدير Pulsar سجلات التغييرات الأخيرة، ويخرج سجلات الدفق، ويوفر اشتراكات السجل. يتم دعم تكوين Pulsar لتخزين الرسائل في كل من Milvus المستقل و Milvus cluster. ومع ذلك، مع مشغل Milvus، يمكنك فقط تكوين Pulsar كمخزن للرسائل لمجموعة Milvus العنقودية. أضف الحقول المطلوبة ضمن spec.dependencies.pulsar لتكوين Pulsar.
pulsar يدعم external و inCluster.
بولسار خارجي
external يشير إلى استخدام خدمة بولسار خارجية. تتضمن الحقول المستخدمة لتكوين خدمة بولسار خارجية ما يلي:
external: تشير القيمةtrueإلى أن ميلفوس يستخدم خدمة بولسار خارجية.endpoints: نقاط نهاية بولسار.
مثال
يقوم المثال التالي بتكوين خدمة بولسار خارجية.
apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
name: my-release
labels:
app: milvus
spec:
dependencies: # Optional
pulsar: # Optional
# Whether (=true) to use an existed external pulsar as specified in the field endpoints or
# (=false) create a new pulsar inside the same kubernetes cluster for milvus.
external: true # Optional default=false
# The external pulsar endpoints if external=true
endpoints:
- 192.168.1.1:6650
components: {}
config: {}
بولسار داخلي
inCluster يشير إلى أنه عند بدء تشغيل مجموعة Milvus، تبدأ خدمة Pulsar تلقائياً في المجموعة.
مثال
يقوم المثال التالي بتكوين خدمة Pulsar داخلية.
apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
name: my-release
labels:
app: milvus
spec:
dependencies:
pulsar:
inCluster:
values:
components:
autorecovery: false
zookeeper:
replicaCount: 1
bookkeeper:
replicaCount: 1
resoureces:
limit:
cpu: '4'
memory: 8Gi
requests:
cpu: 200m
memory: 512Mi
broker:
replicaCount: 1
configData:
## Enable `autoSkipNonRecoverableData` since bookkeeper is running
## without persistence
autoSkipNonRecoverableData: "true"
managedLedgerDefaultEnsembleSize: "1"
managedLedgerDefaultWriteQuorum: "1"
managedLedgerDefaultAckQuorum: "1"
proxy:
replicaCount: 1
components: {}
config: {}
pulsar.inCluster.values كما هو موضح في المثال السابق.بافتراض أن ملف التكوين اسمه milvuscluster.yaml ، قم بتشغيل الأمر التالي لتطبيق التكوين.
kubectl apply -f milvuscluster.yaml
تكوين كافكا
Pulsar هو مخزن الرسائل الافتراضي في مجموعة Milvus. إذا كنت تريد استخدام كافكا، أضف الحقل الاختياري msgStreamType لتكوين كافكا.
kafka يدعم external و inCluster.
كافكا الخارجية
external يشير إلى استخدام خدمة كافكا خارجية.
تتضمن الحقول المستخدمة لتكوين خدمة كافكا خارجية ما يلي:
external: تشير القيمةtrueإلى أن ميلفوس يستخدم خدمة كافكا خارجية.brokerList: قائمة الوسطاء لإرسال الرسائل إليهم.
مثال
يقوم المثال التالي بتكوين خدمة كافكا خارجية.
apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
name: my-release
labels:
app: milvus
spec:
config:
kafka:
# securityProtocol supports: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL
securityProtocol: PLAINTEXT
# saslMechanisms supports: PLAIN, SCRAM-SHA-256, SCRAM-SHA-512
saslMechanisms: PLAIN
saslUsername: ""
saslPassword: ""
# Omit other fields ...
dependencies:
# Omit other fields ...
msgStreamType: "kafka"
kafka:
external: true
brokerList:
- "kafkaBrokerAddr1:9092"
- "kafkaBrokerAddr2:9092"
# ...
يتم دعم تكوينات SASL في المشغل الإصدار 0.8.5 أو إصدار أعلى.
كافكا الداخلية
inCluster يشير إلى أنه عند بدء تشغيل مجموعة Milvus، تبدأ خدمة كافكا تلقائيًا في المجموعة.
مثال
يقوم المثال التالي بتكوين خدمة كافكا داخلية.
apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
name: my-release
labels:
app: milvus
spec:
dependencies:
msgStreamType: "kafka"
kafka:
inCluster:
values: {} # values can be found in https://artifacthub.io/packages/helm/bitnami/kafka
components: {}
config: {}
ابحث عن عناصر التكوين الكاملة لتكوين خدمة كافكا الداخلية هنا. أضف عناصر التكوين حسب الحاجة ضمن kafka.inCluster.values.
على افتراض أن ملف التكوين اسمه milvuscluster.yaml ، قم بتشغيل الأمر التالي لتطبيق التكوين.
kubectl apply -f milvuscluster.yaml
ما التالي
تعرف على كيفية تكوين تبعيات Milvus الأخرى باستخدام مشغل Milvus: