在分布式应用管理中,弹性伸缩是很重要的运维能力。弹性伸缩能够感知应用内各个实例的状态,并根据状态动态实现应用扩容、缩容。本介绍如何通过手动扩缩和自动弹性伸缩功能,实现应用实例数增加和减少,在保证服务质量的同时,高效的利用应用资源、降低应用资源成本。

为什么使用扩容缩

互联网、游戏类等应用在促销活动期间容易出现突发性流量洪流,SLA和资源成本不易平衡,极易造成系统响应延迟、系统瘫痪等问题。EDAS继承阿里巴巴应对双11的流量洪流技术,提供秒级自动弹性功能,保证SLA的同时也节省机器保有成本。多适用于互联网、游戏以及社交平台等行业。

手动扩容缩容

  1. 登录EDAS控制台
  2. 按需执行以下任一操作来进入应用的详情页面:
    • 在左侧导航栏选择资源管理 > 容器服务K8s集群(或资源管理 > Serverless K8s集群),在容器服务K8s集群Serverless K8s集群页面上单击集群ID,然后在集群详情页面的应用列表区域单击具体应用名称。
    • 在左侧导航栏选择应用管理 > 应用列表,在集群类型下拉列表中选择容器服务/Serverless K8s集群,然后单击目标应用名称。
  3. 应用总览页面右上角,单击应用扩缩
  4. 应用扩缩对话框中设置要扩容或缩容的应用总Pod数,单击确认
    如果将Pod数量设置为0,系统将物理删除该应用下所有的Pod,仅保留应用的基本创建信息。

容器服务Kubernetes版集群应用的扩容或缩容在配置完成后,将在集群内自动完成,无需手工操作。

自动弹性伸缩

部署在EDAS的容器服务K8s集群和Serverless K8s集群中的应用,可以配置两种策略类型:监控指标策略和自定义弹性策略。目前在EDAS的单个应用中暂时只支持同时配置一个类型的弹性策略。

注意
  • 单个应用内最多可配置一条监控指标弹性策略。
  • 单个应用内最多可配置一条自定义弹性策略,但在自定义弹性策略内,可以配置多个触发器。
  • 弹性策略启用时,请勿进行应用生命周期管理操作,请停用弹性策略后,再执行。
  • 执行应用变更(如部署应用、应用扩缩、变更规格等)时,无法添加弹性策略。
  • 当K8s集群版本低于1.16.9时,除了绑定SLB不会导致弹性策略失效,其他变更都会导致失效,需要手动在应用变更结束后手动启用弹性策略;当K8s集群版本为1.16.9及以上版本时,应用变更不会导致弹性策略失效。

监控指标策略

EDAS通过监控您应用的CPU使用率和内存使用率,依据弹性策略自动为您扩容和缩容应用实例。

  1. 登录EDAS控制台
  2. 在左侧导航栏中选择应用管理 > 应用列表,在应用列表页面单击具体的应用名称。
  3. 在应用详情页面的左侧导航栏选择应用设置 > 弹性伸缩,然后单击添加弹性策略
  4. 策略类型区域选择监控指标策略,完成以下配置成后单击保存
    参数 描述
    策略名称 请输入弹性策略的名称。
    触发条件 支持Cpu使用率Mem使用率:设置期望的监控指标目标值,系统会帮您自动伸缩实例数,无限接近您设置的目标值。
    • Cpu使用率目标值:在数字输入框中输入CPU使用率的目标数值。
    • Mem使用率目标值:在数字输入框中输入内存使用率的目标数值。
    说明
    • 使用Cpu使用率Mem使用率时,当前应用的Cpu使用率或者Mem使用率大于或者等于所设的目标值,则对应用进行扩容,其应用实例数不超所设的最大应用实例数;反之,进行缩容,其应用实例数不低于所设的最小应用实例数
    • 弹性策略的目标实例数 = 当前实例数 ×(当前指标/期望指标)。
    最大应用实例数 触发弹性伸缩条件后,应用扩容,其实例数可达到的最大值。
    最小应用实例数 触发弹性伸缩条件后,应用缩容,其实例数可达到的最小值。
  5. 在弹性策略页面右上角单击启用
    如果您的应用没有进行规格请求配置,需要在弹出的对话框中完成配置后单击确定
    触发弹性策略后,如果EDAS依据所设策略对应用实例进行扩容或者缩容,表示自动弹性成功。

自定义弹性策略

通过配置自定义弹性策略,您可以配置多个触发器,EDAS将根据触发器自动为您扩容和缩容应用实例。

  1. 登录EDAS控制台
  2. 在左侧导航栏中选择应用管理 > 应用列表,在应用列表页面单击具体的应用名称。
  3. 在应用详情页面的左侧导航栏选择应用设置 > 弹性伸缩,然后单击添加弹性策略
  4. 策略类型区域选择自定义弹性策略,完成以下配置成后单击保存
    参数 描述
    策略名称 请输入弹性策略的名称。
    触发条件 单击新增触发器,然后在右侧弹出的新增触发器面板配置触发器规则,配置完成后单击确定
    • 触发器名称:必须以字母开头,允许数字、字母、短划线(-)或下划线(_)组成。最大长度30个字符。
    • 触发器类型:选择系统提供的触发器类型,当前仅支持应用指标触发器
    • 指标名:支持应用提供服务平均每秒请求量应用提供服务平均响应时间(毫秒)两种指标。
    • 目标值:设置期望的监控指标目标值,系统会帮您自动伸缩实例数,无限接近您设置的目标值。
    说明
    • 应用目标实例数 = max(触发器1目标实例数,触发2目标实例数,...,触发器N目标实例数)
    • 当目标实例数大于当前实例数时,EDAS则对应用进行扩容,其应用实例数不超过所设的最大应用实例数;反之,则进行缩容,其应用实例数不低于所设的最小应用实例数
    最大应用实例数 触发弹性伸缩条件后,应用扩容,其实例数可达到最大值。
    最小应用实例数 触发弹性伸缩条件后,应用缩容,其实例数可达到最小值。
  5. 在弹性策略页面右上角单击启用
    触发弹性策略后,如果EDAS依据所设策略对应用实例进行扩容或者缩容,表示自动弹性成功。

结果验证(自动弹性伸缩)

启用弹性策略后,EDAS将自动依据弹性策略进行应用实例扩缩容,您可以通过以下步骤来查看扩缩容的详细事件记录。

  1. 在弹性伸缩页面的右上角单击事件
  2. 事件中心K8s事件页签将可以看到所有事件记录。
  3. 原因的下拉列表中选择ScalingReplicSet,即可查看到自动弹性伸缩的所有事件记录。
    弹性扩缩事件

更多信息

弹性策略启用后,您可以对弹性策略进行删除停止启用编辑,还可以进行一系列应用管理操作。