# 概述

在分布式应用管理中,弹性伸缩是很重要的一个运维能力。弹性伸缩能够感知应用内各个实例的状态,并根据实例状态动态实现应用扩容、缩容,在保证服务质量的同时。 在 AHS 中,我们将自动扩缩功能抽象成一个组件的运维特征,用户只需要将该运维特征挂载到组件上即可使用。

# 操作步骤

  1. 创建应用。

  2. 为应用创建编排。

  3. 在可视化编排编辑器中,拖拽普通组件server至画布中。

  4. 点击上一步中的组件图标,填写组件名称:php-example,镜像: xishengcai/php-example。

  5. 拖拽运维特征自动扩缩到刚才的组件下。

  6. 点击自动扩缩图标,填写自动扩缩参数。

    • 实例范围 min:1,max:5
    • CPU 利用率(可选参数):20
    • 内存利用率(可选参数):50
    参数 描述
    实例范围 填写实例的最小值和最大值
    CPU 利用率 可选参数,cpu 实际占用百分比
    内存利用率 可选参数,内存实际占用百分比
    每分钟请求次数 可选参数(需要在开启服务网格的情况下才能使用)

# 结果验证

  1. 重新编辑上面的应用编排。

    • 部署普通组件:busybox
    • 镜像:在 DockerHub 中选择镜像 busybox
    • 版本:latest
    • 启动命令:tail -f /etc/hosts

    其他参数默认,最后保存并部署

  2. 点击上面已部署应用的拓扑图,刷新等到2个组件全部正常运行。点击图标 busybox > 下方出现组件详情 > 点击实例 > 展开容器列表 > 进入 container-0 的 "远程终端"

    执行下面命令

    while sleep 0.01; do wget -q -O- http://php-example; done
    

3.在LStack容器服务控制台观察组件php-example的内存使用超过20%,并自动扩容。