Milvus 종속성 확장
Milvus는 MinIO, Kafka, Pulsar 등 다양한 종속 요소에 의존합니다. 이러한 구성 요소를 확장하면 다양한 요구 사항에 대한 Milvus의 적응성을 향상시킬 수 있습니다.
Milvus 오퍼레이터 사용자의 경우 Milvus 오퍼레이터로 오브젝트 스토리지 구성하기, Milvus 오퍼레이터로 메타 스토리지 구성하기, Milvus 오퍼레이터로 메시지 스토리지 구성을 참조하세요.
MinIO 스케일링
MinIO 포드당 리소스 늘리기
Milvus에서 사용하는 오브젝트 스토리지 시스템인 MinIO는 각 포드마다 CPU와 메모리 리소스를 늘릴 수 있습니다.
# new-values.yaml
minio:
resources:
limits:
cpu: 2
memory: 8Gi
파일을 저장한 후 다음 명령어로 변경 사항을 적용하세요:
helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus
또한 각 MioIO 영구 볼륨 클레임(PVC)에 대해 spec.resources.requests.storage
값을 수동으로 변경하여 MioIO 클러스터의 디스크 용량을 늘릴 수 있습니다. 기본 스토리지 클래스는 볼륨 확장을 허용해야 한다는 점에 유의하세요.
추가 MinIO 서버 풀 추가(권장)
Milvus 인스턴스를 위해 추가 MioIO 서버 풀을 추가하는 것이 좋습니다.
# new-values.yam;
minio:
zones: 2
파일을 저장한 후 다음 명령으로 변경 사항을 적용합니다:
helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus
이렇게 하면 MinIO 클러스터에 추가 서버 풀이 추가되어 각 서버 풀의 여유 디스크 용량에 따라 Milvus가 MinIO 서버 풀에 쓸 수 있습니다. 예를 들어, 3개의 풀로 구성된 그룹에 다음과 같이 풀에 총 10TB의 여유 공간이 분산되어 있는 경우입니다:
여유 공간 | 쓰기 가능성 | |
---|---|---|
풀 A | 3 TiB | 30% (3/10) |
풀 B | 2 TiB | 20% (2/10) |
풀 C | 5 TiB | 50% (5/10) |
MinIO는 새 서버 풀에서 오브젝트를 자동으로 리밸런싱하지 않습니다. 필요한 경우 mc admin rebalance
에서 수동으로 리밸런싱 절차를 시작할 수 있습니다.
Kafka
Kafka 브로커 포드당 리소스 증가
각 브로커 파드의 CPU 및 메모리 리소스를 조정하여 Kafka 브로커 용량을 향상하세요.
# new-values.yaml
kafka:
resources:
limits:
cpu: 2
memory: 12Gi
파일을 저장한 후 다음 명령어로 변경 사항을 적용합니다:
helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus
또한 각 Kafka 영구 볼륨 클레임(PVC)에 대해 spec.resources.requests.storage
값을 수동으로 변경하여 Kafka 클러스터의 디스크 용량을 늘릴 수도 있습니다. 기본 스토리지 클래스가 볼륨 확장을 허용하는지 확인합니다.
추가 Kafka 브로커 풀 추가(권장)
Milvus 인스턴스를 위해 추가 Kafka 서버 풀을 추가하는 것이 좋습니다.
# new-values.yaml
kafka:
replicaCount: 4
파일을 저장한 후 다음 명령으로 변경 사항을 적용합니다:
helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus
이렇게 하면 Kafka 클러스터에 추가 브로커가 추가됩니다.
Kafka는 모든 브로커에서 토픽을 자동으로 리밸런싱하지 않습니다. 필요한 경우 각 Kafka 브로커 포드에 로그인한 후 bin/kafka-reassign-partitions.sh
을 사용하여 모든 Kafka 브로커에서 토픽/파티션의 균형을 수동으로 재조정하세요.
Pulsar
Pulsar는 계산과 스토리지를 분리합니다. Pulsar 브로커(계산)와 Pulsar 부키(저장)의 용량을 독립적으로 늘릴 수 있습니다.
Pulsar 브로커 포드당 리소스 늘리기
# new-values.yaml
pulsar:
broker:
resources:
limits:
cpu: 4
memory: 16Gi
파일을 저장한 후 다음 명령으로 변경 사항을 적용하세요:
helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus
Pulsar 부키 포드당 리소스 늘리기
# new-values.yaml
pulsar:
bookkeeper:
resources:
limits:
cpu: 4
memory: 16Gi
파일을 저장한 후 다음 명령으로 변경 사항을 적용하세요:
helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus
각 Pulsar 부키의 PVC(퍼시스턴트 볼륨 클레임)에 대해 spec.resources.requests.storage
값을 수동으로 변경하여 Pulsar 클러스터의 디스크 용량을 늘릴 수도 있습니다. 기본 스토리지 클래스는 볼륨 확장을 허용해야 한다는 점에 유의하세요.
Pulsar 부키 포드에는 journal
와 legers
의 두 가지 유형의 스토리지가 있습니다. journal
유형의 스토리지의 경우, ssd
또는 gp3
를 스토리지 클래스로 사용하는 것이 좋습니다. 다음은 펄서 저널의 스토리지 클래스를 지정하는 예제입니다.
pulsar:
bookkeeper:
volumes:
journal:
size: 20Gi
storageClassName: gp3
추가 Pulsar 브로커 포드 추가
# new-values.yaml
pulsar:
broker:
replicaCount: 3
파일을 저장한 후 다음 명령어로 변경 사항을 적용합니다:
helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus
추가 Pulsar 부키 포드 추가(권장)
# new-values.yaml
pulsar:
bookkeeper:
replicaCount: 3
파일을 저장한 후 다음 명령어로 변경 사항을 적용합니다:
helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus
etcd
etcd 파드당 리소스 늘리기(권장)
# new-values.yaml
etcd:
resources:
limits:
cpu: 2
memory: 8Gi
파일을 저장한 후, 다음 명령어로 변경 사항을 적용합니다:
helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus
추가 etcd 파드 추가
etcd 파드의 총 개수는 홀수여야 합니다.
# new-values.yaml
etcd:
replicaCount: 5
파일을 저장한 후 다음 명령어로 변경 사항을 적용합니다:
helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus