首页 > 网站 > 建站经验 > 正文

OpenStack Heat AutoScaling详解及实例代码

2019-11-02 16:37:44
字体:
来源:转载
供稿:网友

OpenStack Heat AutoScaling

一、背景

Openstack的Heat是在H版之后加入的组件,旨在创建一套业务流程,更轻松的管理一个集群。集群内的虚拟机可以作为一个整体,统一的为客户提供服务。Heat中把功能定义成资源,在Heat中会用到Nova,Neutron,Ceilometer等组件,这些都可以看成是资源,通过模板文件来描述,模板文件可以是yaml格式,也可以是json格式,一般是yaml格式。

AutoScaling的概念最早出现在AWS,AutoScaling是一项Web服务,目的是根据用户定义的策略,时间表的运行状态检查启动或终止虚拟机,达到自动伸缩。

Openstack里的Auto Scale是由Heat和Ceilometer模块一起配合完成的。Ceilometer负责收集处理性能数据,一旦达到Heat模版里定义的阀值,就发告警信息给heat-engine,由heat-engine调动Heat模版里定义的其它的OpenStack资源实现auto scale。

二、Heat AutoScaling Resources

实现AutoScaling功能涉及到的资源如下:

1.AWS::AutoScaling::AutoScalingGroup

伸缩组是具有相同应用场景的实例的集合,定义了组内实例数的最大值和最小值,冷却时间等等。

注:冷却时间是指一个伸缩活动后的一段锁定时间,在这个时间内不能进行其他的伸缩活动。

语法如下:

{ "Type" : "AWS::AutoScaling::AutoScalingGroup", "Properties" : {  "AvailabilityZones" : [ String, ... ],  "Cooldown" : String,  "DesiredCapacity" : String,  "HealthCheckGracePeriod" : Integer,  "HealthCheckType" : String,  "InstanceId" : String,  "LaunchConfigurationName" : String,  "LoadBalancerNames" : [ String, ... ],  "MaxSize" : String,  "MetricsCollection" : [ MetricsCollection, ... ]  "MinSize" : String,  "NotificationConfigurations" : [ NotificationConfigurations, ... ],  "PlacementGroup" : String,  "Tags" : [ Auto Scaling Tag, ..., ],  "TargetGroupARNs" : [ String, ... ],  "TerminationPolicies" : [ String, ..., ],  "VPCZoneIdentifier" : [ String, ... ] }}

2.AWS::AutoScaling::LaunchConfiguration

伸缩配置定义了用于弹性伸缩的实例的配置。由AutoScalingGroup用于配置组内的实例。

语法如下:

{  "Type" : "AWS::AutoScaling::LaunchConfiguration",  "Properties" : {   "AssociatePublicIpAddress" : Boolean,   "BlockDeviceMappings" : [ BlockDeviceMapping, ... ],   "ClassicLinkVPCId" : String,   "ClassicLinkVPCSecurityGroups" : [ String, ... ],   "EbsOptimized" : Boolean,   "IamInstanceProfile" : String,   "ImageId" : String,   "InstanceId" : String,   "InstanceMonitoring" : Boolean,   "InstanceType" : String,   "KernelId" : String,   "KeyName" : String,   "PlacementTenancy" : String,   "RamDiskId" : String,   "SecurityGroups" : [ SecurityGroup, ... ],   "SpotPrice" : String,   "UserData" : String  }}

3.AWS::AutoScaling::ScalingPolicy

为auto scale group添加伸缩的策略,定义了具体的扩展或者收缩的操作,以及伸缩的数量。

语法如下:

{  "Type" : "AWS::AutoScaling::ScalingPolicy",  "Properties" : {   "AdjustmentType" : String,   "AutoScalingGroupName" : String,   "Cooldown" : String,   "EstimatedInstanceWarmup" : Integer,   "MetricAggregationType" : String,   "MinAdjustmentMagnitude" : Integer,   "PolicyType" : String,   "ScalingAdjustment" : Integer,   "StepAdjustments" : [ StepAdjustments, ... ]  }}   
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表