弹性伸缩
创建容器服务
首先创建一个完整的应用,可采用以下方式,如下图所示。

本文以镜像仓库的方式创建应用为例,来创建一个容器应用,其他方式以及详情,可参考容器应用指南)。具体的步骤如下:
(1) 登录控制台,进入租户,点击上部导航的[所有产品]菜单展示该租户所有可见菜单。
(2) 点击[容器服务/容器应用],进入应用列表页面。
(3) 单击<创建应用>按钮,配置应用相关的参数。
(4) 基础信息配置完成后,进入容器组配置页面,用户可根据业务需要配置对应的参数,参数配置页面如下图所示。根据业务要求配置常用参数,以及相应的高级设置。

具体的参数配置用户可参看容器应用通过镜像仓库创建应用。
(5) 容器组参数配置完成后,配置所需的高级设置参数。如下图所示。具体的参数配置用户可参看容器应用通过镜像仓库创建应用相关描述。

(6) 以上参数配置完成后,单击<创建>按钮服务,服务新建成功,用户可根据业务需要创建多个服务,本例中创建一个服务。
为服务添加自动伸缩策略
系统支持自定义扩展策略、收缩策略满足了用户周期性变化的资源需求,具体的配置如下所示。
HPA(水平伸缩)
(1) 点击上部导航的[所有产品]菜单展示该租户所有可见菜单,点击其中[容器服务/容器应用/服务],进入“容器服务”页面,点击具体服务的名称链接,进入到服务详情页,再点击服务详情页具体服务的名称链接,进入服务部署详情页面。
(2) 选择“弹性伸缩页签”,切换至“自动伸缩策略”页签,进入弹性策略新增页面,单击<添加>按钮添加一个伸缩策略。
(3) 选择使用VPA(垂直伸缩)/HPA(水平伸缩),其中VPA指的是增减单个实例可以使用的CPU、内存资源和QPS,从而让集群将Pod调度到有足够资源的最佳节点上;HPA指的是通过增减实例数目,实现资源的最佳调度。如果选择“水平伸缩(HPA)”。
QPS:一个特定的查询服务器在规定时间内所处理流量多少。阈值统计服务通过“负载均衡”的QPS,若绑定了多个LB,则统计为QPS之和。
(4) 最大实例选择10 ,阈值选择CPU使用率超过80%,来表示所有实例平均CPU使用率超过80%自动扩展,运行实例减1个实例的平均值低于阈值时自动收缩。
为保证集群服务目录安装部署所需插件后,插件可以正常运行,设置弹性伸缩时最小实例数要≥ 1 。
(5)(可选)用户执行发送邮件的相应配置,可以选择“伸缩时发送邮件”、“扩展时发送邮件”、“收缩时发送邮件”、“不发送邮件”。
(6)(可选)如果所需资源较大,可设置自定义扩展策略。
- 扩展策略支持“策略取最大值”、“不自动扩展”。
- 配置最多两个扩展策略,配置超过设定阈值时每个计算周期内允许增加的容器组的数量或者当前容器组的百分比。
(7) 配置“稳定窗口期”,在稳定窗口时间内,系统会禁止扩展策略。(可选)如果所需资源较少,可设置自定义收缩策略。
- 收缩策略支持“策略取最大值”、“策略取最小值”、“不自动扩展”。
- 配置最多两个收缩策略,配置超过设定阈值时每个计算周期内允许减少的容器组的数量或者当前容器组的百分比。
- 配置“稳定窗口期”,在稳定窗口时间内,系统会禁止收缩策略。
(8) 单击<保存>即可生效。

通过访问服务增加容器实例的CPU负载,使CPU使用率升高至80%触发自动伸缩策略,实例增至最大值10个不再增加。
停止访问服务,一段时间后服务的平均使用率已降到80%以下,容器实例数量将缩至最小实例值1个。
如果启用了自定义策略,以扩展策略为例,策略取最大值,在用户设定的每个周期内根据阈值扩展容器组的数量。
VPA(垂直伸缩)
(1) 点击上部导航的[所有产品]菜单展示该租户所有可见菜单,点击其中[[容器服务/容器应用/服务],进入“容器服务”页面,点击具体服务的名称链接,进入到服务详情页,再点击服务详情页具体服务的名称链接,进入服务部署详情页面。
(2) 选择“弹性伸缩页签”,切换至“自动伸缩策略”页签,进入弹性策略新增页面,单击<添加>按钮添加一个伸缩策略。
(3) 选择使用VPA(垂直伸缩),VPA指的是增减单个实例可以使用的CPU和内存资源,从而让集群将Pod调度到有足够资源的最佳节点上,如果选择“垂直伸缩(VPA)”。

- 根据推荐手动伸缩:推荐的requests和limits大小进行手动伸缩。
- 动态伸缩:根据容器使用资源自动调整负载资源的大小。
- 推荐条件:用户可以近一天资源使用的突发值或者平均值进行条件的设定;其中突发值适用于经常有波峰波谷的业务场景,平均值适用于业务比较平稳的场景。
- 推荐容器:推荐运行当前deployment的容器。
- 实际使用量:实际资源的使用情况。
- 内存/CPU当前requests值与推荐值相差:以柱状图的形式统计当前requests值与推荐值的差值。
- 去修改配置:用户可以根据业务需求修改所选容器的资源大小。
(4) 以上参数配置完成后,单击<保存>按钮,弹性伸缩策略配置完成。
定时伸缩策略
如果用户面对的是规律性资源需求增长的场景,用户就可根据业务需要,设定不止一个定时弹性伸缩策略,配置页面如下图所示。

时间:选择执行定时伸缩的具体时间。
重复选择重复方式为周期执行或者仅执行一次。
内容:配置每次定时伸缩要设置的副本数。
伸缩日志
日志包含创建、删除策略、扩展实例、收缩实例等。
伸缩事件
事件就是k8s event记录k8s中对资源的操作事件,伸缩事件记录了伸缩操作相关的时间信息。
管理员需要在对应的集群安装cronhpa-controller等插件,用户方可正常使用定时伸缩策略等功能。