该能力主要针对流量波动比较大的应用,例如电商促销,小程序,外卖等场景。
配置该能力后,应用的实例数量可以随着负载的变化,进行相应的调整,让实例的水位一直处于健康的状态,在流量峰值前扩容保证服务稳定性,在峰值过后缩容,节约计算资源。
该能力已经经过多次双十一验证,稳定可靠,经过统计对于波动较大的应用,使用自动伸缩能力比未使用自动伸缩能力,稳定性提高近一倍。
同时自动伸缩能力可以结合 ECI 一起使用,大幅节约计算资源成本,用户反馈在双十一期间,同时使用自动伸缩与 ECI 节约了 56% 的成本,同时免去了人为扩缩容的成本。
首先进入应用实例的列表页,点击【添加弹性策略】。
首先进入 伸缩策略配置 页面,点击【添加弹性策略】。
策略类型 下拉框中有两个类型:“定时策略” 或 “指标策略”。
定时伸缩需要安装形影插件才可以使用,插件安装参考:定时伸缩插件安装说明。
表单中的内容解释
表单字段 |
对应解释 |
策略名称 |
不可重名。 |
cron表达式 |
仅支持 6 位 cron 表达式。 |
目标数量 |
到时间后,系统会自动开始将实例数量调整到该数值。 |
说明 |
可为空。 |
表单中的内容解释
表单字段 |
对应解释 |
策略名称 |
起标识作用,便于区分。 |
触发条件 |
至少选择一项,可同时选择。 |
CPU使用率 |
单位为百分比,系统会自动控制集群指标水位,尽量维持在该值。 |
内存使用率 |
单位为百分比,系统会自动控制集群指标水位,尽量维持在该值。 |
SLB QPS |
指定SLB端口,以及期望的单个实例 QPS 目标值,系统会自动控制应用数量,尽量将维持在该值。 |
最小应用实例数 |
确保系统自动控制时,集群中实例数量不会小于该值。 |
最大应用实例数 |
确保系统自动控制时,集群中实例数量不会大于该值。 |
根据需求配置,配置好后,点击保存。
新增配置默认未启用,需要手动点击启用按钮,使该策略生效。
特别说明:QPS 指标需要给应用所在集群安装 自动伸缩增强插件,并且该应用需要绑定 SLB,且 SLB 的协议类型为 HTTP,如下图所示。
找到需要编辑的策略,点击操作列下面的编辑。
修改如下信息,完成后点击保存。
找到需要删除的策略,点击操作列下面的删除即可。
点击启用或禁用按钮即可。
注意:定时策略与指标策略不可同时启用,定时伸缩策略中的多条策略可同时启用,指标策略中的多条策略不可同时启用。
根据 cron 给定的触发事件,到时间后会将该应用的目标实例数调整到指定大小,最后系统会进行实例调度与启动,不能保证可用实例数达到给定值,因为有可能存在资源不足,应用异常,服务正在启动中等情况。
该能力通过 kubernetes-cronhpa-controller 插件提供,更多细节请参考该链接:https://github.com/AliyunContainerService/kubernetes-cronhpa-controller
目前提供了三种指标可定义,三种指标可以同时配置或者单独配置,配置后系统会将指标稳定在给定值(有一定的波动范围),同时为了防止因为服务异常导致的 CPU 一直处于高水位,或者过低,从而使得机器数量持续的增加(减少),占用过多资源,因此需要同时设定实例数范围,实例会在该范围内进行伸缩。
该能力通过 k8s 原生 HPA 提供,更多信息可自行查找,目前 HPA 相关策略为默认配置。