🚀 Coba Zilliz Cloud, Milvus yang sepenuhnya terkelola, secara gratis—rasakan performa 10x lebih cepat! Coba Sekarang>>

milvus-logo
LFAI
Beranda
  • Panduan Administrasi
    • Mengelola Ketergantungan
  • Home
  • Docs
  • Panduan Administrasi

  • Mengelola Ketergantungan

  • Gunakan Pulsa dengan Milvus

  • Tingkatkan ke Pulsar v3

Memutakhirkan Pulsar

Artikel ini menjelaskan prosedur bagi Anda untuk mengupgrade komponen Pulsar Anda dari V2 ke V3 jika Anda telah memiliki penerapan Milvus yang berfungsi dengan Pulsar V2.

Sejak Milvus v2.5, milvus-helm dan milvus-operator akan menggunakan Pulsar V3 secara default untuk memperbaiki beberapa bug dan kerentanan keamanan. Meskipun Milvus 2.5 kompatibel dengan Pulsar 2.x, upgrade ke Pulsar V3 bersifat opsional. Untuk meningkatkan stabilitas dan performa, kami merekomendasikan upgrade ke Pulsar V3.

Jika Anda lebih suka menggunakan Pulsar V2 dengan Milvus v2.5.x, baca Menggunakan Pulsar V2 dengan Milvus v2.5.x.

  1. Proses peningkatan memerlukan pemadaman layanan singkat (biasanya membutuhkan waktu sekitar beberapa menit hingga lebih dari sepuluh menit, tergantung pada jumlah data).

  2. Sebelum operasi, Anda harus menghentikan semua klien yang sedang berjalan untuk menulis data ke Milvus. Jika tidak, data yang ditulis dapat hilang.

  3. Artikel ini mengasumsikan bahwa Milvus terinstal pada namespace default dan bernama my-release. Silakan ubah parameter ke namespace dan nama rilis Anda sendiri ketika menjalankan perintah-perintah yang disalin dari halaman ini.

  4. Pastikan bahwa lingkungan kerja Anda memiliki izin di bawah namespace yang disebutkan di atas dalam kluster Kubernetes dan perintah berikut ini telah terinstal.

    a. kubectl >= 1.20

    b. helm >= 3.14.0

    c. cat, grep, awk untuk operasi manipulasi string

    d. curl atau Attu v2.4+ untuk berinteraksi dengan API manajemen milvus

Peta jalan

Proses peningkatan mencakup langkah-langkah berikut:

  1. Menyimpan data yang tidak dikonsumsi dalam pulsar.

  2. Menghentikan Milvus dan menghapus pulsar V2.

  3. Mulai Pulsar V3 dan Milvus.

Prosedur

Bagian ini memberikan prosedur terperinci untuk meningkatkan Pulsar dari V2 ke V3 di Milvus.

Menyimpan data yang tidak digunakan di Pulsar

Pada langkah ini, Anda perlu memastikan bahwa data yang ada di Pulsar telah dipertahankan ke layanan penyimpanan objek. Ada dua pendekatan yang tersedia, dan Anda dapat memilih salah satu yang sesuai dengan kebutuhan Anda.

Pendekatan 1: Menggunakan Attu

Jika Anda hanya memiliki sejumlah kecil koleksi dalam penerapan Milvus yang sedang berjalan dengan segmen yang tidak terlalu banyak, Anda dapat menggunakan Attu untuk menyimpan data ke layanan penyimpanan objek.

  1. Pilih setiap koleksi di semua basis data Anda, masuk ke panel Segments, Klik tombol Flush

    Segment panel of a collection Panel segmen dari sebuah koleksi

  2. Kemudian pada popup, Klik Flush lagi.

    Data flush prompt in Attu Perintah flush data di Attu

  3. Kemudian tunggu hingga semua status Persistent Segment semua koleksi menjadi Flushed.

    View data flush status in Attu Melihat status flush data di Attu

Pendekatan 2: Menggunakan API manajemen

  1. Proksi port 9091 dari proksi Milvus ke hos lokal untuk operasi selanjutnya.

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

    Keluaran.

    [1] 8116
    Forwarding from 127.0.0.1:9091 -> 9091
    
    
  2. Simpan Pid untuk pembersihan selanjutnya.

    pid=8116
    
    
  3. Memicu tindakan mempertahankan semua data yang dimasukkan dari Pulsar ke Ojbect Storage.

    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
    
    

    Keluaran.

    {
      "segmentIDs": [
        454097953998181000,
        454097953999383600,
        454097953998180800
      ]
    }
    
    
  4. Centang Semua segmen telah dibilas.

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

    Setelah selesai, Anda akan melihat keluaran berikut ini

    {"status":{},"flushed":true}
    
    
  5. Hentikan proses latar belakang kubectl port-forward

    kill $pid
    
    

    Keluaran.

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

Hentikan Milvus dan hapus Pulsar V2

Pada langkah ini, Anda perlu menghentikan pod Milvus dan menghapus penyebaran Pulsar V2. Ada dua bagian terpisah yang tersedia:

