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

milvus-logo
LFAI
الصفحة الرئيسية
  • دليل الإدارة
  • Home
  • Docs
  • دليل الإدارة

  • إدارة التبعيات

  • استخدم بولسّا مع ميلفوس

  • الترقية إلى Pulsar v3

ترقية بولسار

توضح هذه المقالة عملية ترقية مكون Pulsar من V2 إلى V3 إذا كان لديك بالفعل نشر Milvus يعمل مع Pulsar V2.

منذ الإصدار 2.5 من Milvus، سيستخدم Milvus-helm و milvus-oper Pulsar V3 افتراضيًا لإصلاح بعض الأخطاء والثغرات الأمنية. بينما يتوافق Milvus 2.5 مع Pulsar 2.x، فإن الترقية إلى Pulsar V3 اختيارية. لتحسين الثبات والأداء، نوصي بالترقية إلى Pulsar V3.

إذا كنت تفضل استخدام Pulsar V2 مع Milvus v2.5.x، اقرأ استخدام Pulsar V2 مع Milvus v2.5.x.

  1. تتطلب عملية الترقية انقطاعًا قصيرًا للخدمة (عادةً ما يستغرق الأمر من بضع دقائق إلى أكثر من عشر دقائق، اعتمادًا على كمية البيانات).

  2. قبل العملية، تحتاج إلى إيقاف جميع العملاء قيد التشغيل من كتابة البيانات إلى ميلفوس. وإلا فقد تُفقد البيانات المكتوبة.

  3. تفترض هذه المقالة أن Milvus مثبت في مساحة الاسم default واسمه my-release. يرجى تغيير المعلمات إلى مساحة الاسم واسم الإصدار الخاص بك أثناء تنفيذ الأوامر المنسوخة من هذه الصفحة.

  4. تأكد من أن بيئة العمل الخاصة بك لديها أذونات ضمن مساحة الاسم المذكورة أعلاه في مجموعة Kubernetes وتم تثبيت الأوامر التالية.

    أ. kubectl >= 1.20

    ب. helm >= 3.14.0

    c. cat ، grep ، awk لعمليات معالجة السلسلة لعمليات معالجة السلسلة

    د. curl أو أتو v2.4+ للتفاعل مع واجهة برمجة تطبيقات إدارة ميلفوس

خارطة الطريق

تتضمن عملية الترقية الخطوات التالية:

  1. استمرار البيانات غير المستهلكة في بولسار.

  2. إيقاف ميلفوس وحذف بولسار V2.

  3. بدء تشغيل بولسار V3 وميلفوس.

الإجراءات

يقدم هذا القسم الإجراءات التفصيلية لترقية بولسار من V2 إلى V3 في ميلفوس.

استمرار البيانات غير المستهلكة في بولسار

في هذه الخطوة، تحتاج في هذه الخطوة إلى التأكد من استمرار البيانات الموجودة في بولسار إلى خدمة تخزين الكائنات. هناك طريقتان متاحتان، ويمكنك اختيار الطريقة التي تناسب احتياجاتك.

النهج 1: استخدام أتو

إذا لم يكن لديك سوى عدد قليل من المجموعات في عملية نشر Milvus العاملة الخاصة بك مع عدم وجود العديد من الشرائح، يمكنك استخدام Attu لاستمرار البيانات إلى خدمة تخزين الكائنات.

  1. حدد كل مجموعة في جميع قواعد البيانات الخاصة بك، وادخل إلى لوحة Segments ، وانقر فوق الزر Flush

    Segment panel of a collection لوحة شريحة من مجموعة

  2. ثم عند النافذة المنبثقة، انقر فوق Flush مرة أخرى.

    Data flush prompt in Attu مطالبة تدفق البيانات في أتو

  3. ثم انتظر حتى تصبح جميع حالات الشرائح الثابتة للمجموعات Flushed.

    View data flush status in Attu عرض حالة تدفق البيانات في أتو

