在分布式应用管理中,弹性伸缩是很重要的运维能力,它能够根据实例状态自动增加或减少实例数量,即扩容或缩容,从而提高资源利用率、降低资源成本。本文介绍配置SAE定时弹性策略、监控指标弹性策略和混合弹性策略的操作及验证步骤。

前提条件

部署应用

背景信息

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

适用场景

  • 配置定时弹性伸缩策略:适用于资源使用率有周期性规律的应用场景,多用于证券、医疗、政府和教育等行业。
  • 配置监控指标弹性伸缩策略:适用于突发流量和典型周期性流量的应用场景,多用于互联网、游戏和社交平台等行业。
  • 配置混合弹性伸缩策略:适用于兼备资源使用率有周期性规律和有突发流量、典型周期性流量的应用场景,多用于互联网、教育和餐饮等行业。

使用须知

  • 您最多创建5条定时策略、1条监控指标策略或1条混合弹性策略,三种策略不能同时使用。
  • 弹性策略启用时,请勿手动进行应用生命周期管理操作,例如应用扩缩、部署应用、更改规格、重启应用和停止应用。如果您需要对应用进行该类操作,先停用弹性策略后,再手动执行操作。
  • 如果当前应用处于扩容、缩容、部署(单批、分批或灰度)、更改规格、重启和停止等过程中,该应用暂时无法添加或启动弹性策略。
  • 如果单个应用需要弹出超过50个实例,需提交工单申请白名单。

配置定时弹性伸缩策略

  1. 登录SAE控制台
  2. 在左侧导航栏单击应用列表,在应用列表页面上方选择地域,单击具体应用名称。
  3. 基本信息页面,通过以下方式进入添加弹性策略面板。
    • 方法一:单击实例部署信息,在实例部署信息页签展开弹性伸缩折叠区域,单击+添加弹性策略bt_sae_auto_scaling_entrance1
    • 方法二:单击右上角的自动扩缩bt_sae_auto_scaling_entrance2
  4. 添加弹性策略面板,设置策略参数。
    添加弹性策略

    参数说明如下:

    参数 说明
    策略类型 选择定时策略
    策略名称 自定义的策略名称,必须以小写字母开头,仅可包含小写字母、数字及短划线(-),不超过32个字符。
    选择时间
    • 短期:适用于需要指定执行定时弹性伸缩策略的起止日期时的场景。
    • 长期:适用于不需要指定执行定时弹性伸缩策略的结束日期时的场景。
    周期 执行定时弹性伸缩策略的周期。
    • 每天:每天指定时间执行定时策略。
    • 每周:每周指定天数的指定时间执行定时策略。
    • 每月:每月指定日期的指定时间执行定时策略。
    单天内的触发时间 设置弹性伸缩策略触发的时间,以及该时间段内需要保持的应用实例数。示例如下:

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

    注意
    • 单条定时策略内设置的触发时间,不能小于系统当前时间;如果小于当前时间,该策略将在下个执行周期内生效。
    • 单条定时策略内的两个邻近时间间隔须大于5分钟。如果您设置了多条定时策略,SAE会检查重复日期内的多个触发时间点的时间间隔。
    • 如果设置了多条定时策略,并且两个触发点时间重复,那么遵循以新盖旧的原则,以最后添加的触发点策略为准。设置定时策略时请您避免时间冲突的情况。
  5. 单击下一步:预览定时策略确认策略信息,单击确认
  6. 策略设置完成后,在实例部署信息页签,单击目标策略操作列的启用
  7. 启用弹性策略对话框中单击确认,启用该策略。

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

    启用定时策略

