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
my-release
이라는 이름의 Milvus 클러스터가 있는 경우 구성 파일에 따라 클러스터 리소스가 업데이트됩니다. 그렇지 않으면 새 Milvus 클러스터가 생성됩니다.비공개 리소스 구성
원래 Milvus 2.0에서 Milvus 클러스터는 프록시, 루트 코디, 데이터 코디, 쿼리 코디, 인덱스 노드, 데이터 노드, 쿼리 노드 등 7가지 구성 요소를 포함합니다. 그러나 Milvus 2.1.0과 함께 새로운 구성 요소인 mix coord가 릴리즈되었습니다. 믹스 코드는 모든 코디네이터 구성 요소를 포함합니다. 따라서 믹스 코디를 시작하면 루트 코디, 데이터 코디, 쿼리 코디 등 다른 코디네이터를 설치 및 시작할 필요가 없습니다.
각 구성 요소를 구성하는 데 사용되는 공통 필드는 다음과 같습니다:
replica
: 각 컴포넌트의 복제본 수입니다.port
: 각 컴포넌트의 수신 포트 번호.- 글로벌 리소스 구성에서 일반적으로 사용되는 네 가지 필드입니다:
image
,env
,nodeSelector
,tolerations
,resources
(위 참조). 구성 가능한 더 많은 필드를 보려면 이 문서에서 각 구성 요소를 클릭하세요.
특정 구성 요소에 대한 리소스를 구성하려면 먼저 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: {}
새 구성을 적용하려면 다음 명령을 실행하세요:
kubectl apply -f milvuscluster.yaml
다음 단계
- Milvus Operator로 다음 Milvus 종속성을 관리하는 방법을 알아보세요: