模版定义两个告警和伸缩策略,当 CPU 使用率在 300s 内大于 80% 则发出告警,heat 接收到告警开始创建新的虚拟机,最多 3 台。当 CPU 使用率在 300s 内小于 10% 则发出告警,heat 接收到告警开始删除虚拟机,最少保留 1 台。
查看创建的 stack 、alarm 和虚拟机
~ openstack stack list +--------------------------------------+-------------+-----------------+----------------------+--------------+ | ID | Stack Name | Stack Status | Creation Time | Updated Time | +--------------------------------------+-------------+-----------------+----------------------+--------------+ | af75c5e5-35c6-4ab3-b899-e4d9afbbcd74 | autoscaling | CREATE_COMPLETE | 2018-10-19T03:32:29Z | None | +--------------------------------------+-------------+-----------------+----------------------+--------------+
➜ ~ openstack alarm list +--------------------------------------+--------------------------------------------+-----------------------------------------+-------+----------+---------+ | alarm_id | type | name | state | severity | enabled | +--------------------------------------+--------------------------------------------+-----------------------------------------+-------+----------+---------+ | 6dfded8c-21a9-4792-a21c-eebc421e8706 | gnocchi_aggregation_by_resources_threshold | autoscaling-cpu_alarm_low-4e2ptwvvhbjq | alarm | low | True | | 2eaa8f6c-3ec5-43ca-8c19-81470c0686a8 | gnocchi_aggregation_by_resources_threshold | autoscaling-cpu_alarm_high-2t4zh5stxmt7 | ok | low | True | +--------------------------------------+--------------------------------------------+-----------------------------------------+-------+----------+---------+
~ openstack server list +--------------------------------------+-------------------------------------------------------+--------+----------------+------------------------------+ | ID | Name | Status | Networks | Image Name | +--------------------------------------+-------------------------------------------------------+--------+----------------+------------------------------+ | 3d723c6d-6c3e-41ba-a906-ded508f5006a | au-aleup_group-glnobyldea74-jnbifnyzqpr7-vghtyrjmru5u | ACTIVE | net0=10.0.1.6 | xenial-server-cloudimg-amd64 | +--------------------------------------+-------------------------------------------------------+--------+----------------+------------------------------+
自动创建测试
1. 通过 stress 程序对虚拟机 CPU 进行压测
打开虚拟机控制台,运行以下命令进行 CPU 压测,持续 1200s
#stress --cpu1 --timeout1200
2. 查看虚拟机的 CPU 使用率
使用以下命令查询虚拟机的 CPU 使用率
~ gnocchi measures show cpu_util --resource-id instance_uuid