كيفية تعديل تكوينات ميلفوس المتقدمة
يوفن زونغ، مهندسة تطوير اختبارات زيليز، تخرجت من جامعة هواتشونغ للعلوم والتكنولوجيا وحصلت على درجة الماجستير في تكنولوجيا الكمبيوتر. وهي تعمل حاليًا في ضمان الجودة لقاعدة بيانات Milvus vector، بما في ذلك على سبيل المثال لا الحصر اختبار تكامل الواجهة، واختبار SDK، واختبار المعيار، وما إلى ذلك. تُعدّ يوفن من المتحمسين لحل المشكلات في اختبار وتطوير Milvus، وهي من أشد المعجبين بنظرية هندسة الفوضى وممارسة حفر الأخطاء.
الخلفية
أثناء استخدام قاعدة بيانات Milvus vector، ستحتاج إلى تعديل التكوين الافتراضي لتلبية متطلبات السيناريوهات المختلفة. في السابق، شارك أحد مستخدمي Milvus سابقًا حول كيفية تعديل تكوين Milvus المنشور باستخدام Docker Compose. وفي هذه المقالة، أود أن أشارككم كيفية تعديل تكوين Milvus المنشور على Kubernetes.
تعديل تكوين Milvus على Kubernetes
يمكنك اختيار خطط تعديل مختلفة وفقًا لمعلمات التكوين التي ترغب في تعديلها. يتم تخزين جميع ملفات تكوين Milvus ضمن milvus/configs. أثناء تثبيت Milvus على Kubernetes، ستتم إضافة مستودع مخطط Milvus Helm Chart محليًا. من خلال تشغيل helm show values milvus/milvus
، يمكنك التحقق من المعلمات التي يمكن تعديلها مباشرة باستخدام المخطط. بالنسبة للمعلمات القابلة للتعديل باستخدام Chart، يمكنك تمرير المعلمة باستخدام --values
أو --set
. للمزيد من المعلومات، راجع مخطط ميلفوس هيلم و هيلم.
إذا كانت المعلمات التي تتوقع تعديلها غير موجودة في القائمة، يمكنك اتباع التعليمات أدناه.
في الخطوات التالية، سيتم تعديل المعلمة rootcoord.dmlChannelNum
في /milvus/configs/advanced/root_coord.yaml لأغراض العرض التوضيحي. يتم تنفيذ إدارة ملف التكوين في Milvus على Kubernetes من خلال كائن مورد ConfigMap. لتغيير المعلمة، يجب عليك أولاً تحديث كائن ConfigMap لإصدار المخطط المقابل، ثم تعديل ملفات موارد النشر للقرون المقابلة.
احذر من أن هذه الطريقة تنطبق فقط على تعديل المعلمات على تطبيق Milvus الذي تم نشره. لتعديل المعلمات في /milvus/configs/advanced/*.yaml قبل النشر، ستحتاج إلى إعادة تطوير مخطط Milvus Helm.
تعديل YAML ConfigMap YAML
كما هو موضح أدناه، يتوافق إصدار Milvus الذي يعمل على Kubernetes مع كائن ConfigMap بنفس اسم الإصدار. يتضمن قسم data
من كائن ConfigMap التكوينات الموجودة في milvus.yaml فقط. لتغيير rootcoord.dmlChannelNum
في root_coord.yaml، يجب عليك إضافة المعلمات في root_coord.yaml إلى القسم data
في كائن ConfigMap YAML وتغيير المعلمة المحددة.
kind: ConfigMap
apiVersion: v1
metadata:
name: milvus-chaos
...
data:
milvus.yaml: >
......
root_coord.yaml: |
rootcoord:
dmlChannelNum: 128
maxPartitionNum: 4096
minSegmentSizeToEnableIndex: 1024
timeout: 3600 # time out, 5 seconds
timeTickInterval: 200 # ms
تعديل YAML النشر
يمكن الإشارة إلى البيانات المخزنة في ConfigMap في وحدة تخزين من نوع configMap ثم استهلاكها من قبل التطبيقات المعبأة في حاويات والتي تعمل في جراب. لتوجيه البودات إلى ملفات التكوين الجديدة، يجب عليك تعديل قوالب البودات التي تحتاج إلى تحميل التكوينات في root_coord.yaml. على وجه التحديد، تحتاج إلى إضافة إعلان تحميل ضمن قسم spec.template.spec.containers.volumeMounts
في نشر YAML.
بأخذ YAML YAML للنشر في جراب rootcoord كمثال، يتم تحديد وحدة تخزين من نوع configMap
باسم milvus-config في القسم .spec.volumes
. وفي القسم spec.template.spec.containers.volumeMounts
، يتم الإعلان عن وحدة التخزين لتحميل milvus.yaml من إصدار Milvus الخاص بك على /milvus/configs/milvus.yaml. وبالمثل، تحتاج فقط إلى إضافة إعلان تحميل خاص لحاوية rootcoord لتحميل root_coord.yaml على /milvus/configs/advanced/root_coord.yaml، وبالتالي يمكن للحاوية الوصول إلى ملف التكوين الجديد.
spec:
replicas: 1
selector:
......
template:
metadata:
...
spec:
volumes:
- name: milvus-config
configMap:
name: milvus-chaos
defaultMode: 420
containers:
- name: rootcoord
image: 'milvusdb/milvus-dev:master-20210906-86afde4'
args:
...
ports:
...
resources: {}
volumeMounts:
- name: milvus-config
readOnly: true
mountPath: /milvus/configs/milvus.yaml
subPath: milvus.yaml
- name: milvus-config
readOnly: true
mountPath: /milvus/configs/advanced/`root_coord.yaml
subPath: root_coord.yaml
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
securityContext: {}
schedulerName: default-scheduler
التحقق من النتيجة
يتحقق الكوبيت مما إذا كانت خريطة التكوين المثبتة حديثة في كل مزامنة دورية. عندما يتم تحديث خريطة التكوين المستهلكة في المجلد، يتم تحديث المفاتيح المتوقعة تلقائيًا أيضًا. عند تشغيل الكبسولة الجديدة مرة أخرى، يمكنك التحقق مما إذا كان التعديل ناجحًا في الكبسولة. يتم مشاركة الأوامر للتحقق من المعلمة rootcoord.dmlChannelNum
أدناه.
$ kctl exec -ti milvus-chaos-rootcoord-6f56794f5b-xp2zs -- sh
# cd configs/advanced
# pwd
/milvus/configs/advanced
# ls
channel.yaml common.yaml data_coord.yaml data_node.yaml etcd.yaml proxy.yaml query_node.yaml root_coord.yaml
# cat root_coord.yaml
rootcoord:
dmlChannelNum: 128
maxPartitionNum: 4096
minSegmentSizeToEnableIndex: 1024
timeout: 3600 # time out, 5 seconds
timeTickInterval: 200 # ms
# exit
أعلاه هي طريقة تعديل التكوينات المتقدمة في Milvus المنشورة على Kubernetes. سيدمج الإصدار المستقبلي من Milvus جميع التكوينات في ملف واحد، وسيدعم تحديث التكوين عبر مخطط الدفة. ولكن قبل ذلك، آمل أن تساعدك هذه المقالة كحل مؤقت.
تفاعل مع مجتمعنا مفتوح المصدر:
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word