亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Web服務器 > 正文

OpenStack Heat AutoScaling詳解及實例代碼

2024-09-01 13:49:29
字體:
來源:轉載
供稿:網友

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, ... ]  }}   

此外,Heat中AutoScaling還需配合OS::Ceilometer::Alarm使用,由Alarm監控實例的運行狀況,一旦超過閾值,則會產生告警。

三、 Heat AutoScaling Template

下面是一個簡單的例子:

heat_template_version: 2013-05-23description: Heat template for autoscalingparameters:#定義一些變量 flavor:  type: string  default: m1.small image:  type: string  default: 1a2b3c4f-1a2b-3c4f-5d6e-4130ff5203de availability_zone:  type: string  default: nova alarm_scaleout_threshold:#閾值  type: number  default: 80 alarm_scalein_threshold:#閾值  type: number  default: 20resources: neutron_network:  type: OS::Neutron::Net  properties:   name: {get_param: "OS::stack_name"} neutron_subnet:  type: OS::Neutron::Subnet  properties:   name: {get_param: "OS::stack_name"}   network_id: { get_resource: neutron_network }   cidr: '192.168.111.0/24'   gateway_ip: '192.168.111.1'   allocation_pools:    - start: '192.168.111.2'     end: '192.168.111.254' neutron_router:  type: OS::Neutron::Router  properties:   name: {get_param: "OS::stack_name"} add_router_interface:  type: OS::Neutron::RouterInterface  properties:   router_id: { get_resource: neutron_router }   subnet_id: { get_resource: neutron_subnet } nova_server_security_group:  type: OS::Neutron::SecurityGroup  properties:   description: 'security group for VM'   name: {get_param: "OS::stack_name"}   rules: [    {direction: 'ingress',     remote_ip_prefix: '0.0.0.0/0',     port_range_min: 0,     port_range_max: 30000,     ethertype: IPv4,     protocol: 'tcp'},    {direction: 'egress',     remote_ip_prefix: '0.0.0.0/0',     port_range_min: 0,     port_range_max: 65535,     ethertype: 'IPv4',     protocol: 'tcp'},    {direction: 'egress',     remote_ip_prefix: '0.0.0.0/0',     port_range_min: 0,     port_range_max: 65535,     ethertype: 'IPv4',     protocol: 'udp'},    {direction: 'ingress',     remote_ip_prefix: '0.0.0.0/0',     port_range_min: null,     port_range_max: null,     ethertype: 'IPv4',     protocol: 'icmp'},    {direction: egress,     remote_ip_prefix: '0.0.0.0/0',     port_range_min: null,     port_range_max: null,     ethertype: 'IPv4',     protocol: 'icmp'}   ] launch_config:#Scale group中的實例的配置  type: AWS::AutoScaling::LaunchConfiguration  properties:   ImageId: { get_param: image }#實例使用的image   InstanceType: { get_param: flavor }#實例使用的flavor   SecurityGroups: [ get_resource: nova_server_security_group ]   UserData: |#實例啟動時運行的腳本     #!/bin/bash     passwd root << EOD     123456     123456     EOD server_group:#伸縮組  type: AWS::AutoScaling::AutoScalingGroup  properties:   AvailabilityZones: []   Cooldown: '60'#冷卻時間   LaunchConfigurationName: { get_resource: launch_config }#組中實例的配置   MinSize: '1'#最小實例數   MaxSize: '4'#最大實例數   VPCZoneIdentifier: [ get_resource: neutron_subnet ] scaleout_policy:#向上擴展的策略  type: AWS::AutoScaling::ScalingPolicy  properties:   AdjustmentType: ChangeInCapacity#heat 支持三種調整方式:change_in_capacity (new = current + adjustment), #exact_capacity (new = adjustment), percent_change_in_capacity (在current 的基#礎上上按照 adjustment 的 百分比調整)   AutoScalingGroupName: { get_resource: server_group }   ScalingAdjustment: '1'#每次的調整量,即增加一個實例 scalein_policy:#向下收縮的策略  type: AWS::AutoScaling::ScalingPolicy  properties:   AdjustmentType: ChangeInCapacity   AutoScalingGroupName: { get_resource: server_group }   ScalingAdjustment: '-1'#每次的調整量,即減少一個實例 neutron_port:  type: OS::Neutron::Port  properties:   network_id: { get_resource: neutron_network }   fixed_ips:    - subnet_id: { get_resource: neutron_subnet }   security_groups: [ { get_resource: nova_server_security_group } ] alarm_scaleout: #定義一個 ceilometer alarm  type: OS::Ceilometer::Alarm  properties:   description: Scale-up if the average CPU > 80% for 10 minute   meter_name: cpu_util #監控虛擬機的 cpu_util   statistic: avg #statistic 的計算方法為 avg 即平均值法   period: 600 #統計周期   evaluation_periods: 1 #連續幾個周期才算有效   repeat_actions: true   threshold: { get_param: alarm_scaleout_threshold }# cpu_util 的閾值   alarm_actions: #該告警在alarm 狀態時的 action。    - {get_attr: [scaleout_policy, AlarmUrl]}   matching_metadata: {'metadata.user_metadata.groupname': {get_resource: 'server_group'}}   comparison_operator: gt #檢測值和閾值的比較方式為 gt 即大于 alarm_scalein:  type: OS::Ceilometer::Alarm  properties:   description: Scale-down if the average CPU < 20% for 10 minutes   meter_name: cpu_util   statistic: avg   period: 600   evaluation_periods: 1   repeat_actions: true   threshold: { get_param: alarm_scalein_threshold }   alarm_actions:    - {get_attr: [scalein_policy, AlarmUrl]}   matching_metadata: {'metadata.user_metadata.groupname': {get_resource: 'server_group'}}   comparison_operator: lt#檢測值和閾值的比較方式為 lt 即小于outputs: scale_in_url:  value: { get_attr: [ scalein_policy, AlarmUrl ] } scale_out_url:  value: { get_attr: [ scaleout_policy, AlarmUrl ] }

