• Milvus 소개
  • 시작하기
  • 개념
  • 사용자 안내서
  • 데이터 가져오기
  • AI 도구
  • 관리 가이드
  • 도구
  • 연동 기능
  • 튜토리얼
  • 자주 묻는 질문
  • API Reference

Milvus 메시지 큐로 Pulsar 사용

Apache Pulsar는 Milvus가 지원하는 메시지 큐(WAL) 백엔드 중 하나입니다. Milvus 3.x에서는 Woodpecker가 기본 메시지 큐로 설정되어 있지만, Pulsar를 선호하는 사용자를 위해 Pulsar에 대한 지원은 여전히 완벽하게 제공됩니다. Pulsar는 주로 Milvus Distributed(클러스터)와 함께 사용되며, 독립형 배포 환경에서는 일반적으로 내장형 Woodpecker 또는 RocksMQ가 사용됩니다.

버전 호환성

Milvus 버전지원되는 Pulsar 버전기본값
2.5.x 이상Pulsar v3(권장) 또는 Pulsar v2Pulsar v3 (Helm / Milvus Operator를 통해)
2.4.x 및 이전 버전Pulsar v2Pulsar v2

Milvus 2.5부터 Milvus Helm 차트 및 Milvus Operator는 기본적으로 Pulsar v3를 배포하며, Pulsar v2와의 호환성은 유지됩니다. ‘Pulsar v2에서 v3로 업그레이드’‘Pulsar v2 계속 사용’을 참조하십시오.

Helm을 사용하여 Pulsar가 포함된 Milvus 클러스터 배포

설치

(Woodpecker 대신) 번들된 Pulsar를 사용하는 Milvus 클러스터를 배포하려면, Streaming Node가 활성화된 Helm 차트를 설치하십시오:

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

Kubernetes v1.25 이상에서 번들된 Pulsar 서브 차트로 인해 PodDisruptionBudget(PDB) API 문제가 발생하는 경우, Pulsar PDB 정책을 비활성화하십시오:

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

구성

Milvus를 외부 Pulsar 서비스에 연결하려면, values.yaml 오버라이드에서 번들된 Pulsar를 비활성화하고 externalPulsar 를 활성화하십시오:

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

제거

helm uninstall my-release

번들된 Pulsar를 사용했고 그 영구 저장 데이터를 제거하려면, Pulsar PVC( my-release-pulsarv3-*)를 삭제하십시오:

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

Milvus Operator를 사용하여 Pulsar가 포함된 Milvus 클러스터 배포

Milvus Operator를 사용하여 spec.dependencies.pulsar 아래에서 Pulsar를 구성하십시오(Milvus 클러스터에서만 지원됨). pulsarexternalinCluster 을 지원합니다.

외부 Pulsar

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

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: {}

구성을 적용합니다(파일명이 milvuscluster.yaml 라고 가정함):

kubectl apply -f milvuscluster.yaml

제거

kubectl delete milvus my-release

참고

  • 2.5.x에서 2.6.x로 업그레이드: 메시지 큐 제한 사항: Milvus v3.0.0으로 업그레이드할 때는 현재 사용 중인 메시지 큐를 유지해야 합니다. 업그레이드 과정에서 다른 메시지 큐 시스템으로 전환하는 것은 지원되지 않습니다. 메시지 큐 시스템 변경에 대한 지원은 향후 버전에서 제공될 예정입니다. Pulsar를 실행 중이며 계속 사용하려는 경우, 업그레이드 중에 메시지 큐를 변경하지 마십시오.
  • Pulsar v2 → v3: ‘Pulsar v2에서 v3로 업그레이드’를 참조하십시오. v2를 계속 사용하려면 ‘Pulsar v2 계속 사용’을 참조하십시오.

다음 단계

번역DeepL

관리형 Milvus를 무료로 사용해 보세요

Zilliz Cloud는 번거로움이 없으며, Milvus 기반으로 10배 더 빠릅니다.

시작하기
피드백

이 페이지가 도움이 되었나요?