Gunakan Pulsar sebagai antrian pesan Milvus

Apache Pulsar adalah salah satu backend antrian pesan (WAL) yang didukung oleh Milvus. Pada Milvus 3.x, Woodpecker adalah antrian pesan default; Pulsar tetap didukung sepenuhnya bagi pengguna yang lebih memilihnya. Pulsar terutama digunakan dengan Milvus Distributed (kluster); penerapan mandiri biasanya menggunakan Woodpecker tertanam atau RocksMQ.

Kompatibilitas versi

Versi MilvusVersi Pulsar yang didukungDefault
2.5.x dan yang lebih baruPulsar v3 (disarankan) atau Pulsar v2Pulsar v3 (melalui Helm / Operator Milvus)
2.4.x dan versi sebelumnyaPulsar v2Pulsar v2

Sejak Milvus 2.5, chart Helm Milvus dan Milvus Operator secara default melakukan deployment Pulsar v3; Pulsar v2 tetap kompatibel. Lihat Memutakhirkan Pulsar dari v2 ke v3 dan Tetap Menggunakan Pulsar v2.

Deploy kluster Milvus dengan Pulsar menggunakan Helm

Instal

Untuk mengimplementasikan kluster Milvus yang menggunakan Pulsar yang disertakan (bukan Woodpecker), instal chart Helm dengan Streaming Node diaktifkan:

helm install my-release zilliztech/milvus \
  --set image.all.tag=v3.0.0 \
  --set pulsarv3.enabled=true \
  --set woodpecker.enabled=false \
  --set streaming.enabled=true \
  --set indexNode.enabled=false

Pada Kubernetes v1.25 dan yang lebih baru, jika Anda mengalami masalah API PodDisruptionBudget dari sub-chart Pulsar yang disertakan, nonaktifkan kebijakan PDB Pulsar:

helm install my-release zilliztech/milvus \
  --set pulsar.bookkeeper.pdb.usePolicy=false \
  --set pulsar.broker.pdb.usePolicy=false \
  --set pulsar.proxy.pdb.usePolicy=false \
  --set pulsar.zookeeper.pdb.usePolicy=false

Konfigurasi

Untuk menghubungkan Milvus ke layanan Pulsar eksternal, nonaktifkan Pulsar yang disertakan dan aktifkan opsi " externalPulsar " dalam pengaturan override ` values.yaml `:

pulsarv3:
  enabled: false
externalPulsar:
  enabled: true
  host: <your_pulsar_host>
  port: 6650
  maxMessageSize: "5242880"  # 5 MB, maximum size of each message
  tenant: public
  namespace: default
helm install my-release zilliztech/milvus -f values.yaml

Hapus

helm uninstall my-release

Jika Anda menggunakan Pulsar yang disertakan dan ingin menghapus data yang tersimpan, hapus PVC Pulsar (bernama my-release-pulsarv3-*):

kubectl get pvc | grep my-release-pulsarv3
kubectl delete pvc <pulsar-pvc-name> ...

Deploy kluster Milvus dengan Pulsar menggunakan Milvus Operator

Dengan Milvus Operator, konfigurasikan Pulsar di bawah spec.dependencies.pulsar (hanya didukung untuk kluster Milvus). pulsar mendukung external dan inCluster.

Pulsar Eksternal

apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
  name: my-release
  labels:
    app: milvus
spec:
  dependencies:
    pulsar:
      external: true
      endpoints:
      - 192.168.1.1:6650
  components: {}
  config: {}

Pulsar Internal (dalam kluster)

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
          broker:
            replicaCount: 1
            configData:
              autoSkipNonRecoverableData: "true"
              managedLedgerDefaultEnsembleSize: "1"
              managedLedgerDefaultWriteQuorum: "1"
              managedLedgerDefaultAckQuorum: "1"
          proxy:
            replicaCount: 1
  components: {}
  config: {}

Terapkan konfigurasi (dengan asumsi berkasnya adalah milvuscluster.yaml):

kubectl apply -f milvuscluster.yaml

Hapus Instalasi

kubectl delete milvus my-release

Catatan

  • Meningkatkan versi dari 2.5.x ke 2.6.x: Batasan Antrian Pesan: Saat meningkatkan versi ke Milvus v3.0.0, Anda harus mempertahankan pilihan antrian pesan Anda saat ini. Beralih di antara sistem antrian pesan yang berbeda selama proses peningkatan versi tidak didukung. Dukungan untuk mengubah sistem antrian pesan akan tersedia di versi mendatang. Jika Anda menjalankan Pulsar dan ingin tetap menggunakannya, jangan ubah antrian pesan selama proses peningkatan versi.
  • Pulsar v2 → v3: lihat Memutakhirkan Pulsar dari v2 ke v3; untuk tetap menggunakan v2, lihat Terus Menggunakan Pulsar v2.

Langkah Selanjutnya