扩展 Milvus 集群
Milvus 支持其组件的水平扩展。这意味着你可以根据自己的需要增加或减少每种类型的工作节点数量。
本主题介绍如何扩展 Milvus 集群。我们假定您在扩展之前已经安装了 Milvus 群集。此外,我们建议您在开始之前先熟悉一下Milvus的架构。
本教程以扩展三个查询节点为例。要扩展其他类型的节点,请在命令行中将queryNode
替换为相应的节点类型。
有关如何使用 Milvus Operator 扩展群集的信息,请参阅使用 Milvus Operator 扩展群集。
什么是水平扩展?
水平扩展包括向外扩展和向内扩展。
向外扩展
向外扩展是指增加群集中的节点数量。与向上扩展不同,向外扩展不需要为群集中的一个节点分配更多资源。相反,向外扩展是通过添加更多节点来横向扩展群集。
扩展
扩展
根据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
手动缩减查询节点。
如果成功,将在查询节点上添加三个正在运行的 pod,如下图所示。
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
扩展查询节点。
如果成功,查询节点上的三个运行 pod 将缩减为一个,如下例所示。
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 服务并创建警报:
如果您已准备好在云上部署集群:
如果您正在寻找如何分配资源的说明: