创建弹性伸缩组

ZStack Cloud主菜单,点击资源中心 > 云资源池 > 资源服务 > 弹性伸缩组,进入弹性伸缩组界面。点击创建弹性伸缩组,弹出创建弹性伸缩组界面。

创建弹性伸缩组分为以下三步:
  1. 基础配置。
    可参考以下示例输入相应内容:
    • 区域:显示当前区域
    • 伸缩组名称:设置弹性伸缩组名称。命名规则:长度限制1~128字符,输入内容只能包含中文汉字、英文字母、数字、空格和以下 7 种英文字符 - _ . ( ) : + 且不支持以空格开头或结尾
    • 简介:可选项,可留空不填
    • 起始云主机数量:设置起始云主机数量
      • 初次创建伸缩组时组内云主机数为设置的初始值。
      • 需输入整数,单位:台,取值范围:1~1000,且需在最小云主机数量与最大云主机数量之间,请结合实际情况设置。
    • 最小云主机数量:设置最小云主机数量
      • 弹性缩容时组内云主机数不能低于设置的最小值。
      • 需输入整数,单位:台,取值范围:1~1000,请结合实际情况设置。
    • 最大云主机数量:设置最大云主机数量
      • 弹性扩容时组内云主机数不能高于设置的最大值。
      • 需输入整数,单位:台,取值范围:1~1000,请结合实际情况设置。
    • 若选择配置负载均衡功能(推荐):
      • 负载均衡:选择某一负载均衡器。
        • 需提前创建负载均衡器,并绑定一个或多个监听器。
      • 监听器:选择负载均衡器后,必须选择监听器。
        • 待选列表显示了该负载均衡器绑定的全部监听器。
        • 若选多个监听器,将分别通过不同端口对同一组云主机进行监听。
      • 网络:选择三层网络,用于创建云主机。
        • 若未使用负载均衡服务,支持选择VPC网络和扁平网络。其中,VPC网络需加载到VPC路由器。
        • 若使用负载均衡服务,所选网络必须包含在负载均衡的后端网络中。
      • 健康检查方式:建议选择负载均衡。
        • 云主机:实时检查云主机健康状态,若检测到云主机处于不健康状态(包括:停止状态、未知状态、已删除状态),将自动移除不健康云主机并创建新的云主机,确保组内健康云主机数不低于设置的最小值。
        • 负载均衡:负载均衡器自带的健康检查机制。
      • 健康检查宽限时间:选择负载均衡健康检查后,必须设置健康检查宽限时间。
        • 健康检查宽限时间:弹性伸缩组内云主机创建启动后的一段时间,在该时间内,云主机相关应用服务可能仍在启动中,弹性伸缩组不进行负载均衡健康检查,超过该时间,将基于负载均衡健康检查机制监控云主机健康状态。
        • 需输入大于10秒的整数,单位:秒/分/小时,请结合实际情况设置。
    • 若选择不配置负载均衡功能:
      • 负载均衡器:留空不选。
      • 网络:选择三层私有网络。
        Note: 目前支持VPC网络和扁平网络场景的云主机弹性伸缩。
      • 健康检查方式
        • 云主机:实时检查云主机健康状态,若检测到云主机处于不健康状态(包括:停止状态、未知状态、已删除状态),将自动移除不健康云主机并创建新的云主机,确保组内健康云主机数不低于设置的最小值。
    • 立即启用:选择是否创建后立即启用弹性伸缩组,默认不立即启用。
    Figure 1所示:
    Figure 1. 基础配置


  2. 伸缩云主机配置
    可参考以下示例输入相应内容:
    • 云主机名称:设置云主机名称
      • 组内云主机统一命名规则:asg-伸缩组名称-云主机名称-云主机UUID前5位,其中asg是autoscaling group的缩写。
    • 云主机简介:可选项,可留空不填
    • 计算规格:选择云主机的计算规格
    • 镜像:选择创建云主机的镜像
      Note:
      • 云主机镜像目前支持添加qcow2格式和raw格式。
      • 如需使用内部监控条目,请选择已安装agent的镜像,或使用User Data脚本方式手动安装agent。
      • 创建完成后修改镜像,新镜像仅对后续新生成的云主机生效,原有云主机镜像不变。
    • 根云盘规格:可选项,用于定义根云盘容量、磁盘带宽等信息。
      • 若不选择根云盘规格,根云盘规格默认与所选镜像的容量保持一致。
    • 三层网络:显示已选择的三层网络
    • 高级设置
      • 数据云盘规格:选择数据云盘规格,可为云主机直接创建并挂载数据云盘。
      • 亲和组:选择亲和组,目前仅支持非强制亲和组。
        Note:
        • 租户视角仅可看到自身可用资源。
        • 绑定亲和组后支持在更多操作解绑亲和组
      • 安全组:选择安全组,组内云主机将共享相同的安全组规则。
      • 控制台密码:设置控制台密码(VNC密码),长度为6-18位。
      • SSH 公钥:注入SSH公钥,云主机可SSH免密登录。
        • SSH公钥注入需镜像提前安装cloud-init,且cloud-init推荐版本为:0.7.9、17.1、19.4、19.4以后版本。
      • User Data:导入User Data,通过上传自定义的参数或脚本,对云主机做定制化配置或完成特定任务。
        • Linux云主机导入User Data,云主机镜像需提前安装cloud-init。
          Linux云主机导入User Data样例如下:
          #cloud-config
          users:
           - name: test
             shell: /bin/bash
             groups: users
             sudo: ['ALL=(ALL) NOPASSWD:ALL']
             ssh-authorized-keys:
                 - ssh-rsa AAAAB3NzaC1LXCJfjroD1lT root@10-0-0-18
          bootcmd:
           - mkdir /tmp/temp 
          write_files:
           - path: /tmp/Cloud_config
             content: |
                 Hello,world!
             permissions: '0755'
          fqdn: Perf-test
          disable_root: false
          ssh_pwauth: yes
          chpasswd:
            list: |
                root:word
            expire: False
          runcmd:
           - echo ls -l / >/root/list.sh
          上述样例脚本实现以下功能:
          1. 创建云主机时,创建用户test,使用ssh-key。
          2. 开机写入文件/etc/hosts,创建/tmp/temp目录,并创建文件写入内容。
          3. 设置hostname,开启root用户,允许ssh密码登录,修改root密码。
          4. 执行echo ls -l /命令。
        • Windows云主机导入User Data,云主机镜像需提前安装Cloudbase-Init,具体安装方法可参考Cloudbase官方文档
          Windows云主机导入User Data样例如下:
          #cloud-config
          write_files:
             -   encoding: b64
                 content: NDI=
                 path: C:\b64
                 permissions: '0644'
             -   encoding: base64
                 content: NDI=
                 path: C:\b64_1
                 permissions: '0644'
             -   encoding: gzip
                 content: !!binary |
                     H4sIAGUfoFQC/zMxAgCIsCQyAgAAAA==
                 path: C:\gzip
                 permissions: '0644'

          上述样例脚本实现以下功能:云主机启动过程中,在c盘下创建b64b64_1gzip三个文件。

        Note: 使用User Data时,若一个二层网络下有多个三层网络,且这些三层网络属于同一个CIDR,仅第一个三层网络的UserData工作,因此会导致其他网络下的云主机内部监控无法正常工作。
    Figure 2所示:
    Figure 2. 伸缩云主机配置


    Note: 若将模板配置中的资源删除(例如计算规格、镜像、网络等),将导致弹性伸缩组创建失败。
  3. 伸缩策略配置。
    设置伸缩策略配置有资源策略与周期策略两种策略类型:
    • 资源策略:以资源使用率为标准配置扩容策略与缩容策略,适用于无法预测的用户业务变化,实现自适应的云主机扩容及缩容
      • 报警通知:弹性伸缩组支持配置监控报警监控报警机制触发弹性伸缩,选择是否使用报警通知,默认不使用。
        • 若使用,必须指定通知对象
          通知对象:指定一个或多个通知对象
          • 可选择系统类型接收端(默认提供),也可选择自定义类型接收端,包括邮箱/钉钉/HTTP应用/短信/Microsoft Teams。
      • 触发条目:设置触发条目,包括:
        • 云主机内存平均使用率:弹性伸缩组内单个云主机内存使用率之和/弹性伸缩组内云主机总数量。
        • 云主机CPU平均使用率:弹性伸缩组内单个云主机CPU使用率之和/弹性伸缩组内云主机总数量。
        • 云主机内存平均使用率(需安装agent):弹性伸缩组内单个云主机内存使用率之和/弹性伸缩组内云主机总数量。
        • 云主机CPU平均使用率(需安装agent):弹性伸缩组内单个云主机CPU使用率之和/弹性伸缩组内云主机总数量。
        Note:
        • 推荐使用agent内部监控监测云主机内存平均使用率,数据更为准确。
        • 若选择需安装agent的触发条目,请选择已安装agent的镜像。
        • Linux云主机支持使用User Data脚本方式手动安装agent,请参考本章节User Data部分内容。
        • 若未安装agent内部监控,仍然选择需安装agent的触发条目,则弹性伸缩组无法生效。
      • 扩容策略:
        • 触发规则:设置触发条件,可选择设置:大于某值、大于等于某值,以及阈值持续时间。
          • 使用率需输入1~100的整数,单位:%。
          • 持续时间需输入大于0的整数,单位:秒/分/小时。
        • 冷却时间:设置冷却时间。
          • 冷却时间:弹性伸缩组执行完成一次伸缩活动后的一段时间,在该时间内,弹性伸缩组处于锁定状态,不执行其它伸缩活动。
          • 需输入大于0的整数,单位:秒/分。
        • 增加策略:弹性伸缩组执行一次扩容活动允许增加的云主机数量。
          Note: 弹性伸缩组每次扩容最小允许增加1台云主机,该数值设置过大可能导致扩容活动失败。
      • 缩容策略:
        • 在业务下降时,弹性伸缩组自动减少云主机进行缩容,避免资源浪费。
        • 通过设置监控报警机制触发弹性缩容。

          例如,当监测到弹性伸缩组内全部云主机的平均内存使用率在一段时间内持续低于20%,将自动移除合适数量的云主机,使弹性伸缩组重新达到合理的负载均衡。

        配置缩容策略,可参考以下示例输入相应内容:
        • 触发规则:设置触发条件,可选择设置:大于某值、大于等于某值,以及阈值持续时间。
          • 使用率需输入1~100的整数,单位:%,且不能与扩容策略触发条件冲突。
          • 持续时间需输入大于0的整数,单位:秒/分/小时。
        • 冷却时间:设置冷却时间。
          • 冷却时间:弹性伸缩组执行完成一次伸缩活动后的一段时间,在该时间内,弹性伸缩组处于锁定状态,不执行其它伸缩活动。
          • 需输入大于0的整数,单位:秒/分。
        • 移除策略:选择移除策略以及每次减少云主机数量,移除策略包括:
          • 最新创建的云主机(默认):当弹性伸缩组开始执行缩容活动时,将从最新一次创建的云主机开始逐台移除。
          • 最早创建的云主机:当弹性伸缩组开始执行缩容活动时,将从最早创建的云主机开始逐台移除。
          • CPU利用率最低的云主机:当弹性伸缩组开始执行缩容活动时,将从CPU利用率最低的云主机开始逐台移除。
          • 内存利用率最低的云主机:当弹性伸缩组开始执行缩容活动时,将从内存利用率最低的云主机开始逐台移除。
          Note: 弹性伸缩组每次缩容最小允许减少1台云主机,该数值设置过大可能导致缩容活动失败。
    • 周期策略:周期性的对资源进行扩容及缩容,适用于可预测的用户业务变化,云主机定时扩容或缩容
      • 扩容策略:
        • 扩容周期:选择扩容周期,可按月扩容、按周扩容、按天扩容、按小时扩容、按分钟扩容
        • 执行时间:选择按月、按周或按天扩容,可设置扩容任务执行时间。
        • 冷却时间:设置冷却时间。
          • 冷却时间:弹性伸缩组执行完成一次伸缩活动后的一段时间,在该时间内,弹性伸缩组处于锁定状态,不执行其它伸缩活动。
          • 需输入大于0的整数,单位:秒/分。
        • 生效时间:扩容任务从定时生效时间开始,按照已设置的扩容周期进行云主机扩容。
          Note: 若选择按月、按周或按天扩容,支持设置定时生效时间。
        • 增加策略:弹性伸缩组执行一次扩容活动允许增加的云主机数量。
          Note: 弹性伸缩组每次扩容最小允许增加1台云主机,该数值设置过大可能导致扩容活动失败。
      • 缩容策略:
        • 缩容周期:选择缩容周期,可按月缩容、按周缩容、按天缩容、按小时缩容、按分钟缩容
        • 执行时间:选择按月、按周或按天缩容,可设置缩容任务执行时间。
        • 冷却时间:设置冷却时间。
          • 冷却时间:弹性伸缩组执行完成一次伸缩活动后的一段时间,在该时间内,弹性伸缩组处于锁定状态,不执行其它伸缩活动。
          • 需输入大于0的整数,单位:秒/分。
        • 生效时间:缩容任务从定时生效时间开始,按照已设置的缩容周期进行云主机缩容。
          Note: 若选择按月、按周或按天缩容,支持设置定时生效时间。
        • 移除策略:选择移除策略以及每次减少云主机数量,移除策略包括:
          • 最新创建的云主机(默认):当弹性伸缩组开始执行缩容活动时,将从最新一次创建的云主机开始逐台移除。
          • 最早创建的云主机:当弹性伸缩组开始执行缩容活动时,将从最早创建的云主机开始逐台移除。
          • CPU利用率最低的云主机:当弹性伸缩组开始执行缩容活动时,将从CPU利用率最低的云主机开始逐台移除。
          • 内存利用率最低的云主机:当弹性伸缩组开始执行缩容活动时,将从内存利用率最低的云主机开始逐台移除。
          Note: 弹性伸缩组每次缩容最小允许减少1台云主机,该数值设置过大可能导致缩容活动失败。
    Figure 3所示:
    Figure 3. 伸缩策略配置


  4. 确认信息

    查看将要创建的弹性伸缩组,支持跳转修改。

    Figure 4所示:
    Figure 4. 确认信息