• 밀버스 소개
  • 시작하기
  • 개념
  • 사용자 가이드
  • 데이터 가져오기
  • AI 도구
  • 관리 가이드
  • 도구
  • 통합
  • 튜토리얼
  • 자주 묻는 질문
  • API Reference

Milvus 운영자로 메시지 저장소 구성하기

Milvus는 최근 변경 사항 로그 관리, 스트림 로그 출력, 로그 구독 제공을 위해 RocksMQ, Pulsar 또는 Kafka를 사용합니다. 이 항목에서는 Milvus Operator와 함께 Milvus를 설치할 때 메시지 저장소 종속성을 구성하는 방법을 소개합니다. 자세한 내용은 Milvus Operator 리포지토리에서 Milvus Operator로 메시지 저장소 구성을 참조하세요.

이 항목에서는 Milvus Operator를 배포했다고 가정합니다.

자세한 내용은 Milvus 운영자 배포하기를 참조하세요.

밀버스 오퍼레이터를 사용하여 밀버스 클러스터를 시작하려면 구성 파일을 지정해야 합니다.

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

타사 종속성을 구성하려면 milvus_cluster_default.yaml 에서 코드 템플릿을 편집하기만 하면 됩니다. 다음 섹션에서는 각각 개체 스토리지, etcd 및 Pulsar를 구성하는 방법을 소개합니다.

시작하기 전에

아래 표는 Milvus 독립 실행형 및 클러스터 모드에서 RocksMQ, Pulsar, Kafka 및 Woodpecker가 지원되는지 여부를 보여줍니다.

RocksMQPulsarKafkaWoodpecker
독립 실행형 모드✔️✔️✔️✔️
클러스터 모드✖️✔️✔️✔️

메시지 저장소를 지정하는 데에는 다른 제한 사항도 있습니다:

  • 하나의 Milvus 인스턴스에 대해 하나의 메시지 저장소만 지원됩니다. 그러나 하나의 인스턴스에 대해 여러 개의 메시지 저장소를 설정할 수 있는 이전 버전과의 호환성은 여전히 유지됩니다. 우선순위는 다음과 같습니다:
    • 독립형 모드: RocksMQ(기본값) > Pulsar > Kafka
    • 클러스터 모드: Pulsar(기본값) > Kafka
  • Milvus 시스템이 실행되는 동안에는 메시지 저장소를 변경할 수 없습니다.
  • Kafka 2.x 또는 3.x 버전만 지원됩니다.
  • 업그레이드 제한: 메시지 큐 제한: Milvus v2.6.16으로 업그레이드할 때는 현재 선택한 메시지 큐를 유지해야 합니다. 업그레이드 중에 다른 메시지 큐 시스템 간에 전환하는 것은 지원되지 않습니다. 메시지 큐 시스템 변경에 대한 지원은 향후 버전에서 제공될 예정입니다.

RocksMQ 구성하기

RocksMQ는 Milvus 스탠드얼론의 기본 메시지 저장소입니다.

현재 Milvus Operator를 통해서만 Milvus 스탠드얼론의 메시지 저장소로 RocksMQ를 구성할 수 있습니다.

예제

다음 예는 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: {}
주요 구성 옵션
  • msgStreamType: rocksmq: 명시적으로 RocksMQ를 메시지 큐로 설정합니다.
  • persistence.enabled: RocksMQ 데이터에 영구 저장소를 사용 설정합니다.
  • persistence.pvcDeletion: true일 경우, Milvus 인스턴스가 삭제될 때 PVC가 삭제됩니다.
  • persistentVolumeClaim.spec: 표준 쿠버네티스 PVC 사양
  • accessModes: 일반적으로 블록 스토리지의 경우 ReadWriteOnce
  • storageClassName: 클러스터의 스토리지 클래스
  • storage: 퍼시스턴트 볼륨의 크기

딱따구리 구성

Woodpecker는 오브젝트 스토리지용으로 설계된 클라우드 네이티브 WAL(Write-Ahead Log)입니다. 높은 처리량, 낮은 운영 오버헤드, 원활한 확장성을 제공합니다. 자세한 내용은 Woodpecker 사용을 참조하세요.

Pulsar 구성

Pulsar는 최근 변경 사항의 로그를 관리하고, 스트림 로그를 출력하며, 로그 구독을 제공합니다. 메시지 저장을 위한 Pulsar 구성은 Milvus 독립형과 Milvus 클러스터 모두에서 지원됩니다. 그러나 Milvus Operator를 사용할 때는 Milvus 클러스터의 메시지 저장소로만 Pulsar를 구성할 수 있습니다. spec.dependencies.pulsar 에서 필수 필드를 추가하여 Pulsar를 구성하세요.

pulsar externalinCluster 을 지원합니다.

외부 펄서

external 는 외부 Pulsar 서비스를 사용함을 나타냅니다. 외부 Pulsar 서비스를 구성하는 데 사용되는 필드는 다음과 같습니다:

  • external: true 값은 Milvus가 외부 Pulsar 서비스를 사용함을 나타냅니다.
  • endpoints: Pulsar의 엔드포인트입니다.

예제

다음은 외부 Pulsar 서비스를 구성하는 예제입니다.

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

내부 펄서

inCluster 는 Milvus 클러스터가 시작되면 클러스터에서 Pulsar 서비스가 자동으로 시작됨을 나타냅니다.

예제

다음은 내부 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
            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: {}            
이 예에서는 Pulsar의 각 구성 요소의 복제본 수, Pulsar BookKeeper의 컴퓨팅 리소스 및 기타 구성을 지정합니다.
내부 Pulsar 서비스를 구성하기 위한 전체 구성 항목은 values.yaml에서 찾을 수 있습니다. 앞의 예와 같이 pulsar.inCluster.values 아래에 필요에 따라 구성 항목을 추가합니다.

구성 파일의 이름이 milvuscluster.yaml 이라고 가정하고 다음 명령을 실행하여 구성을 적용합니다.

kubectl apply -f milvuscluster.yaml

Kafka 구성

Pulsar는 Milvus 클러스터의 기본 메시지 저장소입니다. Kafka를 사용하려면 선택적 필드 msgStreamType 를 추가하여 Kafka를 구성합니다.

kafka externalinCluster 을 지원합니다.

외부 카프카

external 는 외부 Kafka 서비스를 사용함을 나타냅니다.

외부 Kafka 서비스를 구성하는 데 사용되는 필드는 다음과 같습니다:

  • external: true 값은 Milvus가 외부 Kafka 서비스를 사용함을 나타냅니다.
  • brokerList: 메시지를 전송할 브로커 목록입니다.

예제

다음은 외부 Kafka 서비스를 구성하는 예제입니다.

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"
        # ...

SASL 구성은 운영자 v0.8.5 이상 버전에서 지원됩니다.

내부 카프카

inCluster 는 Milvus 클러스터가 시작되면 클러스터에서 Kafka 서비스가 자동으로 시작됨을 나타냅니다.

예제

다음 예는 내부 Kafka 서비스를 구성하는 예제입니다.

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

내부 Kafka 서비스 구성을 위한 전체 구성 항목은 여기에서 확인할 수 있습니다. kafka.inCluster.values 에서 필요에 따라 구성 항목을 추가합니다.

구성 파일의 이름이 milvuscluster.yaml 이라고 가정하고 다음 명령을 실행하여 구성을 적용합니다.

kubectl apply -f milvuscluster.yaml

다음 단계

Milvus Operator로 다른 Milvus 종속 요소를 구성하는 방법을 알아보세요:

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
피드백

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