Menghapus Pulsar V2 menggunakan Helm

Jika Anda telah menginstal Milvus menggunakan grafik Milvus Helm, ikuti langkah-langkah di bawah ini untuk menghentikan pod Milvus dan menghapus penyebaran Pulsar V2.

  1. Simpan nilai rilis Milvus saat ini ke values.yaml untuk pemulihan nanti.

    helm -n default get values my-release -o yaml > values.yaml
    cat values.yaml
    
    
  2. Gunakan perintah ini untuk menghentikan Milvus dan semua dependensinya. Jangan khawatir tentang volume data, mereka akan disimpan secara default.

    helm -n default uninstall my-release
    
    

    Keluaran

    These resources were kept due to the resource policy:
    [PersistentVolumeClaim] my-release-minio
    
    release "my-release" uninstalled
    
    
  3. Daftar PVC & PV pulsar (Klaim Volume Persisten & Volume Persisten) yang perlu dihapus

    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
    
    

    Keluaran

    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. Periksa apakah daftar PVC dari pulsar-pvcs.txt semuanya untuk Pulsar. Setelah Anda mengonfirmasi bahwa tidak ada kesalahan, hapus PVC.

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

    Keluaran.

    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. (Opsional) Tergantung pada kelas penyimpanan yang menyediakan PVC, Anda mungkin juga perlu menghapus PV secara manual.

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

    Tidak masalah jika keluarannya adalah kesalahan NotFound. Itu sudah dihapus oleh pengontrol 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
    
    

Menghapus Pulsar V2 menggunakan Operator Milvus

Jika Anda telah menginstal Milvus menggunakan Milvus Operator, ikuti langkah-langkah di bawah ini untuk menghentikan pod Milvus dan menghapus penyebaran Pulsar V2.

  1. Simpan Manifes Milvus saat ini ke milvus.yaml untuk digunakan di kemudian hari.

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

    Keluaran.

    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. Buat berkas patch.yaml dengan konten berikut ini.

    # 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. Gunakan kubectl patch untuk menyimpan data etcd & penyimpanan dan menghapus data pulsar saat menghapus milvus.

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

    Keluaran.

    milvus.milvus.io/my-release patched
    
    
  4. Hentikan Milvus dan hapus pulsar V2. Jangan khawatir dengan volume data penyimpanan etcd & objek, mereka akan disimpan secara default.

    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
    
    

    Keluaran: Perhatikan bahwa mungkin diperlukan beberapa menit bagi milvus untuk berhenti secara perlahan dan bagi operator untuk menghapus volume pulsar.

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

    Tunggu sampai perintah selesai.

  5. Periksa lagi untuk melihat apakah sumber daya milvus sudah hilang

    kubectl -n default get milvus my-release
    
    

    Keluarannya seharusnya seperti ini.

    No resources found in default namespace.
    
    

Memulai Pulsar V3 dan Milvus

Pada langkah ini, Anda harus memulai Pulsar V3 dan Milvus. Ada dua bagian terpisah yang tersedia:

  • Untuk Pengguna Helm

    Jika Anda telah menginstal Milvus menggunakan bagan Helm Milvus, masuk ke Untuk Pengguna Helm.

  • Untuk pengguna Operator Milvus

    Jika Anda telah menginstal Milvus menggunakan Milvus Operator, masuk ke Untuk Pengguna Milvus Operator.

3. Mulai Pulsar V3 dan menggunakan Helm

  1. Edit values.yaml yang telah disimpan pada langkah sebelumnya.

    # 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. Perbarui repositori helm lokal anda

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

    Keluaran

    "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. Instal rilis milvus Anda dengan versi helm chart terbaru menggunakan values.yaml yang telah diedit.

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

    Keluaran

    NAME: my-release
    LAST DEPLOYED: Fri Nov 22 15:31:27 2024
    NAMESPACE: default
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
    
    
  4. Periksa pods untuk melihat apakah semuanya sudah dijadwalkan dan berjalan dengan kubectl -n default get pods.

    Mungkin perlu beberapa menit agar semua pod dapat berjalan

    Keluarannya akan terlihat seperti.

    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
    
    

Mulai Pulsar V3 dan gunakan Milvus Operator

  1. Edit milvus.yaml yang disimpan pada Langkah sebelumnya.

    # 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. Pastikan Milvus Operator anda sudah diupgrade ke versi v1.1.2 atau versi yang lebih baru

    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
    
    

    Gunakan perintah untuk memulai milvus dengan pulsar v3

    kubectl create -f milvus.yaml
    
    

    Keluaran

    milvus.milvus.io/my-release created
    
    
  3. Periksa pod untuk melihat apakah semuanya sudah dijadwalkan dan berjalan dengan kubectl -n default get pods.

    Mungkin perlu beberapa menit agar semua pod dapat dimulai.

    Keluarannya akan terlihat seperti.

    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
    
    

Coba Milvus yang Dikelola secara Gratis

Zilliz Cloud bebas masalah, didukung oleh Milvus dan 10x lebih cepat.

Mulai
Umpan balik

Apakah halaman ini bermanfaat?