当您使用传统集群运维时,会遇到系统维护成本高、扩缩容速度慢、容量规划难以及资源利用率低等问题。在分布式应用管理中,弹性伸缩能够感知应用内各个实例的状态,并根据实例状态自动增加或减少实例数量,即扩容或缩容。结合SAE应用实例监控,您可以了解资源使用量,选择合适的弹性策略与指标、设置弹性阈值,从而提高资源利用率、降低资源成本。
视频教程
您可以观看以下视频,了解什么是弹性伸缩以及如何在SAE控制台快速使用弹性伸缩策略。
背景信息
配置弹性伸缩策略的全流程如下图所示。
适用场景
SAE支持配置三种类型的弹性伸缩策略。
定时策略:适用于资源使用率有周期性规律的应用场景,多用于证券、医疗、政府和教育等行业。
监控指标策略:适用于突发流量和典型周期性流量的应用场景,多用于互联网、游戏和社交平台等行业。
混合弹性策略:适用于兼备资源使用率有周期性规律和有突发流量、典型周期性流量的应用场景,多用于互联网、教育和餐饮等行业。
注意事项
最多支持创建5条定时策略、1条监控指标策略或1条混合弹性策略,三种策略不能同时使用。
弹性策略启用时,请勿手动进行应用生命周期管理操作,例如应用扩缩、部署应用、更改规格、重启应用和停止应用。如果需要对应用进行该类操作,先停用弹性策略后,再手动执行操作。
如果当前应用处于扩容、缩容、部署(单批、分批或灰度)、更改规格、重启和停止等过程,需等待过程完成后,才可添加或启动弹性策略。
单应用的实例数上限为50。如需提升额度,请加入钉群(钉群号:32874633),申请开通白名单。
查看应用实例监控(邀测)
如果您未使用弹性功能,可以依据应用实例的监控指标趋势,评估是否需要为自己的业务设置弹性策略;如果您正在使用弹性功能,可以通过查看监控指标检验弹性规则启用后的效果,合理调整弹性阈值、设置报警规则。
说明 应用实例趋势图的功能邀测中,如需使用,请加入钉群(钉群号:32874633),申请开通白名单。
登录SAE控制台。
在左侧导航栏,选择,在顶部菜单栏选择地域,然后单击具体应用名称。
在基本信息页签的应用实例趋势图,按需筛选监控维度。
您可以滑动趋势图下方的时间轴,调整数据展示的时间范围;也可以单击左下角的图例,选择数据展示的类别。
配置弹性伸缩策略
警告 应用扩缩容过程中,可能会造成例如业务中断等不可预知的错误。请根据实际业务需求,谨慎配置并启用弹性伸缩策略。为避免上述情况,您可以为应用配置无损上下线。更多信息,请参见设置微服务无损上线和设置微服务无损下线。
登录SAE控制台。
在左侧导航栏,选择,在顶部菜单栏选择地域,然后单击具体应用名称。
在基本信息页面,单击右上角的自动扩缩,进入添加弹性策略面板。
在添加弹性策略面板,设置策略信息。
定时策略
配置项 | 说明 |
策略类型 | 选择定时策略。 |
策略名称 | 自定义。 |
选择时间 | 短期:需要指定执行定时弹性伸缩策略的起止日期。 长期:无需指定执行定时弹性伸缩策略的结束日期。
|
周期 | 执行定时弹性伸缩策略的周期。 每天:每天指定时间执行定时策略。 每周:每周指定天数的指定时间执行定时策略。 每月:每月指定日期的指定时间执行定时策略。
|
单天内的触发时间 | 设置弹性伸缩策略触发的时间,以及该时间段内需要保持的应用实例数。示例如下。 如果周期设为每天,第一条定时策略触发开始时间为08:00,目标实例数为10个;第二条定时策略开始时间为20:00,目标实例数为3个。则在08:00至20:00之间,SAE依据所设的规则,将该应用的实例数保持为10个,在20:00至次日08:00之间,应用实例数保持为3个。 |
监控指标策略
配置项 | 说明 |
策略类型 | 选择监控指标策略。 |
策略名称 | 自定义。 |
触发条件 | 设置以下监控指标中的一个或多个。默认显示CPU使用率和内存使用率指标类型,单击添加设置更多指标。 CPU使用率:单个实例的平均CPU使用率。 内存使用率:单个实例的平均内存使用率 。 TCP活跃连接数:30秒内单个实例的平均TCP活跃连接数。 TCP总连接数:30秒内单个实例的平均TCP总连接数。 应用QPS:1分钟内单个实例的平均QPS。 应用响应时间(RT):1分钟内应用所有服务接口平均RT值。 公网CLB QPS:15秒内单个实例的平均公网CLB QPS。 公网CLB响应时间:15秒内公网CLB平均RT。 私网CLB QPS:15秒内单个实例的平均私网CLB QPS。 私网CLB响应时间:15秒内私网CLB平均RT。
说明 当应用监控页面最近30分钟内有应用QPS或应用响应时间(RT)数据时,才可以设置应用QPS或应用响应时间(RT)指标。 当设置多个监控指标时,只要任何一个指标大于或者等于目标值,则应用进行扩容,扩容后实例数不高于应用最大实例数;如果所有指标均小于目标值,则应用进行缩容,缩容后实例数不低于应用最小实例数。 设置CLB的相关指标前,您需要为应用绑定CLB,并配置访问日志。其中,CLB监听端口需配置为HTTP协议或HTTPS协议。具体操作,请参见为应用绑定CLB和开通访问日志功能。
|
实例数设置 | 输入实例数或者滑动下方的指针设置实例数。 应用最小实例数:触发弹性伸缩条件后,应用缩容,其实例数可达到的目标值。 应用最大实例数:触发弹性伸缩条件后,应用扩容,其实例数可达到的目标值。 最小存活实例数:每次部署最小存活的实例数。取值需大于等于0,且小于等于当前应用实例总数。仅当应用最小实例数小于应用最小存活实例数时,才会显示该配置项。单击设置,在设置最小存活实例数对话框设置最小存活实例数量。
说明 手动扩缩与添加弹性策略能够设置的最大实例数同步。每次滚动部署最小存活的实例数建议大于等于1,保证业务不中断。如果设置为0,应用升级过程中业务将会中断。 |
高级设置 | 弹性扩容步长:单位时间内最多扩容的实例数。 弹性缩容步长:单位时间内最多缩容的实例数。 扩容稳定窗口:稳定窗口期系统趋于维稳状态。通过自动扩缩算法来保证当需要执行扩容时,使用指定时间间隔内所计算的期望目标实例数中的最小值。 缩容稳定窗口:稳定窗口期系统趋于维稳状态。通过自动扩缩算法来保证当需要执行缩容时,使用指定时间间隔内所计算的期望目标实例数中的最大值。 禁止缩容:开启后将永远不会缩容该应用的实例,能有效防止在流量高峰期缩容造成业务风险。默认关闭。
|
混合弹性策略
配置项 | 说明 |
策略类型 | 选择混合弹性策略。 |
策略名称 | 自定义。 |
触发条件 | 设置以下监控指标中的一个或多个。默认显示CPU使用率和内存使用率指标类型,单击添加设置更多指标。 CPU使用率:单个实例的平均CPU使用率。 内存使用率:单个实例的平均内存使用率 。 TCP活跃连接数:30秒内单个实例的平均TCP活跃连接数。 TCP总连接数:30秒内单个实例的平均TCP总连接数。 应用QPS:1分钟内单个实例的平均QPS。 应用响应时间(RT):1分钟内应用所有服务接口平均RT值。 公网CLB QPS:15秒内单个实例的平均公网CLB QPS。 公网CLB响应时间:15秒内公网CLB平均RT。 私网CLB QPS:15秒内单个实例的平均私网CLB QPS。 私网CLB响应时间:15秒内私网CLB平均RT。
说明 当应用监控页面最近30分钟内有应用QPS或应用响应时间(RT)数据时,才可以设置应用QPS或应用响应时间(RT)指标。 当设置多个监控指标时,只要任何一个指标大于或者等于目标值,则应用进行扩容,扩容后实例数不高于应用最大实例数;如果所有指标均小于目标值,则应用进行缩容,缩容后实例数不低于应用最小实例数。 设置CLB的相关指标前,您需要为应用绑定CLB,并配置访问日志。其中,CLB监听端口需配置为HTTP协议或HTTPS协议。具体操作,请参见为应用绑定CLB和开通访问日志功能。
|
应用最大最小实例数设置 |
默认设置 | 设置应用实例数。 应用最小实例数:触发弹性伸缩条件后,应用缩容,其实例数可达到的目标值。 应用最大实例数:触发弹性伸缩条件后,应用扩容,其实例数可达到的目标值。 最小存活实例数:每次部署最小存活的实例数。取值需大于等于0,且小于等于当前应用实例总数。仅当应用最小实例数小于应用最小存活实例数时,才会显示该配置项。单击设置,在设置最小存活实例数对话框设置最小存活实例数量。
说明 手动扩缩与添加弹性策略能够设置的最大实例数同步。每次滚动部署最小存活的实例数建议大于等于1,保证业务不中断。如果设置为0,应用升级过程中业务将会中断。 |
特殊时间段设置 | 给特定的时间段设置特定的实例最大最小值。默认显示选择时间1。单击+添加特殊时间段,设置选择时间2。 短期:需要指定执行定时弹性伸缩策略的起止日期。 长期:无需指定执行定时弹性伸缩策略的结束日期。
|
周期 | 在周期下拉列表,选择每天、每周或每月,并配置相应信息。 每天:每天指定时间执行定时策略。 每周:每周指定天数的指定时间执行定时策略。 每月:每月指定日期的指定时间执行定时策略。
|
单天内的触发时间 | 设置弹性伸缩策略触发的时间,以及该时间段内需要保持的应用实例数。示例如下。 如果周期设为每天,特殊时间段触发时间为08:00~20:00,应用最小实例数为3个,应用最大实例数为10个,那么基于已配置的触发条件,SAE在指定的日期内会执行以上定时弹性伸缩策略。 |
高级设置 | 弹性扩容步长:单位时间内最多扩容的实例数。 弹性缩容步长:单位时间内最多缩容的实例数。 扩容稳定窗口:稳定窗口期系统趋于维稳状态。通过自动扩缩算法来保证当需要执行扩容时,使用指定时间间隔内所计算的期望目标实例数中的最小值。 缩容稳定窗口:稳定窗口期系统趋于维稳状态。通过自动扩缩算法来保证当需要执行缩容时,使用指定时间间隔内所计算的期望目标实例数中的最大值。 禁止缩容:开启后将永远不会缩容该应用的实例,能有效防止在流量高峰期缩容造成业务风险。默认关闭。
|
单击下一步:预览定时策略确认策略信息,然后单击确认。
策略设置完成后,在实例部署信息页签的弹性伸缩区域,单击目标策略操作列的启用。
在启用弹性策略对话框,单击确认,启用该策略。
验证弹性伸缩策略
启用弹性策略后,SAE会自动监控应用状态,当满足触发条件时,SAE依据弹性策略进行应用实例扩容或缩容。您可以通过以下步骤验证弹性伸缩策略是否生效。
登录SAE控制台。
在左侧导航栏,单击应用列表,在顶部菜单栏,选择地域,然后在应用列表页面,找到目标应用。
可以在弹性策略启用状态和当前实例数/目标实例数列查看弹性策略的运行状态;也可以单击目标名称,在基本信息页签的应用信息区域,查看应用运行实例数。
如果运行实例数与弹性策略设置的实例数一致,说明弹性策略已生效。
可选:在左侧导航栏,单击应用事件,在全部来源类型下拉列表,选择自动弹性(HorizontalPodAutoscaler),查看弹性伸缩原因。
更多操作
为应用配置弹性伸缩策略后,您可以在实例部署信息页签,查看已配置策略的详细信息。
登录SAE控制台。
在左侧导航栏,选择,在顶部菜单栏选择地域,然后单击具体应用名称。
在基本信息页面,单击实例部署信息页签,展开弹性伸缩折叠区域,然后在指定策略的操作列,按需进行启停、编辑、删除等操作。