全部产品
Search
文档中心

Serverless 应用引擎:配置弹性伸缩策略

更新时间:Sep 03, 2024

当您使用传统集群运维时,会遇到系统维护成本高、扩缩容速度慢、容量规划难以及资源利用率低等问题。在分布式应用管理中,弹性伸缩能够感知应用内各个实例的状态,并根据实例状态自动增加或减少实例数量,即扩容或缩容。结合SAE应用实例监控,您可以了解资源使用量,选择合适的弹性策略与指标、设置弹性阈值,从而提高资源利用率、降低资源成本。

前提条件

已部署应用

背景信息

SAE弹性伸缩支持以下方式:

  • 手动扩缩:当应用扩缩容为紧急需求时,例如突发性的流量高峰,您可以选择手动扩缩方式。具体操作,请参见手动扩缩

  • 自动扩缩:当应用扩缩容为非紧急需求时,例如周期性的流量高峰,您可以选择自动扩缩方式,即配置弹性伸缩策略。SAE弹性伸缩策略包括定时弹性策略、监控指标弹性策略和混合弹性策略。更多信息,请参见SAE弹性伸缩最佳实践

配置弹性伸缩策略的全流程如下图所示。dg_sae_auto_scaling_rule

适用场景

SAE支持配置三种类型的弹性伸缩策略。

  • 定时策略:适用于资源使用率有周期性规律的应用场景,多用于证券、医疗、政府和教育等行业。

  • 监控指标策略:适用于突发流量和典型周期性流量的应用场景,多用于互联网、游戏和社交平台等行业。

  • 混合弹性策略:适用于兼备资源使用率有周期性规律和有突发流量、典型周期性流量的应用场景,多用于互联网、教育和餐饮等行业。

注意事项

  • 最多支持创建5条定时策略、1条监控指标策略或1条混合弹性策略,三种策略不能同时使用。

  • 弹性策略启用时,请勿手动进行应用生命周期管理操作,例如应用扩缩、部署应用、更改规格、重启应用和停止应用。如果需要对应用进行该类操作,先停用弹性策略后,再手动执行操作。

  • 如果当前应用处于扩容、缩容、部署(单批、分批或灰度)、更改规格、重启和停止等过程,需等待过程完成后,才可添加或启动弹性策略。

  • 单应用的实例数上限为50。如需提升额度,请加入钉群(钉群号:32874633),申请开通白名单。

查看应用实例监控(邀测)

如果您未使用弹性功能,可以依据应用实例的监控指标趋势,评估是否需要为自己的业务设置弹性策略;如果您正在使用弹性功能,可以通过查看监控指标检验弹性规则启用后的效果,合理调整弹性阈值、设置报警规则。

说明

应用实例趋势图的功能邀测中,如需使用,请加入钉群(钉群号:32874633),申请开通白名单。

  1. 登录SAE控制台

  2. 在左侧导航栏,单击应用列表,在顶部菜单栏选择地域,然后单击具体应用名称。

  3. 基本信息页签的应用实例趋势图,按需筛选监控维度。sc_pod_trend_indicator_chart

    您可以滑动趋势图下方的时间轴,调整数据展示的时间范围;也可以单击左下角的图例,选择数据展示的类别。

    说明

    SAE仅支持查询7天内的应用实例监控数据。

配置弹性伸缩策略

警告

