扩展 Milvus 依赖组件
Milvus 依赖于各种组件,如 MinIO、Kafka、Pulsar 和 etcd。扩展这些组件可以增强 Milvus 对不同需求的适应性。
对于 Milvus Operator 用户,请参考 使用 Milvus Operator 配置对象存储、使用 Milvus Operator 配置元数据存储 和 使用 Milvus Operator 配置消息存储。
扩展 MinIO
增加每个 MinIO pod 的资源
MinIO 是 Milvus 使用的对象存储系统,可以为每个 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 持久卷声明(PVC)的 spec.resources.requests.storage
值来增加 MinIO 集群的磁盘容量。请注意,您的默认存储类应该允许卷扩展。
添加额外的 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 代理 pod 的资源
通过为每个代理 pod 调整 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 代理 pod 后使用 bin/kafka-reassign-partitions.sh
手动重新平衡所有 Kafka 代理之间的主题/分区。
Pulsar
Pulsar 分离计算和存储。您可以独立增加 Pulsar 代理(计算)和 Pulsar bookies(存储)的容量。
增加每个 Pulsar 代理 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 的持久卷声明(PVC)的 spec.resources.requests.storage
值来增加 Pulsar 集群的磁盘容量。请注意,您的默认存储类应该允许卷扩展。
一个 Pulsar bookie pod 有两种类型的存储:journal
和 ledgers
。对于 journal
类型的存储,考虑使用 ssd
或 gp3
作为存储类。以下是为 pulsar journal 指定存储类的示例。
pulsar:
bookkeeper:
volumes:
journal:
size: 20Gi
storageClassName: gp3
添加额外的 Pulsar 代理 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