النهج 2: استخدام واجهة برمجة تطبيقات الإدارة

  1. وكيل المنفذ 9091 من وكيل Milvus إلى المضيف المحلي للعمليات اللاحقة.

    kubectl -n default port-forward deploy/my-release-milvus-proxy 9091:9091 &
    

    الإخراج.

    [1] 8116
    Forwarding from 127.0.0.1:9091 -> 9091
    
    
  2. حفظ Pid للتنظيف اللاحق.

    pid=8116
    
    
  3. قم بتشغيل إجراء استمرار جميع البيانات المدرجة من بولسار إلى مخزن أوجبيكت.

    curl 127.0.0.1:9091/api/v1/collections \
    |curl 127.0.0.1:9091/api/v1/persist -d @/dev/stdin\
    |jq '.flush_coll_segIDs'| jq '[.[] | .data[]]' | jq '{segmentIDs: (.)}' \
    > flushing_segments.json
    cat flushing_segments.json
    
    

    الإخراج.

    {
      "segmentIDs": [
        454097953998181000,
        454097953999383600,
        454097953998180800
      ]
    }
    
    
  4. تحقق من مسح جميع المقاطع.

    cat flushing_segments.json|  curl -X GET 127.0.0.1:9091/api/v1/persist/state -d @/dev/stdin 
    
    

    عند الانتهاء، يجب أن ترى المخرجات التالية

    {"status":{},"flushed":true}
    
    
  5. إيقاف العملية الخلفية kubectl port-forward

    kill $pid
    
    

    الإخراج.

    [1]  + 8116 terminated  kubectl -n default port-forward deploy/my-release-milvus-proxy 9091:9091                      
    
    

أوقف Milvus واحذف Pulsar V2

في هذه الخطوة، تحتاج إلى إيقاف جراب Milvus وحذف نشر Pulsar V2. هناك قسمان منفصلان متاحان:

  • لمستخدمي Milvus Helm

    إذا كنت قد قمت بتثبيت Milvus باستخدام مخطط Milvus Helm، انتقل إلى حذف Pulsar v2 باستخدام Helm.

  • لمستخدمي مشغل Milvus Helm

    إذا كنت قد قمت بتثبيت Milvus باستخدام مشغل Milvus، انتقل إلى حذف Pulsar v2 باستخدام مشغل Milvus.

حذف Pulsar V2 باستخدام Helm