配置监控指标弹性伸缩策略

  1. 登录SAE控制台
  2. 在左侧导航栏单击应用列表,在应用列表页面上方选择地域,单击具体应用名称。
  3. 基本信息页面,通过以下方式进入添加弹性策略面板。
    • 方法一:单击实例部署信息,在实例部署信息页签展开弹性伸缩折叠区域,单击+添加弹性策略bt_sae_auto_scaling_entrance1
    • 方法二:单击右上角的自动扩缩bt_sae_auto_scaling_entrance2
  4. 添加弹性策略面板,单击监控指标策略页签,在监控指标策略页签设置策略参数,单击确认
    监控指标策略

    参数说明如下:

    参数 说明
    策略类型 选择监控指标策略
    策略名称 自定义的策略名称,必须以小写字母开头,仅可包含小写字母、数字及短划线(-),不超过32个字符。
    触发条件 设置以下监控指标中的一个或多个。
    • CPU使用率:运行程序所占用的CPU资源。
    • 内存使用率:运行进程所开销的内存。
    • TCP活跃连接数:30秒内单个实例的平均TCP活跃连接数。
    • 公网SLB QPS:15秒内单个实例的平均公网SLB QPS。
      • 当您未绑定公网SLB时,页面不显示公网SLB QPS复选框。
      • 当您绑定了公网SLB,但未配置访问日志时,公网SLB QPS复选框置灰,即不可选择。
      • 当您绑定了公网SLB,且已配置访问日志时,可以选中公网SLB QPS复选框。
    • 公网SLB 响应时间(RT):15秒内公网SLB平均RT。
      • 当您未绑定公网SLB时,页面不显示公网SLB 响应时间(RT)复选框。
      • 当您绑定了公网SLB,但未配置访问日志时,公网SLB 响应时间(RT)复选框置灰,即不可选择。
      • 当您绑定了公网SLB,且已配置访问日志时,可以选中公网SLB 响应时间(RT)复选框。
    说明
    • 应用监控页面最近30分钟内有应用QPS或响应时间(RT)数据时才可以设置该项指标。
    • 当设置多个监控指标时,只要任何一个指标大于或者等于目标值,则应用进行扩容,扩容后实例数不高于应用最大实例数;如果所有指标均小于目标值,则应用进行缩容,缩容后实例数不低于应用最小实例数
    • 如果您需要配置公网SLB QPS公网SLB 响应时间(RT),操作如下:
      1. 为应用绑定SLB,配置SLB监听端口为HTTP协议HTTPS协议。具体操作,请参见为应用绑定SLB
      2. 配置访问日志。具体操作,请参见开通访问日志功能
    实例数设置 您可以直接设置输入实例数或者滑动下方的指针设置实例数。
    • 应用最小实例数:触发弹性伸缩条件后,应用缩容,其实例数可达到的目标值。
    • 应用最大实例数:触发弹性伸缩条件后,应用扩容,其实例数可达到的目标值。
    说明 手动扩缩添加弹性策略能够设置的最大实例数同步。
    高级设置
    • 弹性扩容步长:单位时间内最多扩容的实例数。
    • 弹性缩容步长:单位时间内最多缩容的实例数。
    • 扩容冷却时间:通过自动扩缩算法来保证系统达到所设置时间段内扩容期望的状态,冷却时间内系统维稳,尽可能不进行扩容操作。取值范围[0, 3600],单位为秒。默认为0秒。
    • 缩容冷却时间:通过自动扩缩算法来保证系统达到所设置时间段内缩容期望的状态,冷却时间内系统维稳,尽可能不进行缩容操作。取值范围[0, 3600],单位为秒。默认为300秒。
    • 禁止缩容:开启后将永远不会缩容该应用的实例,能有效防止在流量高峰期缩容造成业务风险。默认关闭。
    说明
    • 应用目标实例数=ceil[当前实例数×(当前监控指标值/目标指标值)],结果有小数时自动向上求整。同时为保证扩缩稳定性,如果计算出的扩缩比例在[0.9, 1.1]之间将不进行实际扩缩行为。
    • 冷却时间是指伸缩组成功执行伸缩活动后的一段锁定时间。假设您将缩容冷却时间设置为300秒,在完成指定缩容活动后的300秒内,能有效避免立即发生其他缩容操作。
  5. 策略设置完成后,在实例部署信息页签,单击目标策略操作列的启用
  6. 启用弹性策略对话框中单击确认,启用该策略。

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

    启用监控指标策略

