管理员手册 (Administration Guide)
扩展依赖(Scale-dependencies)

规模化依赖关系

Milvus 依赖于各种组件,如 MinIO、Kafka、Pulsar 和 etcd。对这些组件进行规模化操作可以增强 Milvus 适应不同需求的能力。

对于 Milvus Operator 用户,请参考 管理 Milvus Operator 的依赖关系

规模化 MinIO

增加每个 MinIO pod 的资源

Milvus 使用的对象存储系统 MinIO 可以为每个 pod 增加 CPU 和内存资源。

# new-values.yaml
minio:
  resources:
     limits:
       cpu: 2
       memory: 8Gi

保存文件后,使用以下命令应用更改:

helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus

你还可以通过手动更改每个 MioIO Persistent Volume Claim(PVC)的 spec.resources.requests.storage 值,以增加 MioIO 集群的磁盘容量。请注意,你的默认存储类应允许容量扩展。

添加额外的 MinIO 服务器池(推荐)

建议为 Milvus 实例添加额外的 MioIO 服务器池。

# new-values.yaml
minio:
  zones: 2

保存文件后,使用以下命令应用更改:

helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus

这将向你的 MinIO 集群添加一个额外的服务器池,允许 Milvus 根据每个服务器池的空闲磁盘容量向 MinIO 服务器池中写入。例如,如果一个由三个池组成的组具有总共 10 TiB 的自由空间,并分布在以下各个池中:

剩余空间写入概率
Pool A3 TiB30% (3/10)
Pool B2 TiB20% (2/10)
Pool C5 TiB50% (5/10)

MinIO 不会自动在新的服务器池中重新平衡对象。如果需要,你可以手动使用 mc admin rebalance 命令启动重新平衡过程。

Kafka

增加每个 Kafka broker pod 的资源

通过调整每个 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 Persistent Volume Claim(PVC)的 spec.resources.requests.storage 值,以增加 Kafka 集群的磁盘容量。确保你的默认存储类允许卷扩展。

添加额外的 Kafka broker 池(推荐)

You are advised to add an extra Kafka server pool for your Milvus instance.

# new-values.yaml
kafka:
  replicaCount: 4

After saving the file, apply the changes with the following command:

helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus

This will add an extra broker to your Kafka cluster.

Kafka does not automatically rebalance topics across all brokers. Manually rebalance topics/partitions across all Kafka brokers using bin/kafka-reassign-partitions.sh after logging into each Kafka broker pod if needed.

Pulsar

Pulsar separates computation and storage. You can independently increase the capacity of Pulsar brokers (computation) and Pulsar bookies (storage).

增加每个 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 的持久卷索取(PVC)的 spec.resources.requests.storage 值来增加 Pulsar 集群的磁盘容量。请注意,你的默认存储类应允许卷扩展。

Pulsar bookie pod 有两种类型的存储:journallegers。对于 journal 类型的存储,建议使用 ssdgp3 作为存储类。

添加额外的 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 pods

总的 etcd pod 数量应该是奇数。

# new-values.yaml
etcd:
  replicaCount: 5

保存文件后,使用以下命令应用更改:

helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus