全部产品
云市场

弹性伸缩

更新时间:2019-07-08 14:14:13

在分布式应用管理中,弹性伸缩是很重要的一个运维能力。弹性伸缩能够感知应用内各个实例的状态,并根据状态动态实现应用扩容、缩容。在保证服务质量的同时,提升应用的可用率。

说明

弹性伸缩适用于在 ECS 集群Swarm 集群中创建的应用,同时要确保计划开启弹性伸缩的应用在应用监控下面的基础监控、服务监控都能看到实时的监控数据。

如果看不到监控数据,请登录 EDAS 控制台,在左侧导航栏中选择资源管理 > VPC,在 VPC 页面列表中选择应用 ECS 所在的 vpc id,并在操作列单击安装日志采集器。详情请参见安装日志采集器

安装日志采集器

建议:日志采集器需要选择 VPC ID 下面的 ECS 安装,最好是每 30-40 个 ECS 随机选择其中一个 ECS 安装即可,无需 VPC ID 下面所有的 ECS 都安装。日志采集器安装完成后,等待大约 2-3 分钟,基础监控即可看到监控数据,服务监控需要看是否有服务调用的请求。

基础监控

当您的集群中现有的 ECS 实例数量不够,无法满足扩容需求时,可以使用阿里云的弹性伸缩服务创建新实例(需要提前使用您的 EDAS 账号开通阿里云弹性伸缩服务),通过弹性资源新创建的实例为按量付费

弹性伸缩功能能够根据应用实例的 CPU、RT 和 Load 三个指标来判断并实现自动的扩容或者缩容。

指标说明:

  • CPU:CPU 使用率,以百分比表示。
  • RT:对请求作出的响应时间,以 ms 为单位。
  • Load:应用实例的负载大小,以正整数表示。

指标数据来源:

CPU 指标数据来源:

ECS集群:/home/admin/edas-agent/stat/sys_stat.log[.YYYY-MM-DD]

Swarm集群: /root/edas-agent/stat/sys_stat.log[.YYYY-MM-DD]

RT 和 Load 指标数据来源:

ECS集群:/home/admin/logs/eagleeye/stat-eagleeye-hsf.log

ECS集群:/home/admin/logs/eagleeye/stat-eagleeye-trace.log

Swarm集群:/root/logs/eagleeye/stat-eagleeye-hsf.log

Swarm集群:/root/logs/eagleeye/stat-eagleeye-trace.log

Note:上面三项指标数据采集频率均为:1次/分钟,stat-eagleeye-hsf.log 中记录着 HSF 服务调用的数据,stat-eagleeye-trace.log 中记录着 HTTP 请求的数据。

以上指标均以正整数填写,不支持浮点数;当应用中有多个实例时,以上指标均指应用中所有实例的平均值。

弹性伸缩包括自动扩容和自动缩容,可以分别单独配置扩容规则或者缩容规则。

自动扩容

  1. 登录 EDAS 控制台

  2. 在左侧导航栏中选择应用管理 > 应用列表,在应用列表页面单击具体的应用名称。

  3. 在应用详情页面左侧的导航栏中,单击弹性伸缩

  4. 单击扩容规则右侧的开关,启用扩容规则。

  5. 配置扩容规则参数,然后单击保存

    • 实例来源 (针对非 Docker 应用)

      • 已有资源:自动扩容时会从当前应用所在集群选择指定数量的空闲 ECS 实例扩容到该应用,并在扩容进应用时给扩容进来的 ECS 自动部署、启动好应用。

      • 弹性资源:自动扩容时使用 ECS 提供的弹性伸缩( ESS )功能并使用已有 ECS 实例配置或者 ECS 启动模版代为购买 ECS 并自动加入该应用所在的 EDAS 集群(ECS 或者 Swarm 集群)、扩容进该应用,并在扩容进应用时给扩容进来的 ECS 自动部署、启动好应用。

      • 已有资源优先:自动扩容时优先使用集群内空闲实例,如果集群内的空闲实例不足,则使用 ECS 提供的弹性伸缩( ESS )功能为您创建新的实例。

      注意:如果您选择了弹性资源或已有资源优先,则有可能使用阿里云弹性伸缩服务为您创建的实例,这些实例采用按量付费。同时,需要对这些实例设置如下参数:

      • 创建方式:基于现有实例规格创建,表示从当前应用已部署的实例中选择一个 ECS 实例作为模板。将以此为模板,配置 CPU,内存,网络,磁盘,安全组等规格来创建新的 ECS. 使用启动模版创建,需要您前往 ECS Console 先创建启动模版并为创建 实例自定义数据(userdata, 需要在 userdata 中添加设置主机名等操作,否则创建出来的 ECS 会出现主机名、IP地址映射错误的问题,影响应用启动)。弹性伸缩-规格
      • 登录密匙:新创建的 ECS 实例将以此密匙对作为 SSH 登录认证方式。
      • 高级选项 - 网络类型多可用区扩缩容策略网络类型为您需要扩容的当前应用所在的网络,不可更改。如果当前网络为 VPC 网络,需要指定新创建实例连接的虚拟交换机;若指定多个虚拟交换机,EDAS 将通过多可用区扩缩容策略来进行自动分配。
    • 触发指标,设置 CPU、RT 和 Load 指标的阈值。当超过阈值时,触发扩容。

    • 触发条件

      • 任一指标:表示设定的指标中任意一个指标被触发都会引起扩容。

      • 所有指标:表示设定所有指标必须全部被触发才能引发自动扩容操作。

    • 持续时间超过:指标持续被触发的时间,单位为分钟。表示在持续时间内,指标每分钟的平均值持续达到设置的阈值,就会引起扩容操作,您可根据集群服务能能力的灵敏度酌情配置。

    • 每次扩容的实例数:此参数表示每次触发扩容操作后,自动增加的服务器个数,您可根据应用的单个服务器的服务能力酌情配置。

    • 最大实例数:表示当集群内服务器数量达到配置的最大实例数后,不再继续扩容,此配置请您根据自己的资源限额配置。

自动缩容

自动缩容的配置方式和自动扩容类似,指标含义及设定方式请参考自动扩容

说明:

  • 同时配置扩容和缩容规则的时候,缩容规则的指标不能大于扩容规则的指标,否则,在单击保存的时候会弹出错误提示。
  • 若使用了弹性资源,缩容时会优先释放弹性资源提供的实例。

查看弹性伸缩结果

设置了弹性伸缩规则后,如果发生了自动扩容或者自动缩容操作后,通过应用的 基本信息 中的 实例部署信息 来查看实例是否增加或者是否减少 或者检查 应用左侧菜单 变更记录 ,查看变更类型列为 应用扩容 或者 应用缩容,且来源是 auto_scale、用户是 admin 的变更记录,如下图所示:弹性伸缩-结果