• Tentang Milvus
  • Mulailah
  • Konsep
  • Panduan Pengguna
  • Impor Data
  • Alat AI
  • Panduan Administrasi
  • Alat
  • Integrasi
  • Tutorial
  • Pertanyaan yang Sering Diajukan
  • API Reference

Mengonfigurasi Penyimpanan Pesan dengan Milvus Operator

Pada Milvus 3.x, Woodpecker merupakan antrian pesan default (lihat Woodpecker). Dengan Milvus Operator, Anda juga dapat mengonfigurasi RocksMQ, Pulsar, atau Kafka untuk mengelola log perubahan terbaru, mengeluarkan log aliran, dan menyediakan langganan log. Topik ini menjelaskan cara mengonfigurasi dependensi penyimpanan pesan saat Anda menginstal Milvus dengan Milvus Operator. Untuk detail lebih lanjut, lihat Konfigurasi Penyimpanan Pesan dengan Milvus Operator di repositori Milvus Operator.

Topik ini mengasumsikan bahwa Anda telah menerapkan Milvus Operator.

Lihat " Deploy Milvus Operator " untuk informasi lebih lanjut.

Anda perlu menentukan berkas konfigurasi untuk menggunakan Milvus Operator guna memulai kluster Milvus.

kubectl apply -f https://raw.githubusercontent.com/zilliztech/milvus-operator/main/config/samples/milvus_cluster_default.yaml

Anda hanya perlu mengedit templat kode di ` milvus_cluster_default.yaml ` untuk mengonfigurasi dependensi pihak ketiga. Bagian-bagian berikut ini menjelaskan cara mengonfigurasi penyimpanan objek, etcd, dan Pulsar masing-masing.

Sebelum Anda mulai

Tabel di bawah ini menunjukkan apakah RocksMQ, Pulsar, Kafka, dan Woodpecker didukung dalam mode standalone dan cluster Milvus.

RocksMQPulsarKafkaWoodpecker
Mode standalone✔️✔️✔️✔️
Mode kluster✖️✔️✔️✔️

Ada juga batasan lain dalam menentukan penyimpanan pesan:

  • Hanya satu penyimpanan pesan yang didukung untuk satu instance Milvus. Namun, kami masih mendukung kompatibilitas mundur dengan pengaturan beberapa penyimpanan pesan untuk satu instance. Prioritasnya adalah sebagai berikut:
    • mode mandiri: Woodpecker (default) > RocksMQ > Pulsar > Kafka
    • mode cluster: Woodpecker (default) > Pulsar > Kafka
  • Penyimpanan pesan tidak dapat diubah saat sistem Milvus sedang berjalan.
  • Hanya versi Kafka 2.x atau 3.x yang didukung.
  • Batasan peningkatan versi: Batasan Antrian Pesan: Saat meningkatkan ke Milvus v3.0.0, Anda harus mempertahankan pilihan antrian pesan Anda saat ini. Beralih di antara sistem antrian pesan yang berbeda selama peningkatan versi tidak didukung. Dukungan untuk mengubah sistem antrian pesan akan tersedia di versi mendatang.

Konfigurasi RocksMQ

RocksMQ adalah penyimpanan pesan default di Milvus standalone hingga versi 2.5.x (digantikan oleh Woodpecker mulai versi 2.6.x).

Saat ini, Anda hanya dapat mengonfigurasi RocksMQ sebagai penyimpanan pesan untuk Milvus standalone dengan Milvus Operator.

Contoh

Contoh berikut mengonfigurasi layanan RocksMQ.

apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
  name: milvus
spec:
  mode: standalone
  dependencies:
    msgStreamType: rocksmq
    rocksmq:
      persistence:
        enabled: true
        pvcDeletion: true
        persistentVolumeClaim:
          spec:
            accessModes: ["ReadWriteOnce"]
            storageClassName: "local-path"  # Specify your storage class
            resources:
              requests:
                storage: 10Gi  # Specify your desired storage size
  components: {}
  config: {}
Opsi konfigurasi utama:
  • msgStreamType: rocksmq: Secara eksplisit menetapkan RocksMQ sebagai antrian pesan
  • persistence.enabled: Mengaktifkan penyimpanan persisten untuk data RocksMQ
  • persistence.pvcDeletion: Jika bernilai true, PVC akan dihapus saat instance Milvus dihapus
  • persistentVolumeClaim.spec: Spesifikasi PVC Kubernetes standar
  • accessModes: Biasanya ` ReadWriteOnce ` untuk penyimpanan blok
  • storageClassName: Kelas penyimpanan kluster Anda
  • storage: Ukuran volume persisten

Konfigurasi Woodpecker

Woodpecker adalah Write-Ahead Log (WAL) cloud-native yang dirancang untuk penyimpanan objek. Layanan ini menawarkan throughput tinggi, beban operasional rendah, dan skalabilitas yang mulus. Untuk detail lebih lanjut, lihat Woodpecker.

Konfigurasi Pulsar

Pulsar mengelola log perubahan terbaru, menghasilkan log aliran, dan menyediakan langganan log. Konfigurasi Pulsar sebagai penyimpanan pesan didukung baik di Milvus standalone maupun Milvus cluster. Namun, dengan Milvus Operator, Anda hanya dapat mengonfigurasi Pulsar sebagai penyimpanan pesan untuk Milvus cluster. Tambahkan bidang yang diperlukan di bawah " spec.dependencies.pulsar " untuk mengonfigurasi Pulsar.