应用扩缩容过程中,可能会造成例如业务中断等不可预知的错误。请根据实际业务需求,谨慎配置并启用弹性伸缩策略。

  1. 登录SAE控制台

  2. 在左侧导航栏,单击应用列表,在顶部菜单栏选择地域,然后单击具体应用名称。

  3. 基本信息页面,单击右上角的自动扩缩,进入添加弹性策略面板。

  4. 添加弹性策略面板,设置策略信息。

    • 定时策略

      配置项

      说明

      策略类型

      选择定时策略

      策略名称

      自定义。

      选择时间

      • 短期:需要指定执行定时弹性伸缩策略的起止日期。

      • 长期:无需指定执行定时弹性伸缩策略的结束日期。

      周期

      执行定时弹性伸缩策略的周期。

      • 每天:每天指定时间执行定时策略。

      • 每周:每周指定天数的指定时间执行定时策略。

      • 每月:每月指定日期的指定时间执行定时策略。

      单天内的触发时间

      设置弹性伸缩策略触发的时间,以及该时间段内需要保持的应用实例数。示例如下。

      如果周期设为每天,第一条定时策略触发开始时间为08:00,目标实例数为10个;第二条定时策略开始时间为20:00,目标实例数为3个。则在08:00至20:00之间,SAE依据所设的规则,将该应用的实例数保持为10个,在20:00至次日08:00之间,应用实例数保持为3个。

      重要
      • 单条定时策略内,两个邻近的单天内的触发时间间隔需大于5分钟。如果设置了多条定时策略,SAE会检查重复日期内的多个触发时间点的时间间隔。

      • 如果设置了多条定时策略,并且两个触发点时间重复,那么遵循以新盖旧的原则,以最后添加的触发点策略为准。设置定时策略时,需避免时间冲突。

    • 监控指标策略

      配置项

      说明

      策略类型

      选择监控指标策略

      策略名称

      自定义。

      触发条件

      设置以下监控指标中的一个或多个。默认显示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

      • 短期:需要指定执行定时弹性伸缩策略的起止日期。

      • 长期:无需指定执行定时弹性伸缩策略的结束日期。

      说明
      • 特殊时间段设置不超过2条。

      • 同一条策略内,单天内的触发时间段不能重合,不超过20条。

      周期

      周期下拉列表,选择每天每周每月,并配置相应信息。

      • 每天:每天指定时间执行定时策略。

      • 每周:每周指定天数的指定时间执行定时策略。

      • 每月:每月指定日期的指定时间执行定时策略。

      单天内的触发时间

      设置弹性伸缩策略触发的时间,以及该时间段内需要保持的应用实例数。示例如下。

      如果周期设为每天特殊时间段触发时间为08:00~20:00,应用最小实例数为3个,应用最大实例数为10个,那么基于已配置的触发条件SAE在指定的日期内会执行以上定时弹性伸缩策略。

      高级设置

      • 弹性扩容步长:单位时间内最多扩容的实例数。

      • 弹性缩容步长:单位时间内最多缩容的实例数。

      • 扩容稳定窗口:稳定窗口期系统趋于维稳状态。通过自动扩缩算法来保证当需要执行扩容时,使用指定时间间隔内所计算的期望目标实例数中的最小值。

      • 缩容稳定窗口:稳定窗口期系统趋于维稳状态。通过自动扩缩算法来保证当需要执行缩容时,使用指定时间间隔内所计算的期望目标实例数中的最大值。

      • 禁止缩容:开启后将永远不会缩容该应用的实例,能有效防止在流量高峰期缩容造成业务风险。默认关闭。

      说明
      • 混合弹性策略设置的多个特殊时间段之间不可重叠。

      • 单条混合弹性策略内设置的触发时间,不能小于系统当前时间;如果小于当前时间,该策略将在下个执行周期内生效。

  5. 单击下一步:预览定时策略确认策略信息,然后单击确认

  6. 策略设置完成后,在实例部署信息页签的弹性伸缩区域,单击目标策略操作列的启用

  7. 启用弹性策略对话框,单击确认,启用该策略。

    当该策略的状态切换至已启用时,表明策略启用成功。

验证弹性伸缩策略

启用弹性策略后,SAE会自动监控应用状态,当满足触发条件时,SAE依据弹性策略进行应用实例扩容或缩容。您可以通过以下步骤验证弹性伸缩策略是否生效。

  1. 登录SAE控制台

  2. 在左侧导航栏,单击应用列表,在顶部菜单栏,选择地域,然后在应用列表页面,找到目标应用。

    可以在弹性策略启用状态当前实例数/目标实例数列查看弹性策略的运行状态;也可以单击目标名称,在基本信息页签的应用信息区域,查看应用运行实例数

    如果运行实例数与弹性策略设置的实例数一致,说明弹性策略已生效。

  3. 可选:在左侧导航栏,单击应用事件,在全部来源类型下拉列表,选择自动弹性(HorizontalPodAutoscaler),查看弹性伸缩原因。

更多操作

为应用配置弹性伸缩策略后,您可以在实例部署信息页签,查看已配置策略的详细信息。

  1. 登录SAE控制台

  2. 在左侧导航栏,单击应用列表,在顶部菜单栏选择地域,然后单击具体应用名称。

  3. 基本信息页面,单击实例部署信息页签,展开弹性伸缩折叠区域,然后在指定策略的操作列,按需进行启停、编辑、删除等操作。