注意:以下文档只适用于TOP接口,请谨慎使用!

文档中心 > 聚石塔

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

更新时间:2022/02/18 访问次数:363

优势以及使用场景

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

使用流程

0、弹性策略入口

首先进入应用实例的列表页,点击 弹性策略配置 

1、添加伸缩策略

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

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

a.定时策略

前置条件

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

策略配置

表单中的内容解释:

策略名称:不可重名

cron表达式:仅支持 6 位 cron 表达式

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

说明:可为空

a.指标策略

表单中的内容解释:

策略名称:起标识作用,便于区分

触发条件:至少选择一项,可同时选择

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

内存使用率:单位为百分比,系统会自动控制集群指标水位,尽量维持在该值

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

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

最大应用实例数:确保系统自动控制时,集群中实例数量不会大于该

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

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

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

2、编辑弹性策略

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

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

3、删除弹性策略

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

4、启用与禁用

点击启用或禁用按钮即可

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

运行机制

定时策略

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


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

指标策略

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

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

FAQ

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