扩展 Milvus 依赖项
Milvus 依赖于 MinIO、Kafka、Pulsar 和 etcd 等各种依赖项。通过扩展这些组件,可以让 Milvus 适配不同的数据规模与工作负载。
Milvus Operator 用户请参阅配置 Object Storage、配置 Meta storage和配置消息存储。
扩展 MinIO
增加每个 MinIO Pod 的资源
MinIO 是 Milvus 使用的 Object Storage 系统,可以为每个 Pod 增加 CPU 和内存资源。
# new-values.yaml
minio:
resources:
limits:
cpu: 2
memory: 8Gi
保存文件后,使用以下命令应用更改:
helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus
还可以手动调整每个 MinIO PersistentVolumeClaim(PVC)的 spec.resources.requests.storage,以扩展 MinIO 集群的磁盘容量。默认 StorageClass 必须支持卷扩容。
添加额外的 MinIO 服务器池(推荐)
建议您为 Milvus 实例添加一个额外的 MinIO 服务器池。
# new-values.yaml
minio:
zones: 2
保存文件后,使用以下命令应用更改:
helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus
该配置会为 MinIO 集群添加一个额外的服务器池,允许 Milvus 根据每个服务器池的可用磁盘容量写入 MinIO 服务器池。例如,如果一个由三个服务器池组成的集群共有 10 TiB 可用空间,各服务器池的分配情况如下:
| 可用空间 | 写入比例 | |
|---|---|---|
| Pool A | 3 TiB | 30% (3/10) |
| Pool B | 2 TiB | 20% (2/10) |
| Pool C | 5 TiB | 50% (5/10) |
MinIO 不会自动重新平衡新服务器池中的对象。如有需要,您可以通过 mc admin rebalance 手动启动重新平衡程序。
Kafka
增加每个 Kafka Broker Pod 的资源
通过调整每个 Kafka Broker Pod 的 CPU 和内存资源来提高 Kafka Broker 的容量。
# new-values.yaml
kafka:
resources:
limits:
cpu: 2
memory: 12Gi
保存文件后,使用以下命令应用更改:
helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus
还可以手动调整每个 Kafka PersistentVolumeClaim(PVC)的 spec.resources.requests.storage,以扩展 Kafka 集群的磁盘容量。默认 StorageClass 必须支持卷扩容。
添加额外的 Kafka Broker(推荐)
建议您为 Milvus 实例添加一个额外的 Kafka Broker。
# new-values.yaml
kafka:
replicaCount: 4
保存文件后,使用以下命令应用更改:
helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus
该配置会为 Kafka 集群添加一个额外的 Kafka Broker。
Kafka 不会自动在所有 Broker 之间重新平衡 Topic。如果需要,请在登录每个 Kafka Broker Pod 后使用 bin/kafka-reassign-partitions.sh 手动重新平衡所有 Kafka Broker 上的 Topic/Partition。
Pulsar
Pulsar 分离了计算和存储。您可以独立增加 Pulsar Broker(计算)和 Pulsar Bookie(存储)的容量。
增加每个 Pulsar Broker Pod 的资源
# new-values.yaml
pulsar:
broker:
resources:
limits:
cpu: 4
memory: 16Gi
保存文件后,使用以下命令应用更改:
helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus
增加每个 Pulsar Bookie Pod 的资源
# new-values.yaml
pulsar:
bookkeeper:
resources:
limits:
cpu: 4
memory: 16Gi
保存文件后,使用以下命令应用更改:
helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus
还可以手动调整每个 Pulsar Bookie PersistentVolumeClaim(PVC)的 spec.resources.requests.storage,以扩展 Pulsar 集群的磁盘容量。默认 StorageClass 必须支持卷扩容。
Pulsar Bookie Pod 有两种存储类型:journal 和 ledgers。对于 journal 类型的存储,可考虑使用 ssd 或 gp3 作为存储类。下面是一个为 Pulsar Journal 指定 StorageClass 的示例。
pulsar:
bookkeeper:
volumes:
journal:
size: 20Gi
storageClassName: gp3
添加额外的 Pulsar Broker Pod
# new-values.yaml
pulsar:
broker:
replicaCount: 3
保存文件后,使用以下命令应用更改:
helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus
添加一个额外的 Pulsar Bookie Pod(推荐)
# new-values.yaml
pulsar:
bookkeeper:
replicaCount: 3
保存文件后,使用以下命令应用更改:
helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus
etcd
增加每个 etcd Pod 的资源(推荐)
# new-values.yaml
etcd:
resources:
limits:
cpu: 2
memory: 8Gi
保存文件后,使用以下命令应用更改:
helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus
增加额外的 etcd Pod
etcd Pod 的总数应为奇数。
# new-values.yaml
etcd:
replicaCount: 5
保存文件后,使用以下命令应用更改:
helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus