Milvus 클러스터 확장
Milvus는 구성 요소의 수평적 확장을 지원합니다. 즉, 필요에 따라 각 유형의 워커 노드 수를 늘리거나 줄일 수 있습니다.
이 항목에서는 Milvus 클러스터에서 스케일 아웃 및 스케일링하는 방법에 대해 설명합니다. 확장하기 전에 이미 Milvus 클러스터를 설치했다고 가정합니다. 또한 시작하기 전에 Milvus 아키텍처를 숙지하는 것이 좋습니다.
이 튜토리얼에서는 3개의 쿼리 노드 스케일아웃을 예로 들어 설명합니다. 다른 유형의 노드를 스케일아웃하려면 명령줄에서 queryNode
를 해당 노드 유형으로 바꾸세요.
밀버스 오퍼레이터로 클러스터를 확장하는 방법에 대한 자세한 내용은 밀버스 오퍼레이터로 클러스터 확장하기를 참조하세요.
수평 확장이란 무엇인가요?
수평적 스케일링에는 스케일 아웃과 스케일 인이 포함됩니다.
스케일 아웃
스케일 아웃은 클러스터의 노드 수를 늘리는 것을 말합니다. 스케일업과 달리 스케일아웃은 클러스터의 한 노드에 더 많은 리소스를 할당할 필요가 없습니다. 대신, 스케일 아웃은 노드를 더 추가하여 클러스터를 수평적으로 확장합니다.
스케일아웃
스케일업
Milvus 아키텍처에 따르면 상태 비저장 워커 노드에는 쿼리 노드, 데이터 노드, 인덱스 노드 및 프록시가 포함됩니다. 따라서 이러한 유형의 노드를 비즈니스 요구와 애플리케이션 시나리오에 맞게 스케일아웃할 수 있습니다. Milvus 클러스터는 수동 또는 자동으로 스케일아웃할 수 있습니다.
일반적으로 Milvus 클러스터가 과도하게 사용되는 경우 생성한 클러스터를 스케일아웃해야 합니다. 다음은 Milvus 클러스터를 스케일아웃해야 할 수 있는 몇 가지 일반적인 상황입니다:
- 일정 기간 동안 CPU 및 메모리 사용률이 높은 경우.
- 쿼리 처리량이 높아지는 경우.
- 더 빠른 인덱싱 속도가 필요한 경우.
- 대량의 대용량 데이터 세트를 처리해야 합니다.
- Milvus 서비스의 고가용성을 보장해야 합니다.
스케일링 인
스케일 인은 클러스터의 노드 수를 줄이는 것을 말합니다. 일반적으로 생성한 Milvus 클러스터의 활용도가 낮은 경우 스케일 인을 해야 합니다. 다음은 Milvus 클러스터에서 확장해야 하는 몇 가지 일반적인 상황입니다:
- 일정 기간 동안 CPU 및 메모리 사용률이 낮습니다.
- 쿼리 처리량이 낮아집니다.
- 인덱싱에 더 빠른 속도가 필요하지 않은 경우.
- 처리할 데이터 세트의 크기가 작습니다.
전제 조건
kubectl get pods
을 실행하여 생성한 Milvus 클러스터의 구성 요소 목록과 해당 구성 요소의 작동 상태를 확인합니다.
NAME READY STATUS RESTARTS AGE
my-release-etcd-0 1/1 Running 0 1m
my-release-milvus-datacoord-7b5d84d8c6-rzjml 1/1 Running 0 1m
my-release-milvus-datanode-665d4586b9-525pm 1/1 Running 0 1m
my-release-milvus-indexcoord-9669d5989-kr5cm 1/1 Running 0 1m
my-release-milvus-indexnode-b89cc5756-xbpbn 1/1 Running 0 1m
my-release-milvus-proxy-7cbcc8ffbc-4jn8d 1/1 Running 0 1m
my-release-milvus-pulsar-6b9754c64d-4tg4m 1/1 Running 0 1m
my-release-milvus-querycoord-75f6c789f8-j28bg 1/1 Running 0 1m
my-release-milvus-querynode-7c7779c6f8-pnjzh 1/1 Running 0 1m
my-release-milvus-rootcoord-75585dc57b-cjh87 1/1 Running 0 1m
my-release-minio-5564fbbddc-9sbgv 1/1 Running 0 1m
Milvus 클러스터 확장하기
Milvus 클러스터를 수동 또는 자동으로 확장할 수 있습니다. 자동 확장이 활성화된 경우, CPU 및 메모리 리소스 사용량이 설정한 값에 도달하면 Milvus 클러스터가 자동으로 축소 또는 확장됩니다.
현재 Milvus 2.1.0은 수동으로 스케일 인 및 스케일 아웃만 지원합니다.
스케일 아웃
helm upgrade my-release milvus/milvus --set queryNode.replicas=3 --reuse-values
을 실행하여 쿼리 노드를 수동으로 스케일 아웃합니다.
성공하면 다음 예시와 같이 쿼리 노드에 실행 중인 3개의 파드가 추가됩니다.
NAME READY STATUS RESTARTS AGE
my-release-etcd-0 1/1 Running 0 2m
my-release-milvus-datacoord-7b5d84d8c6-rzjml 1/1 Running 0 2m
my-release-milvus-datanode-665d4586b9-525pm 1/1 Running 0 2m
my-release-milvus-indexcoord-9669d5989-kr5cm 1/1 Running 0 2m
my-release-milvus-indexnode-b89cc5756-xbpbn 1/1 Running 0 2m
my-release-milvus-proxy-7cbcc8ffbc-4jn8d 1/1 Running 0 2m
my-release-milvus-pulsar-6b9754c64d-4tg4m 1/1 Running 0 2m
my-release-milvus-querycoord-75f6c789f8-j28bg 1/1 Running 0 2m
my-release-milvus-querynode-7c7779c6f8-czq9f 1/1 Running 0 5s
my-release-milvus-querynode-7c7779c6f8-jcdcn 1/1 Running 0 5s
my-release-milvus-querynode-7c7779c6f8-pnjzh 1/1 Running 0 2m
my-release-milvus-rootcoord-75585dc57b-cjh87 1/1 Running 0 2m
my-release-minio-5564fbbddc-9sbgv 1/1 Running 0 2m
스케일 인
helm upgrade my-release milvus/milvus --set queryNode.replicas=1 --reuse-values
을 실행하여 쿼리 노드를 스케일 인합니다.
성공하면 다음 예제와 같이 쿼리 노드에서 실행 중인 3개의 파드가 1개로 줄어듭니다.
NAME READY STATUS RESTARTS AGE
my-release-etcd-0 1/1 Running 0 2m
my-release-milvus-datacoord-7b5d84d8c6-rzjml 1/1 Running 0 2m
my-release-milvus-datanode-665d4586b9-525pm 1/1 Running 0 2m
my-release-milvus-indexcoord-9669d5989-kr5cm 1/1 Running 0 2m
my-release-milvus-indexnode-b89cc5756-xbpbn 1/1 Running 0 2m
my-release-milvus-proxy-7cbcc8ffbc-4jn8d 1/1 Running 0 2m
my-release-milvus-pulsar-6b9754c64d-4tg4m 1/1 Running 0 2m
my-release-milvus-querycoord-75f6c789f8-j28bg 1/1 Running 0 2m
my-release-milvus-querynode-7c7779c6f8-pnjzh 1/1 Running 0 2m
my-release-milvus-rootcoord-75585dc57b-cjh87 1/1 Running 0 2m
my-release-minio-5564fbbddc-9sbgv 1/1 Running 0 2m
다음 단계
Milvus 서비스를 모니터링하고 알림을 생성하는 방법을 배우려면 다음과 같이 하세요:
클라우드에 클러스터를 배포할 준비가 되셨다면:
리소스를 할당하는 방법에 대한 지침을 찾고 계신다면 이 문서를 참조하세요: