milvus-logo
LFAI
홈페이지
  • 관리 가이드

Milvus Operator로 Milvus 구성하기

프로덕션 환경에서는 머신 유형 및 워크로드에 따라 Milvus 클러스터에 리소스를 할당해야 합니다. 배포 중에 구성하거나 클러스터가 실행되는 동안 구성을 업데이트할 수 있습니다.

이 항목에서는 Milvus Operator로 Milvus 클러스터를 설치할 때 구성하는 방법을 소개합니다.

이 항목에서는 Milvus Operator를 배포했다고 가정합니다. 자세한 내용은 Milvus Operator 배포하기를 참조하세요.

Milvus Operator로 Milvus 클러스터 구성에는 다음이 포함됩니다:

  • 글로벌 리소스 구성
  • 프라이빗 리소스 구성
프라이빗 리소스 구성은 글로벌 리소스 구성을 덮어씁니다. 리소스를 전역으로 구성하면서 동시에 특정 구성 요소의 프라이빗 리소스를 지정하면 구성 요소는 프라이빗 구성의 우선순위를 지정하고 이에 먼저 응답합니다.

글로벌 리소스 구성

Milvus Operator를 사용하여 Milvus 클러스터를 시작할 때는 구성 파일을 지정해야 합니다. 여기서는 기본 구성 파일을 사용합니다.

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

구성 파일의 상세 내용은 다음과 같습니다:

apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
  name: my-release
  labels:
    app: milvus
spec:
  mode: cluster
  dependencies: {}
  components: {}
  config: {}

spec.components 필드에는 모든 Milvus 구성 요소의 전역 및 비공개 리소스 구성이 모두 포함됩니다. 다음은 글로벌 리소스를 구성하는 데 일반적으로 사용되는 네 가지 필드입니다.

  • image: 사용된 Milvus 도커 이미지.
  • resources: 각 구성 요소에 할당된 컴퓨팅 리소스.
  • tolerations nodeSelector : K8s 클러스터에 있는 각 Milvus 구성 요소의 스케줄링 규칙. 자세한 내용은 톨러레이션과 nodeSelector를 참고하세요.
  • env: 환경 변수.

더 많은 필드를 구성하려면 여기 설명서를 참조하세요.

Milvus 클러스터에 대한 글로벌 리소스를 구성하려면 milvuscluster_resource.yaml 파일을 생성합니다.

예제

다음 예는 Milvus 클러스터에 대한 글로벌 리소스를 구성하는 예제입니다.

apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
  name: my-release
  labels:
    app: milvus
spec:
  mode: cluster
  components:
    nodeSelector: {}
    tolerations: {}
    env: {}
    resources:
      limits:
        cpu: '4'
        memory: 8Gi
      requests:
        cpu: 200m
        memory: 512Mi

새 구성을 적용하려면 다음 명령을 실행합니다:

kubectl apply -f milvuscluster_resource.yaml
K8s 클러스터에 my-release 이라는 이름의 Milvus 클러스터가 있는 경우 구성 파일에 따라 클러스터 리소스가 업데이트됩니다. 그렇지 않으면 새 Milvus 클러스터가 생성됩니다.

비공개 리소스 구성

원래 Milvus 2.0에서 Milvus 클러스터는 프록시, 루트 코디, 데이터 코디, 쿼리 코디, 인덱스 노드, 데이터 노드, 쿼리 노드 등 7가지 구성 요소를 포함합니다. 그러나 Milvus 2.1.0과 함께 새로운 구성 요소인 mix coord가 릴리즈되었습니다. 믹스 코드는 모든 코디네이터 구성 요소를 포함합니다. 따라서 믹스 코디를 시작하면 루트 코디, 데이터 코디, 쿼리 코디 등 다른 코디네이터를 설치 및 시작할 필요가 없습니다.

각 구성 요소를 구성하는 데 사용되는 공통 필드는 다음과 같습니다:

  • replica: 각 컴포넌트의 복제본 수입니다.
  • port: 각 컴포넌트의 수신 포트 번호.
  • 글로벌 리소스 구성에서 일반적으로 사용되는 네 가지 필드입니다: image, env, nodeSelector, tolerations, resources (위 참조). 더 많은 구성 가능한 필드를 보려면 이 문서에서 각 구성 요소를 클릭하세요.
또한 프록시를 구성할 때 'serviceType'이라는 추가 필드가 있습니다. 이 필드는 Milvus가 K8s 클러스터에서 제공하는 서비스 유형을 정의합니다.

특정 구성 요소에 대한 리소스를 구성하려면 먼저 spec.componets 필드에 구성 요소 이름을 추가한 다음 해당 구성 요소의 프라이빗 리소스를 구성합니다.

목적 파라미터
성능 튜닝
데이터 및 메타
관리
할당량 및 제한

예제

아래 예는 milvuscluster.yaml 파일에서 프록시 및 데이터노드의 복제본과 컴퓨팅 리소스를 구성하는 예제입니다.

apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
  name: my-release
  labels:
    app: milvus
spec:
  mode: cluster
  components:
    resources:
      limits:
        cpu: '4'
        memory: 8Gi
      requests:
        cpu: 200m
        memory: 512Mi
    rootCoord: 
      replicas: 1
      port: 8080
      resources:
        limits:
          cpu: '6'
          memory: '10Gi'
    dataCoord: {}
    queryCoord: {}
    indexCoord: {}
    dataNode: {}
    indexNode: {}
    queryNode: {}
    proxy:
      replicas: 1
      serviceType: ClusterIP
      resources:
        limits:
          cpu: '2'
          memory: 4Gi
        requests:
          cpu: 100m
          memory: 128Mi
  config: {}
  dependencies: {}
이 예제에서는 글로벌 리소스뿐만 아니라 루트 코디와 프록시에 대한 프라이빗 컴퓨팅 리소스도 구성합니다. 이 구성 파일을 사용하여 Milvus 클러스터를 시작할 때, 프라이빗 리소스 구성은 루트 코디와 프록시에 적용되고 나머지 구성 요소는 글로벌 리소스 구성을 따릅니다.

새 구성을 적용하려면 다음 명령을 실행하세요:

kubectl apply -f milvuscluster.yaml

다음 단계

번역DeepLogo

Try Managed Milvus for Free

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

Get Started
피드백

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