1.2. 示例:根据 CPU 使用率自动扩展
在本例中,编配会检查遥测数据,并自动增加实例的数量以响应高 CPU 使用量。创建了堆栈模板和环境模板,以定义所需规则和后续配置。本例使用现有资源,如网络,并使用在您自己的环境中可能不同的名称。
创建环境模板,描述实例类别、网络配置和镜像类型,并将它保存到模板
/home/<user>/stacks/example1/cirros.yaml
文件中。将 <user
> 变量替换为真实用户名:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
~/stacks/example1/environment.yaml
中注册编排资源:resource_registry: "OS::Nova::Server::Cirros": ~/stacks/example1/cirros.yaml
resource_registry: "OS::Nova::Server::Cirros": ~/stacks/example1/cirros.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建堆栈模板,描述要监视的 CPU 阈值以及要添加的实例数量。也会创建一个实例组,定义参与此模板的最小和最大实例数量。
注意granularity
参数需要根据 gnocchicpu_util
指标粒度来设置。如需更多信息,请参阅 此解决方案文章。将以下值保存到
~/stacks/example1/template.yaml
中:Copy 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 使用率达到 阈值
参数中定义的值后,将启动另一个实例来均衡负载。以上 template.yaml
文件中的 阈值
被设置为 80%。
登录到实例并运行多个
dd
命令来生成负载:ssh -i ~/mykey.pem cirros@192.168.122.8 sudo dd if=/dev/zero of=/dev/null & sudo dd if=/dev/zero of=/dev/null & sudo dd if=/dev/zero of=/dev/null &
$ ssh -i ~/mykey.pem cirros@192.168.122.8 $ sudo dd if=/dev/zero of=/dev/null & $ sudo dd if=/dev/zero of=/dev/null & $ sudo dd if=/dev/zero of=/dev/null &
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
dd
命令,预期在 cirros 实例中有 100% CPU 使用率。验证警报是否已触发:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 一段时间后(大约 60 秒),编排将启动另一个实例并将它添加到组中。您可以使用
nova list
命令验证这一点:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在另一个短时间内后,您将观察编排已再次自动缩放到三个实例。将配置设置为最多三个实例,因此它将不会扩展任何更高(
scaleup_group
定义:max_size
)。同样,您可以使用上述命令验证:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2.2. 自动缩放实例 复制链接链接已复制到粘贴板!
编排也可以根据 cpu_alarm_low
阈值来自动缩减实例。在本例中,实例在 CPU 使用率低于 5% 后缩减。
终止正在运行的
dd
进程,并观察编配开始缩减实例:killall dd
$ killall dd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 停止
dd
进程会导致cpu_alarm_low
事件触发。因此,编配开始自动缩减和移除实例。验证已触发对应的警报:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 五分钟后,编排会持续将实例数量减少到
scaleup_group
定义中min_size
参数中定义的最小值。在这种情况下,min_size
参数设为1
。
1.2.3. 对设置进行故障排除 复制链接链接已复制到粘贴板!
如果您的环境无法正常工作,您可以在日志文件和历史记录记录中查找错误。
要获取状态转换的信息,您可以列出堆栈事件记录:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 读取警报历史记录日志:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要查看 heat 为现有堆栈收集的 scale-out 或 scale-down 操作的记录,您可以使用
awk
解析heat-engine.log
:awk '/Stack UPDATE started/,/Stack CREATE completed successfully/ {print $0}' /var/log/containers/heat/heat-engine.log
$ awk '/Stack UPDATE started/,/Stack CREATE completed successfully/ {print $0}' /var/log/containers/heat/heat-engine.log
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要查看与
aodh
相关的信息,请检查evaluator.log
:grep -i alarm /var/log/containers/aodh/evaluator.log | grep -i transition
$ grep -i alarm /var/log/containers/aodh/evaluator.log | grep -i transition
Copy to Clipboard Copied! Toggle word wrap Toggle overflow