创建自定义弹性伸缩策略
自定义弹性伸缩策略通过多条按时间执行的规则,在指定时间把节点数调整到目标值,适用于负载有明确时间规律的场景。例如白天写入高峰扩容Data Node、夜间缩容,既避免高峰期索引构建慢、查询抖动,也避免低峰期资源闲置。
使用限制
该策略在控制台的弹性伸缩配置页面显示为自动弹性伸缩规则 (按时间)。阿里云Milvus同一实例在同一时间只能启用一种弹性伸缩策略:如果业务负载没有固定的时间规律,建议改用托管弹性伸缩,由系统在设定的容量范围内自动判断伸缩时机,配置方法请参见创建托管弹性伸缩策略。切换策略后,原策略的规则会停止生效,但不会被删除。
实例规格为标准版,入门版不支持弹性伸缩。
实例状态为运行中,其他状态下弹性伸缩策略不可配置。
引擎版本满足节点类型对应的最低版本要求,详情请参见下表。若实例详情页不展示弹性伸缩页签,表示当前实例的版本或规格不支持弹性伸缩。
单个节点类型最多配置10条弹性规则,且同一节点类型不允许在同一时间配置多条规则。
单个实例只有一个执行时区,规则的执行时间基于该时区(例如 Asia/Shanghai),不做跨时区转换。
元数据服务不支持弹性伸缩。可配置的节点类型随实例版本、规格和部署形态变化,以页面实际展示为准。
各节点类型支持弹性伸缩的最低引擎版本如下。
节点类型 | 2.4 | 2.5 | 2.6 |
Data Node | 2.4.23-0.4.3_3.8.0 及以上 | 2.5.12-0.6.2_3.8.0 及以上 | 支持 |
Index Node | 2.4.23-0.4.3_3.8.0 及以上 | 2.5.12-0.6.2_3.8.0 及以上 | - |
Query Node | 2.4.23-0.5.0_3.11.0 及以上 | 2.5.12-0.7.0_3.11.0 及以上 | 2.6.18-0.1.3_3.11.0 及以上 |
Proxy Node | 2.4.23-0.5.0_3.11.0 及以上 | 2.5.12-0.7.0_3.11.0 及以上 | 2.6.18-0.1.3_3.11.0 及以上 |
Streaming Node | - | - | 2.6.18-0.1.3_3.11.0 及以上 |
元数据服务 | 不支持 | 不支持 | 不支持 |
低于上述版本的实例升级引擎版本后即可使用弹性伸缩,操作请参见升级版本。
计费说明
包年包月实例:实例总资源量 = 基础资源量 + 弹性资源量。基础资源量(包年包月)不参与弹性伸缩;弹性资源量采用按量计费,需先手动开通按量资源组。
按量计费实例:默认已开通按量资源组,不区分基础资源与弹性资源,所有资源均视为按量资源组内资源。
弹性扩出的节点按实际使用时长计费,缩容释放节点后停止计费。
步骤一:进入弹性伸缩页面
登录阿里云Milvus控制台。
在左侧导航栏,单击实例列表。
在顶部菜单栏,选择目标地域。
在实例列表中,单击目标实例名称。
在实例详情页,单击弹性伸缩页签。
步骤二:(可选)开通按量资源组
弹性规则使用的弹性资源采用按量计费模式。按量计费实例默认已开通按量资源组,可跳过本步骤;包年包月实例需先开通按量资源组,才能配置弹性规则。
在弹性伸缩配置页面,查看按量资源组的状态。
若状态为未开通,单击开通按量资源组,并在确认对话框中单击确认。
开通后,可单击配置按量资源组手动调整按量资源组的节点数:
扩容:节点数上限为50个,双可用区高可用实例步长为2。按量资源组的节点规格与基础资源一致,不支持修改。
缩容:节点数下限为0,双可用区高可用实例步长为2。
说明弹性伸缩期间实例会短暂进入弹性扩容或弹性缩容状态,此期间无法对实例执行其他变配操作;规则处于执行中状态时,不允许编辑、停用或删除该规则。
步骤三:新增弹性规则
在弹性伸缩配置页面,选择自动弹性伸缩规则 (按时间)。
单击新增弹性规则。
在弹出的新增弹性规则对话框中配置以下参数,然后单击确定。
参数 | 说明 |
规则名称 | 必填。长度为1~64个字符,不支持特殊字符;同一实例内规则名称不允许重复。 |
执行间隔 | 必填。选择每天时,指定24小时制的执行时间点,精确到分钟,规则每天执行一次;选择使用 Cron 表达式时,通过标准5位 Cron 表达式自定义执行计划,适用于更灵活的调度场景。 |
节点类型 | 必选,单选。规则生效时需要伸缩的节点类型,例如 Data Node。可选项以页面实际展示为准。 |
节点规格 | 弹性节点的规格,由实例当前资源规格决定,不支持在本对话框中修改。 |
弹性资源量(节点数) | 规则生效时,选定节点类型的按量资源量将被调整到该目标值。包年包月实例取值范围为0~50;按量计费实例的下限为该节点类型的最小节点数(Data Node 为1,Index Node 为1,Streaming Node 为2),上限为50。双可用区高可用实例的节点数步长为2。 |
单个节点类型的弹性规则数量达到上限(10条)后无法继续创建,需先删除部分规则。
配置示例
以下两条规则为 Data Node 配置日间扩容、夜间缩容:每天09:00扩容至2个弹性节点应对写入高峰,每天22:00缩容至0释放资源。
参数 | 示例一:日间扩容 | 示例二:夜间缩容 |
规则名称 | day-scale-out | night-scale-in |
执行间隔 | 每天 09:00 | 每天 22:00 |
节点类型 | Data Node | Data Node |
弹性资源量(节点数) | 2 | 0 |
管理弹性规则
规则创建后展示在自动弹性伸缩规则 (按时间)列表中,列表展示规则的规则 ID / 规则名称、节点类型、目标资源量和执行周期,并在操作列提供以下操作。
编辑规则
找到目标规则,单击修改。
在弹出的编辑弹性规则对话框中修改参数,然后单击确定。
节点类型不可修改,其余参数均可调整。规则处于执行中状态时不允许编辑。
启用或停用规则
通过切换规则的启用或停用状态控制规则是否生效,无需删除规则。找到目标规则,单击启用或停用,并在确认对话框中确认。
停用后该规则不再触发弹性伸缩活动,已经执行的伸缩结果不受影响。规则处于执行中状态时不允许切换状态。
删除规则
找到目标规则,单击删除,并在确认对话框中确认。
删除后该规则不再触发弹性伸缩活动,已经执行的伸缩结果不受影响。规则处于执行中状态时不允许删除。
修改执行时区
在弹性伸缩配置页面,单击切换时区。
选择目标时区,单击确定。
实例下存在弹性规则时无法修改时区,需先清空全部弹性规则。
查看历史伸缩活动
在弹性伸缩页签,单击弹性伸缩概览,查看历史弹性伸缩记录。
字段 | 说明 |
规则名称 | 触发本次伸缩活动的规则名称。 |
组件类型 | 本次伸缩涉及的节点类型。 |
状态 | 伸缩活动的执行状态,包括待执行、执行中、成功、失败、已拒绝和已取消。 |
开始时间、结束时间 | 伸缩活动的开始和结束时间。 |
描述 | 伸缩活动的详细描述信息,伸缩失败时可据此定位原因。 |
常见问题
弹性伸缩会影响正在运行的查询和写入吗?
不会中断正在运行的查询和写入链路。扩容主要涉及新增节点的分配和初始化,通常只需几分钟,完成后实例会自动进行数据再平衡。缩容采用优雅下线(Decommission)机制:系统先将被移除节点上的数据迁移到剩余节点,确认数据完整后才释放节点资源,迁移时间受集群负载影响,优雅下线超时时间默认为1小时,超时后系统将强制完成缩容。