pulsar mendukung external dan inCluster.

Pulsar Eksternal

external menandakan penggunaan layanan Pulsar eksternal. Bidang yang digunakan untuk mengonfigurasi layanan Pulsar eksternal meliputi:

  • external: Nilai " true " menunjukkan bahwa Milvus menggunakan layanan Pulsar eksternal.
  • endpoints: Titik akhir (endpoint) Pulsar.

Contoh

Contoh berikut mengonfigurasi layanan Pulsar eksternal.

apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
  name: my-release
  labels:
    app: milvus
spec:
  dependencies: # Optional
    pulsar: # Optional
      # Whether (=true) to use an existed external pulsar as specified in the field endpoints or 
      # (=false) create a new pulsar inside the same kubernetes cluster for milvus.
      external: true # Optional default=false
      # The external pulsar endpoints if external=true
      endpoints:
      - 192.168.1.1:6650
  components: {}
  config: {}           

Pulsar Internal

inCluster menunjukkan bahwa saat kluster Milvus dimulai, layanan Pulsar akan dimulai secara otomatis di dalam kluster tersebut.

Contoh

Contoh berikut mengonfigurasi layanan Pulsar internal.

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
            resoureces:
              limit:
                cpu: '4'
              memory: 8Gi
            requests:
              cpu: 200m
              memory: 512Mi
          broker:
            replicaCount: 1
            configData:
              ## Enable `autoSkipNonRecoverableData` since bookkeeper is running
              ## without persistence
              autoSkipNonRecoverableData: "true"
              managedLedgerDefaultEnsembleSize: "1"
              managedLedgerDefaultWriteQuorum: "1"
              managedLedgerDefaultAckQuorum: "1"
          proxy:
            replicaCount: 1
  components: {}
  config: {}            
Contoh ini menentukan jumlah replika dari setiap komponen Pulsar, sumber daya komputasi Pulsar BookKeeper, serta konfigurasi lainnya.
Temukan item konfigurasi lengkap untuk mengonfigurasi layanan Pulsar internal di values.yaml. Tambahkan item konfigurasi sesuai kebutuhan di bawah ` pulsar.inCluster.values ` seperti yang ditunjukkan pada contoh sebelumnya.

Dengan asumsi bahwa berkas konfigurasi bernama ` milvuscluster.yaml`, jalankan perintah berikut untuk menerapkan konfigurasi.

kubectl apply -f milvuscluster.yaml

Konfigurasi Kafka

Pulsar merupakan penyimpanan pesan default dalam kluster Milvus hingga versi 2.5.x (digantikan oleh Woodpecker mulai versi 2.6.x). Jika Anda ingin menggunakan Kafka, tambahkan bidang opsional ` msgStreamType ` untuk mengonfigurasi Kafka.

kafka Mendukung external dan inCluster.

Kafka Eksternal

external Menandakan penggunaan layanan Kafka eksternal.

Bidang yang digunakan untuk mengonfigurasi layanan Kafka eksternal meliputi:

  • external: Nilai ` true ` menunjukkan bahwa Milvus menggunakan layanan Kafka eksternal.
  • brokerList: Daftar broker yang akan menerima pesan.

Contoh

Contoh berikut mengonfigurasi layanan Kafka eksternal.

apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
  name: my-release
  labels:
    app: milvus
spec:
  config:
    kafka:
      # securityProtocol supports: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL 
      securityProtocol: PLAINTEXT
      # saslMechanisms supports: PLAIN, SCRAM-SHA-256, SCRAM-SHA-512
      saslMechanisms: PLAIN
      saslUsername: ""
      saslPassword: ""
  # Omit other fields ...
  dependencies:
    # Omit other fields ...
    msgStreamType: "kafka"
    kafka:
      external: true
      brokerList: 
        - "kafkaBrokerAddr1:9092"
        - "kafkaBrokerAddr2:9092"
        # ...

Konfigurasi SASL didukung pada operator versi v0.8.5 atau yang lebih baru.

Kafka Internal

inCluster menunjukkan bahwa saat kluster Milvus dimulai, layanan Kafka akan dimulai secara otomatis di dalam kluster tersebut.

Contoh

Contoh berikut mengonfigurasi layanan Kafka internal.

apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
  name: my-release
  labels:
    app: milvus
spec: 
  dependencies:
    msgStreamType: "kafka"
    kafka:
      inCluster: 
        values: {} # values can be found in https://artifacthub.io/packages/helm/bitnami/kafka
  components: {}
  config: {}

Temukan item konfigurasi lengkap untuk mengonfigurasi layanan Kafka internal di sini. Tambahkan item konfigurasi sesuai kebutuhan di bawah ` kafka.inCluster.values`.

Dengan asumsi bahwa berkas konfigurasi tersebut bernama ` milvuscluster.yaml`, jalankan perintah berikut untuk menerapkan konfigurasi.

kubectl apply -f milvuscluster.yaml

Langkah Selanjutnya

Pelajari cara mengonfigurasi dependensi Milvus lainnya dengan Milvus Operator:

Diterjemahkan olehDeepL

Coba Milvus yang Dikelola secara Gratis

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

Mulai
Umpan balik

Apakah halaman ini bermanfaat?