当前位置:首页 > 云计算 > 正文

云计算怎么实现弹性伸缩


一、如何实现Docker应用的自定义弹性伸缩简介
许多客户现在对自动动态扩展其应用程序的能力非常感兴趣。一些客户也有自己的监控框架,希望与阿里云容器服务集成。阿里云容器服务为服务提供弹性伸缩触发器,可以与监控框架集成,为自定义服务部署自动化弹性伸缩。
阿里云容器服务自动采集容器监控数据,并可以通过集成将监控数据发送给第三方监控框架。有了监控数据,我们就可以在监控框架内定义自己的报警规则。当指标警报发生时,我们可以调用阿里云容器服务提供的触发器来对容器进行扩容或缩容。
下面使用Influxdb和Kapacitor演示如何通过集成触发器和监控框架来实现自定义弹性伸缩。
为服务创建伸缩触发器
在阿里云容器服务应用列表中,点击需要控制自动扩展的应用。输入后,点击。“创建触发器”
然后选择“缩放资源”并选择要缩放的服务名称
触发器创建如下:
您需要调用saleout时添加参数&type=scale_out&step=2。
部署和监控Influxdb
包括序列数据库Influxdb监控时间、Kapacitor监控警报面板和Grafana界面显示。我们可以使用模板进行部署:
version:'2'
services:
influxdb:
image:influxdb:0.13
端口:
-"8083:8083"
-"8086:8086"
container_name:"influxdb"
标签:
:""
grafana:
image:grafana/grafana:3.0.3-1463994644
端口:
-"3000:3000"
link链接:
-influxdb
kapacitor:
图像:kapacitor:0.13
端口:
-“9092:9092”
体积:
-/etc/acs/:/etc/acs/
环境:
-KAPACITOR_INFLUXDB_0_URLS_0=
命令:kapacitord-config/etc/kapacitor/
模板中传入“db”标签,指定将阿里云容器服务中的监控数据发送到Influxdb。
在服务阿里云容器中添加模板,并通过模板创建应用:
部署的应用程序:
配置Kapacitor警报规则
创建警报规则文件。在Kapacitor中配置警报规则,并在警报发生时调用扩展的触发URL。
通过Web远程终端或DockerExec导入Kapacitor容器并添加警报规则报纸。例如,我们设置一条警报规则。CPU指标并创建文件/etc/acs/,内容如下:
stream
//Selectjustthecpumeasurementfromourexampledatabase.
|from()
。measurement('docker_container_cpu')
|groupBy('r','')
|alert()
.crit(lambda:"r"=='xxxxx'AND""=='xxxxx'ANDusage_percent">70)
.post('
yYWRhODQwMDJhNjRmNWVhZjcxZjU1ZTllfG5naW54LWRlZmF1bHR8cmVkZXBsb3l8MThtZHFxbXJkNXJ
kaHw=&secret=xxx&type=缩放&步长=1')
.log('/tmp/')
这里我们按集群和服务聚合监控的CPU指标“docker_container_cpu”,然后确认设置时间Usage_percent>70扩展服务
同样,我们还可以添加收缩警报规则
定义警报规则并启用它,在Kapacitor容器中执行以下命令来定义并启用警报规则。
kapacitordefinecpu_alert-typestream-tickcpu_t;
kapacitorenablecpu_alertbr/>这样当CPU使用率超过70%时,就会自动调用expand触发器来扩展容器。