إذا كنت قد قمت بتثبيت Milvus باستخدام مخطط Milvus Helm، اتبع الخطوات التالية لإيقاف جراب Milvus وحذف نشر Pulsar V2.

  1. احفظ قيم إصدار Milvus الحالية في values.yaml لاستعادتها لاحقًا.

    helm -n default get values my-release -o yaml > values.yaml
    cat values.yaml
    
    
  2. استخدم الأمر لإيقاف ميلفوس وجميع التبعيات. لا تقلق بشأن وحدات تخزين البيانات، فسيتم الاحتفاظ بها بشكل افتراضي.

    helm -n default uninstall my-release
    
    

    الإخراج

    These resources were kept due to the resource policy:
    [PersistentVolumeClaim] my-release-minio
    
    release "my-release" uninstalled
    
    
  3. يجب مسح قائمة PVCs و PVs النابضة (مطالبات وحدة التخزين الثابتة ووحدات التخزين الثابتة)

    kubectl -n default get pvc -lapp=pulsar,release=my-release |grep -v NAME |awk '{print $1}' > pulsar-pvcs.txt
    kubectl -n default get pvc -lapp=pulsar,release=my-release -o custom-columns=VOL:.spec.volumeName|grep -v VOL > pulsar-pvs.txt
    echo "Volume Claims:"
    cat pulsar-pvcs.txt
    echo "Volumes:"
    cat pulsar-pvs.txt
    
    

    الإخراج

    Volume Claims:
    my-release-pulsar-bookie-journal-my-release-pulsar-bookie-0
    my-release-pulsar-bookie-journal-my-release-pulsar-bookie-1
    my-release-pulsar-bookie-ledgers-my-release-pulsar-bookie-0
    my-release-pulsar-bookie-ledgers-my-release-pulsar-bookie-1
    my-release-pulsar-zookeeper-data-my-release-pulsar-zookeeper-0
    Volumes:
    pvc-f590a4de-df31-4ca8-a424-007eac3c619a
    pvc-17b0e215-3e14-4d14-901e-1a1dda9ff5a3
    pvc-72f83c25-6ea1-45ee-9559-0b783f2c530b
    pvc-60dcb6e4-760d-46c7-af1a-d1fc153b0caf
    pvc-2da33f64-c053-42b9-bb72-c5d50779aa0a
    
    
  4. تحقق مما إذا كانت قائمة PVCs pulsar-pvcs.txt كلها لـ Pulsar. بمجرد التأكد من عدم وجود خطأ، احذف PVCs.

    cat pulsar-pvcs.txt |xargs -I {} kubectl -n default delete pvc {} --wait=false
    
    

    الإخراج.

    persistentvolumeclaim "my-release-pulsar-bookie-journal-my-release-pulsar-bookie-0" deleted
    persistentvolumeclaim "my-release-pulsar-bookie-journal-my-release-pulsar-bookie-1" deleted
    persistentvolumeclaim "my-release-pulsar-bookie-ledgers-my-release-pulsar-bookie-0" deleted
    persistentvolumeclaim "my-release-pulsar-bookie-ledgers-my-release-pulsar-bookie-1" deleted
    persistentvolumeclaim "my-release-pulsar-zookeeper-data-my-release-pulsar-zookeeper-0" deleted
    
    
  5. (اختياري) اعتمادًا على فئة التخزين التي توفر PVC، قد تحتاج أيضًا إلى إزالة PVC يدويًا.

    cat pulsar-pvs.txt |xargs -I {} kubectl -n default delete pvc {} --wait=false
    
    

    لا بأس إذا أخرجت أخطاء NotFound. تم حذفه بالفعل بواسطة وحدات تحكم kubernetes.

    Error from server (NotFound): persistentvolumeclaims "pvc-f590a4de-df31-4ca8-a424-007eac3c619a" not found
    Error from server (NotFound): persistentvolumeclaims "pvc-17b0e215-3e14-4d14-901e-1a1dda9ff5a3" not found
    Error from server (NotFound): persistentvolumeclaims "pvc-72f83c25-6ea1-45ee-9559-0b783f2c530b" not found
    Error from server (NotFound): persistentvolumeclaims "pvc-60dcb6e4-760d-46c7-af1a-d1fc153b0caf" not found
    Error from server (NotFound): persistentvolumeclaims "pvc-2da33f64-c053-42b9-bb72-c5d50779aa0a" not found
    
    

حذف Pulsar V2 باستخدام مشغل Milvus

إذا كنت قد قمت بتثبيت Milvus باستخدام مشغل Milvus، اتبع الخطوات أدناه لإيقاف جراب Milvus وحذف نشر Pulsar V2.

  1. احفظ بيان Milvus الحالي في milvus.yaml لاستخدامه لاحقًا.

    kubectl -n default get milvus my-release -o yaml > milvus.yaml
    head milvus.yaml -n 20
    
    

    الإخراج.

    apiVersion: milvus.io/v1beta1
    kind: Milvus
    metadata:
      annotations:
        milvus.io/dependency-values-merged: "true"
        milvus.io/pod-service-label-added: "true"
        milvus.io/querynode-current-group-id: "0"
      creationTimestamp: "2024-11-22T08:06:59Z"
      finalizers:
      - milvus.milvus.io/finalizer
      generation: 3
      labels:
        app: milvus
        milvus.io/operator-version: 1.1.2
    name: my-release
    namespace: default
    resourceVersion: "692217324"
    uid: 7a469ed0-9df1-494e-bd9a-340fac4305b5
    spec:
      components:
    
    
  2. إنشاء ملف patch.yaml بالمحتوى التالي.

    # a patch to retain etcd & storage data and delete pulsar data while delete milvus
    spec:
      dependencies:
        etcd:
          inCluster:
            deletionPolicy: Retain
            pvcDeletion: false
        storage:
          inCluster:
            deletionPolicy: Retain
            pvcDeletion: false
        pulsar:
          inCluster:
            deletionPolicy: Delete
            pvcDeletion: true
    
    
  3. استخدم kubectl patch للاحتفاظ ببيانات إلخd وبيانات التخزين وحذف بيانات بولسار أثناء حذف ميلفوس.

    kubectl -n default patch milvus my-release --patch-file patch.yaml --type=merge
    
    

    الإخراج.

    milvus.milvus.io/my-release patched
    
    
  4. إيقاف ميلفوس وحذف بولسار V2. لا تقلق بشأن وحدات تخزين بيانات إلخd وبيانات تخزين الكائنات، سيتم الاحتفاظ بها افتراضيًا.

    kubectl -n default delete milvus my-release --wait=false
    kubectl -n default get milvus my-release
    kubectl -n default delete milvus my-release --wait=true
    
    

    الإخراج: لاحظ أنه قد يستغرق الأمر بضع دقائق حتى يتوقف ميلفوس برشاقة وحتى يقوم المشغل بحذف وحدات تخزين بولسار.

    milvus.milvus.io "my-release" deleted
    NAME         MODE      STATUS     UPDATED   AGE
    my-release   cluster   Deleting   True      41m
    milvus.milvus.io "my-release" deleted
    
    

    انتظر حتى انتهاء الأمر.

  5. تحقق مرة أخرى لترى أن مورد ميلفوس قد اختفى

    kubectl -n default get milvus my-release
    
    

    يجب أن يكون الإخراج مثل.

    No resources found in default namespace.
    
    