這個stack的功能是監控實例的CPU使用率,當CPU使用率大于80%時,將會啟動一個新的實例,當CPU使用率小于20%,將會減少一個實例。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕日韩av综合精品| 午夜剧场成人观在线视频免费观看| 亚洲a在线观看| 51精品国产黑色丝袜高跟鞋| 国模gogo一区二区大胆私拍| 欧美极品少妇xxxxⅹ裸体艺术| 亚洲精品日韩激情在线电影| 国产日韩一区在线| 久久久久久久久久久久久久久久久久av| 国产精品入口福利| 在线精品91av| 国产偷国产偷亚洲清高网站| 成人激情视频在线播放| 国产精品劲爆视频| 国产亚洲精品久久久久久| 亚洲伊人久久综合| 亚洲第一中文字幕在线观看| 国产精品久久久久久av| 91成品人片a无限观看| 98精品国产自产在线观看| 97视频在线观看播放| 久久久久九九九九| 亚洲欧美中文另类| 88国产精品欧美一区二区三区| 色吧影院999| 国产精品看片资源| 亚洲人午夜色婷婷| 欧洲成人免费aa| 欧美日韩午夜视频在线观看| 亚洲精品美女在线观看| 欧美激情中文字幕在线| 91中文字幕一区| 久久精品一本久久99精品| 欧美性在线观看| 亚洲国产又黄又爽女人高潮的| 国产精品久久久久久久app| 午夜精品视频在线| 国产精品久久久久久久久久新婚| xvideos亚洲| 亚洲欧美精品一区| 亚洲精品一区二三区不卡| 欧美极品少妇xxxxⅹ喷水| 777午夜精品福利在线观看| 久久夜色精品国产| 国产精品爽爽爽| 亚洲一区二区三区四区在线播放| 俺去啦;欧美日韩| 亚洲成人在线网| 国产精品夜色7777狼人| 欧美日本高清视频| 91欧美精品成人综合在线观看| 国产第一区电影| 福利精品视频在线| 91亚洲精华国产精华| 精品久久久久久中文字幕一区奶水| 成人性生交大片免费看视频直播| 国产一区深夜福利| 伊人久久久久久久久久久久久| 日韩精品视频观看| 亚洲精品国产精品久久清纯直播| 亚洲欧美激情一区| 久久久精品在线| 久久精品中文字幕一区| 国产国语videosex另类| 国内伊人久久久久久网站视频| 久久久99久久精品女同性| 亚洲人精品午夜在线观看| 日韩欧美精品网站| 亚洲在线免费视频| 亚洲最大激情中文字幕| 日韩在线视频国产| 日韩av中文字幕在线免费观看| 久久免费视频观看| 久久久免费精品| 日韩在线观看av| 中文字幕日韩高清| 国产成人精品视频在线观看| 欧美电影电视剧在线观看| 国产成人自拍视频在线观看| 日韩欧中文字幕| 亚洲欧美日韩天堂一区二区| 日韩国产高清污视频在线观看| 国产精品揄拍500视频| 欧美国产日韩视频| 91性高湖久久久久久久久_久久99| 国产999精品久久久影片官网| 亚洲最大福利视频网| 亚洲精品福利在线| 在线日韩日本国产亚洲| 国产精品久久网| 亚洲永久免费观看| 性欧美亚洲xxxx乳在线观看| 九色成人免费视频| 久久精品成人动漫| 欧美成人精品在线| 久久久国产成人精品| 深夜福利一区二区| 欧美人与物videos| 日韩av电影手机在线| 亚洲视频在线视频| 伦理中文字幕亚洲| 91亚洲精品久久久久久久久久久久| 色综合久久中文字幕综合网小说| 久色乳综合思思在线视频| 91久久国产精品91久久性色| 91九色视频在线| 欧美性xxxxx极品| 亚洲欧美中文日韩在线| 国产精品自拍偷拍| 国产成人小视频在线观看| 91av视频在线免费观看| 日韩av第一页| 成人免费大片黄在线播放| 91精品国产综合久久香蕉最新版| 国产98色在线| 都市激情亚洲色图| 日韩网站免费观看高清| 欧美天天综合色影久久精品| 国产日韩欧美在线观看| 久久99精品国产99久久6尤物| 国产精品一久久香蕉国产线看观看| 欧美一区二粉嫩精品国产一线天| 国产日本欧美一区| 中文字幕日韩视频| 精品国产依人香蕉在线精品| 亚洲女性裸体视频| 国产精品久久久久久久久久尿| 久久露脸国产精品| 亚洲v日韩v综合v精品v| 91亚洲精品在线观看| 欧美午夜精品在线| 91在线精品播放| 日韩久久精品电影| 欧洲亚洲免费视频| 精品国产乱码久久久久久天美| 精品国产一区二区三区久久久| 国产成人综合一区二区三区| 日韩在线欧美在线国产在线| 日韩av手机在线观看| 国产999精品视频| 亚洲综合精品伊人久久| 亚洲美女av在线播放| 国内精品中文字幕| 国产精品视频在线观看| 欧美性猛交丰臀xxxxx网站| 九九热视频这里只有精品| 久久综合久久美利坚合众国| 久久影视电视剧免费网站| 欧美另类老女人| 欧美激情日韩图片| 国产香蕉精品视频一区二区三区| 日韩三级影视基地| 伊人激情综合网| 欧洲精品久久久| 欧美大片大片在线播放| 国产精品av在线| 欧美亚洲国产视频小说| 精品国产乱码久久久久久虫虫漫画| 日韩成人在线视频| 久久亚洲精品中文字幕冲田杏梨| 九九热精品视频国产| 亚洲国产成人久久综合一区| 亚洲资源在线看| 精品性高朝久久久久久久|