文档中心 > 聚石塔

应用水平自动伸缩使用说明

更新时间:2023/04/19 访问次数:4532

一、优势以及使用场景


该能力主要针对流量波动比较大的应用,例如电商促销,小程序,外卖等场景。
配置该能力后,应用的实例数量可以随着负载的变化,进行相应的调整,让实例的水位一直处于健康的状态,在流量峰值前扩容保证服务稳定性,在峰值过后缩容,节约计算资源。
该能力已经经过多次双十一验证,稳定可靠,经过统计对于波动较大的应用,使用自动伸缩能力比未使用自动伸缩能力,稳定性提高近一倍。
同时自动伸缩能力可以结合 ECI 一起使用,大幅节约计算资源成本,用户反馈在双十一期间,同时使用自动伸缩与 ECI 节约了 56% 的成本,同时免去了人为扩缩容的成本。


二、使用流程

0. 弹性策略入口


首先进入应用实例的列表页,点击【添加弹性策略】。


1. 添加伸缩策略


首先进入 伸缩策略配置 页面,点击【添加弹性策略】。


image


策略类型 下拉框中有两个类型:“定时策略” 或 “指标策略”。


image


a)定时策略

前置条件

定时伸缩需要安装形影插件才可以使用,插件安装参考:定时伸缩插件安装说明


策略配置


image


表单中的内容解释


表单字段

对应解释

策略名称

不可重名。

cron表达式

仅支持 6 位 cron 表达式。

目标数量

到时间后,系统会自动开始将实例数量调整到该数值。

说明

可为空。


b)指标策略


image


表单中的内容解释


表单字段

对应解释

策略名称

起标识作用,便于区分。

触发条件

至少选择一项,可同时选择。

CPU使用率

单位为百分比,系统会自动控制集群指标水位,尽量维持在该值。

内存使用率

单位为百分比,系统会自动控制集群指标水位,尽量维持在该值。

SLB QPS

指定SLB端口,以及期望的单个实例 QPS 目标值,系统会自动控制应用数量,尽量将维持在该值。

最小应用实例数

确保系统自动控制时,集群中实例数量不会小于该值。

最大应用实例数

确保系统自动控制时,集群中实例数量不会大于该值。


根据需求配置,配置好后,点击保存。

新增配置默认未启用,需要手动点击启用按钮,使该策略生效。

特别说明:QPS 指标需要给应用所在集群安装 自动伸缩增强插件,并且该应用需要绑定 SLB,且 SLB 的协议类型为 HTTP,如下图所示。


image


2. 编辑弹性策略


找到需要编辑的策略,点击操作列下面的编辑。


image


修改如下信息,完成后点击保存。


image


3. 删除弹性策略


找到需要删除的策略,点击操作列下面的删除即可。


image


4. 启用与禁用


点击启用或禁用按钮即可。


image


注意:定时策略与指标策略不可同时启用,定时伸缩策略中的多条策略可同时启用,指标策略中的多条策略不可同时启用。


三、运行机制

1. 定时策略


根据 cron 给定的触发事件,到时间后会将该应用的目标实例数调整到指定大小,最后系统会进行实例调度与启动,不能保证可用实例数达到给定值,因为有可能存在资源不足,应用异常,服务正在启动中等情况。

 

该能力通过 kubernetes-cronhpa-controller 插件提供,更多细节请参考该链接:https://github.com/AliyunContainerService/kubernetes-cronhpa-controller


2. 指标策略


目前提供了三种指标可定义,三种指标可以同时配置或者单独配置,配置后系统会将指标稳定在给定值(有一定的波动范围),同时为了防止因为服务异常导致的 CPU 一直处于高水位,或者过低,从而使得机器数量持续的增加(减少),占用过多资源,因此需要同时设定实例数范围,实例会在该范围内进行伸缩。

该能力通过 k8s 原生 HPA 提供,更多信息可自行查找,目前 HPA 相关策略为默认配置。


FAQ

关于此文档暂时还没有FAQ
返回
顶部