بدء تشغيل بولسار V3 وميلفوس

في هذه الخطوة، تحتاج في هذه الخطوة إلى بدء تشغيل مجلدات Pulsar V3 و Milvus. هناك قسمان منفصلان متاحان:

  • لمستخدم Helm

    إذا كنت قد قمت بتثبيت Milvus باستخدام مخطط Milvus Helm، انتقل إلى لمستخدمي Milvus Helm.

  • لمستخدمي مشغل ميلفوس

    إذا كنت قد قمت بتثبيت Milvus باستخدام مشغل Milvus، انتقل إلى لمستخدم مشغل Milvus.

بدء تشغيل Pulsar V3 واستخدام Helm

  1. قم بتحرير values.yaml المحفوظ في الخطوة السابقة.

    # change the following:
    pulsar:
      enabled: false # set to false
      # you may also clean up rest fields under pulsar field
      # it's ok to keep them though.
    pulsarv3:
      enabled: true
      # append other values for pulsar v3 chart if needs
    
    
  2. قم بتحديث ريبو الدفة المحلي الخاص بك

    helm repo add zilliztech https://zilliztech.github.io/milvus-helm
    helm repo update zilliztech
    
    

    الإخراج

    "zilliztech" already exists with the same configuration, skipping
    Hang tight while we grab the latest from your chart repositories...
    ...Successfully got an update from the "zilliztech" chart repository
    Update Complete. ⎈Happy Helming!⎈
    
    
  3. قم بتثبيت إصدار ميلفوس الخاص بك بأحدث إصدار من مخطط الدفة باستخدام الإصدار المحرر values.yaml

    helm -n default install my-release zilliztech/milvus --reset-values -f values.yaml
    
    

    الإخراج

    NAME: my-release
    LAST DEPLOYED: Fri Nov 22 15:31:27 2024
    NAMESPACE: default
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
    
    
  4. تحقق من البودات لمعرفة ما إذا كانت جميعها مجدولة وتعمل مع kubectl -n default get pods.

    قد يستغرق الأمر بضع دقائق حتى تبدأ جميع الكبسولات في العمل

    الإخراج مثل.

    NAME                                          READY   STATUS      RESTARTS   AGE
    my-release-etcd-0                             1/1     Running     0          4m3s
    my-release-milvus-datanode-56487bc4bc-s6mbd   1/1     Running     0          4m5s
    my-release-milvus-indexnode-6476894d6-rv85d   1/1     Running     0          4m5s
    my-release-milvus-mixcoord-6d8875cb9c-67fcq   1/1     Running     0          4m4s
    my-release-milvus-proxy-7bc45d57c5-2qf8m      1/1     Running     0          4m4s
    my-release-milvus-querynode-77465747b-kt7f4   1/1     Running     0          4m4s
    my-release-minio-684ff4f5df-pnc97             1/1     Running     0          4m5s
    my-release-pulsarv3-bookie-0                  1/1     Running     0          4m3s
    my-release-pulsarv3-bookie-1                  1/1     Running     0          4m3s
    my-release-pulsarv3-bookie-2                  1/1     Running     0          4m3s
    my-release-pulsarv3-bookie-init-6z4tk         0/1     Completed   0          4m1s
    my-release-pulsarv3-broker-0                  1/1     Running     0          4m2s
    my-release-pulsarv3-broker-1                  1/1     Running     0          4m2s
    my-release-pulsarv3-proxy-0                   1/1     Running     0          4m2s
    my-release-pulsarv3-proxy-1                   1/1     Running     0          4m2s
    my-release-pulsarv3-pulsar-init-wvqpc         0/1     Completed   0          4m1s
    my-release-pulsarv3-recovery-0                1/1     Running     0          4m3s
    my-release-pulsarv3-zookeeper-0               1/1     Running     0          4m2s
    my-release-pulsarv3-zookeeper-1               1/1     Running     0          4m2s
    my-release-pulsarv3-zookeeper-2               1/1     Running     0          4m2s
    
    

