🚀 جرب Zilliz Cloud، الـ Milvus المدارة بالكامل، مجاناً — تجربة أداء أسرع بـ 10 أضعاف! جرب الآن>>

milvus-logo
LFAI
  • Home
  • Blog
  • كيفية تعديل تكوينات ميلفوس المتقدمة

كيفية تعديل تكوينات ميلفوس المتقدمة

  • Engineering
November 08, 2021
Zilliz

يوفن زونغ، مهندسة تطوير اختبارات زيليز، تخرجت من جامعة هواتشونغ للعلوم والتكنولوجيا وحصلت على درجة الماجستير في تكنولوجيا الكمبيوتر. وهي تعمل حاليًا في ضمان الجودة لقاعدة بيانات 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 Started

Like the article? Spread the word

استمر في القراءة