1.2. 示例:基于 CPU 使用情况自动扩展
在本例中,编排检查遥测数据,并且自动增加实例的数量,以响应高 CPU 使用量。创建堆栈模板和环境模板,以定义所需的规则和后续配置。本例利用了现有资源(如网络)和使用在您自己的环境中可能不同的名称。
创建环境模板,描述实例类别、网络配置和镜像类型。在
/etc/heat/templates/cirros.yaml中输入以下值:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
/root/environment.yaml中注册 Orchestration 资源:resource_registry: "OS::Nova::Server::Cirros": "file:///etc/heat/templates/cirros.yaml"resource_registry: "OS::Nova::Server::Cirros": "file:///etc/heat/templates/cirros.yaml"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建堆栈模板,描述要监视的 CPU 阈值,以及应添加多少个实例。同时也创建实例组,定义可参与此模板的最小和最大实例数量。
在
/root/example.yaml中输入以下值:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新遥测集合间隔。默认情况下,Telemetry 每 10 分钟轮询实例,以进行 CPU 数据。在本例中,将
/etc/ceilometer/pipeline.yaml中的间隔更改为 60 秒:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意不建议在生产环境中使用 60 秒的轮询周期,因为更高的轮询间隔可能会导致 control plane 的负载增加。
重启所有 OpenStack 服务以应用更新的 Telemetry 设置:
openstack-service restart
# openstack-service restartCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意此步骤将导致 OpenStack 部署简单中断。
运行编配脚本以构建环境并部署实例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编配将创建堆栈并启动单个 cirros 实例,如
scaleup_group定义中设置的:min_size:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编排也创建两个 cpu 警报,它们用于触发扩展或缩减事件,如
cpu_alarm_high和cpu_alarm_low定义:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2.1. 测试自动扩展实例 复制链接链接已复制到粘贴板!
编配根据 cpu_alarm_high 阈值自动扩展实例。CPU 使用率超过 50% 实例将扩展,如 cpu_alarm_high 定义中的设置: threshold: 50
要生成 CPU 负载,请登录实例并运行 dd 命令:
ssh -i admin.pem cirros@192.168.122.232 dd if=/dev/zero of=/dev/null & dd if=/dev/zero of=/dev/null & dd if=/dev/zero of=/dev/null &
$ ssh -i admin.pem cirros@192.168.122.232
$ dd if=/dev/zero of=/dev/null &
$ dd if=/dev/zero of=/dev/null &
$ dd if=/dev/zero of=/dev/null &
运行 dd 命令后,您可以预期在 cirros 实例中具有 100% 的 CPU 使用率。在 60 秒后,您应该看到编排已将组自动扩展到两个实例:
进一步的 60 秒后,您将观察编排已再次自动扩展到三个实例。由于三个是此配置的最大值,因此它不会扩展任何更高的值(如 scaleup_group 定义中设置的一样: max_size)
1.2.2. 自动缩放实例 复制链接链接已复制到粘贴板!
编排根据 cpu_alarm_low 阈值自动扩展实例。在本例中,当 CPU 使用率低于 10% 后,实例将缩减。终止正在运行的 dd 进程,您将观察编排开始缩减实例。
停止 dd 进程会导致 cpu_alarm_low 事件触发。因此,编配过程开始自动扩展并删除实例:
几分钟后,您可以返回到单个实例,在 scaleup_group 中允许的最小实例数量:min_size: 1