بدء تشغيل Pulsar V3 واستخدام مشغل Milvus

  1. قم بتحرير milvus.yaml المحفوظة في الخطوة السابقة.

    # change the followings fields:
    apiVersion: milvus.io/v1beta1
    kind: Milvus
    metadata:
      annotations: null # this field should be removed or set to null
      resourceVersion: null # this field should be removed or set to null
      uid: null # this field should be removed or set to null
    spec:
      dependencies:
        pulsar:
          inCluster:
            chartVersion: pulsar-v3
            # delete all previous values for pulsar v2 and set it to null.
            # you may add additional values here for pulsar v3 if you're sure about it.
            values: null
    
    
  2. تأكد من ترقية مشغل Milvus إلى الإصدار v1.1.2 أو إصدار أحدث

    helm repo add milvus-operator https://zilliztech.github.io/milvus-operator
    helm repo update milvus-operator
    helm -n milvus-operator upgrade milvus-operator milvus-operator/milvus-operator
    
    

    استخدم الأمر لبدء تشغيل ميلفوس باستخدام Pulsar v3

    kubectl create -f milvus.yaml
    
    

    الإخراج

    milvus.milvus.io/my-release created
    
    
  3. تحقق من القرون لمعرفة ما إذا كانت جميعها مجدولة وتعمل مع kubectl -n default get pods.

    قد يستغرق الأمر بضع دقائق لبدء تشغيل جميع الكبسولات.

    الإخراج مثل.

    NAME                                            READY   STATUS      RESTARTS   AGE
    my-release-etcd-0                               1/1     Running     0          65m
    my-release-milvus-datanode-57fd59ff58-5mdrk     1/1     Running     0          93s
    my-release-milvus-indexnode-67867c6b9b-4wsbw    1/1     Running     0          93s
    my-release-milvus-mixcoord-797849f9bb-sf8z5     1/1     Running     0          93s
    my-release-milvus-proxy-5d5bf98445-c55m6        1/1     Running     0          93s
    my-release-milvus-querynode-0-64797f5c9-lw4rh   1/1     Running     0          92s
    my-release-minio-79476ccb49-zvt2h               1/1     Running     0          65m
    my-release-pulsar-bookie-0                      1/1     Running     0          5m10s
    my-release-pulsar-bookie-1                      1/1     Running     0          5m10s
    my-release-pulsar-bookie-2                      1/1     Running     0          5m10s
    my-release-pulsar-bookie-init-v8fdj             0/1     Completed   0          5m11s
    my-release-pulsar-broker-0                      1/1     Running     0          5m11s
    my-release-pulsar-broker-1                      1/1     Running     0          5m10s
    my-release-pulsar-proxy-0                       1/1     Running     0          5m11s
    my-release-pulsar-proxy-1                       1/1     Running     0          5m10s
    my-release-pulsar-pulsar-init-5lhx7             0/1     Completed   0          5m11s
    my-release-pulsar-recovery-0                    1/1     Running     0          5m11s
    my-release-pulsar-zookeeper-0                   1/1     Running     0          5m11s
    my-release-pulsar-zookeeper-1                   1/1     Running     0          5m10s
    my-release-pulsar-zookeeper-2                   1/1     Running     0          5m10s
    
    

جرب Managed Milvus مجاناً

Zilliz Cloud خالي من المتاعب، ويعمل بواسطة Milvus ويعمل بسرعة 10 أضعاف.

ابدأ
التعليقات

هل كانت هذه الصفحة مفيدة؟