配置混合弹性伸缩策略

  1. 登录SAE控制台
  2. 在左侧导航栏单击应用列表,在应用列表页面上方选择地域,单击具体应用名称。
  3. 基本信息页面,通过以下方式进入添加弹性策略面板。
    • 方法一:单击实例部署信息,在实例部署信息页签展开弹性伸缩折叠区域,单击+添加弹性策略bt_sae_auto_scaling_entrance1
    • 方法二:单击右上角的自动扩缩bt_sae_auto_scaling_entrance2
  4. 添加弹性策略面板,单击混合弹性策略页签,在混合弹性策略页签设置策略参数,单击下一步:预览定时策略
    混合弹性策略

    参数说明如下:

    参数 说明
    策略类型 选择混合弹性策略
    策略名称 自定义的策略名称,必须以小写字母开头,仅可包含小写字母、数字及短划线(-),不超过32个字符。
    触发条件 设置以下监控指标中的一个或多个。
    • CPU使用率:运行程序所占用的CPU资源。
    • 内存使用率:运行进程所开销的内存。
    • TCP活跃连接数:30秒内单个实例的平均TCP活跃连接数。
    • 公网SLB QPS:15秒内单个实例的平均公网SLB QPS。
      • 当您未绑定公网SLB时,页面不显示公网SLB QPS复选框。
      • 当您绑定了公网SLB,但未配置访问日志时,公网SLB QPS复选框置灰,即不可选择。
      • 当您绑定了公网SLB,且已配置访问日志时,可以选中公网SLB QPS复选框。
    • 公网SLB 响应时间(RT):15秒内公网SLB平均RT。
      • 当您未绑定公网SLB时,页面不显示公网SLB 响应时间(RT)复选框。
      • 当您绑定了公网SLB,但未配置访问日志时,公网SLB 响应时间(RT)复选框置灰,即不可选择。
      • 当您绑定了公网SLB,且已配置访问日志时,可以选中公网SLB 响应时间(RT)复选框。
    说明
    • 应用监控页面最近30分钟内有应用QPS或响应时间(RT)数据时才可以设置该项指标。
    • 当设置多个监控指标时,只要任何一个指标大于或者等于目标值,则应用进行扩容,扩容后实例数不高于应用最大实例数;如果所有指标均小于目标值,则应用进行缩容,缩容后实例数不低于应用最小实例数
    • 如果您需要配置公网SLB QPS公网SLB 响应时间(RT),操作如下:
      1. 为应用绑定SLB,配置SLB监听端口为HTTP协议HTTPS协议。具体操作,请参见为应用绑定SLB
      2. 配置访问日志。具体操作,请参见开通访问日志功能
    应用最大最小实例数设置
    默认设置 设置应用实例数。
    • 应用最小实例数:触发弹性伸缩条件后,应用缩容,其实例数可达到的目标值。
    • 应用最大实例数:触发弹性伸缩条件后,应用扩容,其实例数可达到的目标值。
    • 最小存活实例数:每次部署最小存活的实例数。单击设置,在设置最小存活实例数对话框中设置最小存活实例数量。
    说明 手动扩缩添加弹性策略能够设置的最大实例数同步。每次滚动部署最小存活的实例数建议大于等于1,保证业务不中断。如果设置为0,应用在升级过程中将会中断业务。
    特殊时间段设置 给特定的时间段设置特定的实例最大最小值。默认显示选择时间1。单击+添加特殊时间段设置选择时间2
    • 短期:适用于需要指定执行定时弹性伸缩策略的起止日期时的场景。
    • 长期:适用于不需要指定执行定时弹性伸缩策略的结束日期时的场景。
    说明
    • 特殊时间段设置不超过2条。
    • 同一条策略内,单天内的触发时间段不能重合,不超过20条。
    周期 周期下拉列表中,选择每天每周每月,并配置相应参数。
    • 每天:每天指定时间执行定时策略。
    • 每周:每周指定天数的指定时间执行定时策略。
    • 每月:每月指定日期的指定时间执行定时策略。
    单天内的触发时间 设置弹性伸缩策略触发的时间,以及该时间段内需要保持的应用实例数。示例如下:

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

    高级设置
    • 弹性扩容步长:单位时间内最多扩容的实例数。
    • 弹性缩容步长:单位时间内最多缩容的实例数。
    • 扩容冷却时间:通过自动扩缩算法来保证系统达到所设置时间段内扩容期望的状态,冷却时间内系统维稳,尽可能不进行扩容操作。取值范围[0, 3600],单位为秒。默认为0秒。
    • 缩容冷却时间:通过自动扩缩算法来保证系统达到所设置时间段内缩容期望的状态,冷却时间内系统维稳,尽可能不进行缩容操作。取值范围[0, 3600],单位为秒。默认为300秒。
    • 禁止缩容:开启后将永远不会缩容该应用的实例,能有效防止在流量高峰期缩容造成业务风险。默认关闭。
    说明
    • 应用目标实例数=ceil[当前实例数×(当前监控指标值/目标指标值)],结果有小数时自动向上求整。同时为保证扩缩稳定性,如果计算出的扩缩比例在[0.9, 1.1]之间将不进行实际扩缩行为。
    • 冷却时间是指伸缩组成功执行伸缩活动后的一段锁定时间。假设您将缩容冷却时间设置为300秒,在完成指定缩容活动后的300秒内,能有效避免立即发生其他缩容操作。
    说明
    • 混合弹性策略设置的多个特殊时间段之间不可重叠。
    • 单条混合弹性策略内设置的触发时间,不能小于系统当前时间;如果小于当前时间,该策略将在下个执行周期内生效。
  5. 单击下一步:预览定时策略确认策略信息,单击确认
  6. 策略设置完成后,在实例部署信息页签,单击目标策略操作列的启用
  7. 启用弹性策略对话框中单击确认,启用该策略。

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

    启用混合弹性策略

