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

为什么使用扩容缩

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

手动扩容缩容

  1. 登录EDAS 控制台
  2. 在左边导航栏选资源管理 > 集群,在集群详情页面的应用列表单击具体应用名称。
    您还可以在左侧导航栏中选择应用管理 > 应用列表,在应用管理页面单击具体容器服务 K8s 集群应用。
  3. 应用总览页面右上角,单击应用扩缩
  4. 应用扩缩对话框中设置要扩容或缩容的应用总 Pod 数,单击确认
    如果将 Pod 数量设置为 0,系统将物理删除该应用下所有的 Pod,仅保留应用的基本创建信息。

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

自动弹性伸缩

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

注意
  • 单个应用内最多可配置一条监控指标弹性策略。
  • 弹性策略启用时,请勿进行应用生命周期管理操作,请停用弹性策略后,再执行。
  • 执行应用变更(如部署应用、应用扩缩、变更规格等)时,无法添加弹性策略。
  1. 登录 EDAS 控制台
  2. 在左边导航栏选资源管理 > 集群,在集群详情页面的应用列表单击具体应用名称。
    您还可以在左侧导航栏中选择应用管理 > 应用列表,在应用管理页面单击具体容器服务 K8s 集群应用。
  3. 在应用详情左边导航栏单击应用设置页签,并单击弹性伸缩折叠面板,展开折叠面板后单击添加弹性策略
    您也可以在应用总览页面的右上角单击弹性扩缩
  4. 在右侧滑出的添加弹性策略面板中配置弹性规则,配置完成后单击确定
    • 策略名称:弹性策略的名称,须以字母开头,且由字母、数字、下划线、中划线组成。长度范围为 1~64 字符。
    • 策略类型:目前仅支持监控指标弹性策略,定时弹性策略即将上线。
    • 触发条件:支持CPU使用率Mem使用率
    • 最大应用实例数:触发弹性伸缩条件后,应用扩容,其实例数可达到的目标值。
    • 最小应用实例数:触发弹性伸缩条件后,应用缩容,其实例数可达到的目标值。
    说明
    • 单选CPU使用率Mem使用率时,当前应用的CPU使用率或者Mem使用率大于或者等于所设的目标值,则对应用进行扩容,其应用实例数不超所设的最大应用实例数;反之,进行缩容,其应用实例数不低于所设的最小应用实例数
    • 全选CPU使用率Mem使用率时,如果二者使用率同时大于或者等于所设目标,则应用进行扩容,其应用实例数不超所设的最大应用实例数;反之,进行缩容,其应用实例数不低于所设的最小应用实例数

    最大应用实例数最小应用实例数的计算公式:目标实例数 = 当前实例数 ×(当前指标/期望指标)

  5. 监控指标策略列表,单击操作列的启用

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

使用弹性伸缩前,应用实例数如下图所示。使用弹性伸缩前

弹性策略如下图所示。

配置弹性伸缩并启用

启用该弹性策略后,EDAS 自动监测 CPU 使用率,当满足触发条件时,EDAS 依据弹性策略进行应用实例扩容、缩容。

相比弹性伸缩前,应用实例增加1个Pod,表示通过弹性伸缩功能为应用扩容实例成功。

扩容成功图

更多信息

弹性策略启用后,您可以对弹性策略进行删除停止启用编辑