简介
上次介绍了通过监控集成实现容器的自定义弹性伸缩。最近阿里云Docker容器服务发布了自动弹性伸缩的支持,可以非常方便的支持容器的自动弹性伸缩,从而更好的支持应用的弹性管理。能够自动的监控容器应用的指标,并根据配置的自动弹性伸缩的规则进行扩缩容。在业务增长超过监控指标阀值的时候自动增加容器应用的实例数目,并在业务下降的时候自动收缩容器数目。从而简化容器应用的管理,提高应用的可用性,提高资源的利益效率。
设置方法
使用镜像创建应用
- 在创建应用时,选择“使用镜像创建”,这里我们部署一个Tomcat应用。
- 在“更多设置”中,勾选“开启”自动伸缩,设置指标、下限、上限、步长、最大实例数目,最小实例数目即可。
使用模板创建应用
- 使用编排模板创建应用时,点击“新增服务”
- 在弹出的窗口中打开“更多设置”,勾选“开启”自动伸缩,设置指标、下限、上限、步长即可。同上。
手动设置
在编排模板的labels配置中,添加相应的标签:
- 指定步长(默认值是1):aliyun.auto_scaling.step
- 最大实例数量(默认值是10):aliyun.auto_scaling.max_instances
以CPU使用量为指标
- 指定上限: aliyun.auto_scaling.max_cpu
- 指定下限:aliyun.auto_scaling.min_cpu
以内存使用量为指标
- 指定上限:aliyun.auto_scaling.max_memory
- 指定下限:aliyun.auto_scaling.min_memory
示例(Wordpress):
web:
image: registry.aliyuncs.com/acs-sample/wordpress:4.5
ports:
- '80'
environment:
WORDPRESS_AUTH_KEY: changeme
WORDPRESS_SECURE_AUTH_KEY: changeme
WORDPRESS_LOGGED_IN_KEY: changeme
WORDPRESS_NONCE_KEY: changeme
WORDPRESS_AUTH_SALT: changeme
WORDPRESS_SECURE_AUTH_SALT: changeme
WORDPRESS_LOGGED_IN_SALT: changeme
WORDPRESS_NONCE_SALT: changeme
WORDPRESS_NONCE_AA: changeme
restart: always
links:
- 'db:mysql'
labels:
aliyun.logs: /var/log
aliyun.probe.url: http://container/license.txt
aliyun.probe.initial_delay_seconds: '10'
aliyun.routing.port_80: http://wordpress
aliyun.scale: '3'
aliyun.auto_scaling.max_cpu: '70'
aliyun.auto_scaling.step: '2'
aliyun.max_instances:'10'
db:
image: registry.aliyuncs.com/acs-sample/mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: password
restart: always
labels:
aliyun.logs: /var/log/mysql
然后进行应用部署。
报警规则及通知变更
应用部署后报警规则及通知可以在云监控上查看及修改。
自动扩缩容
当设定的指标超过阀值后,容器会自动进行容器的扩缩容。这里容器从3个自动扩容到5个。
更多关于阿里云容器服务的信息,请访问阿里云容器服务: https://www.aliyun.com/product/containerservice