验证弹性伸缩策略

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

  1. 登录SAE控制台
  2. 在左侧导航栏单击应用列表,在应用列表页面上方选择地域,单击具体应用名称。
  3. 基本信息页面的应用信息区域查看应用运行实例数
    如果运行实例数与弹性策略中设置的实例数一致,说明弹性策略已生效。应用实例数
  4. 可选:您可以通过以下方式查看弹性伸缩原因。
    • 查看应用事件:

      在左侧导航栏单击应用事件,在左侧事件原因中选择自动弹性(HorizontalPodAutoscaler),查看弹性伸缩原因。

    • 查看自动弹性事件:
      1. 基本信息页面单击实例部署信息,在实例部署信息页签展开弹性伸缩折叠区域。
      2. 单击目标策略操作列的更多图标并在快捷菜单中单击事件,查看自动弹性原因。
    弹性伸缩事件

查看和管理已配置的弹性策略

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

  1. 登录SAE控制台
  2. 在左侧导航栏单击应用列表,在应用列表页面上方选择地域,单击具体应用名称。
  3. 基本信息页面单击实例部署信息页签,展开弹性伸缩折叠区域,在指定策略的操作列中,您可以执行以下操作。
    查看实例部署信息
    • 启用:单击启用来启动策略。
    • 停用:单击停用来停止策略。
    • 编辑:单击编辑来编辑策略。
    • 删除:单击更多图标并在快捷菜单中单击删除来删除策略
    • 查看事件:单击更多图标并在快捷菜单中单击事件来查看自动弹性事件。

问题反馈

如果您在使用SAE过程中有任何疑问,欢迎您扫描下面的二维码或搜索钉钉群号32874633,加入钉钉群与我们交流。SAE_QR_code_3