在阿里云上进行Docker集群的自动弹性伸缩
简介
在刚刚结束的云栖大会上,阿里云容器服务演示了容器的自动弹性伸缩,能够从容应对互联网应用的峰值流量。关于阿里云上容器的自动弹性伸缩,可以参考文章在阿里云上进行Docker应用的自动弹性伸缩。
同时在流量变大的时候自动进行容器的弹性伸缩,要求容器集群有很好的容量规划,必须有多余的集群资源以支持弹性扩容。但问题是当流量变大,容器扩容导致集群资源不够的时候怎么办呢,是否需要手工进行容器集群的扩容?实际阿里云容器服务不仅支持容器级别的自动弹性伸缩,也支持集群节点级别的自动弹性伸缩。从而真正做到从容应对高峰流量的场景,提高自动化运维水平,降低响应时间,提高系统可用性。下面介绍怎样进行集群节点的自动弹性伸缩。
自动伸缩策略
节点伸缩采取的策略:
当监测指标值超过所设定的扩容条件,以用户设定的扩容步长增加节点数量。
当监测指标值低于所设定的缩容条件,以系统默认步长1减少节点数量。
自动伸缩的监测指标:
集群CPU平均使用量。
集群内存平均使用量。
节点缩容只会对通过节点扩容创建出来的节点进行,用户手工创建或者添加的节点不受影响。如果想让这些手工添加的节点可以自动缩容,需要为这些节点加上标签:
"aliyun.reschedule==true"
节点缩容的时候,系统会删除集群里的ECS,用户需要提前做好数据备份。请不要调度有状态服务到可缩容节点上。可以参考Docker Compose的constraint。
设置
在 集群列表 页面,选择要设置的集群,点击 管理,进入集群管理页面。
点击左侧导航栏中的 节点伸缩,点击 请新建自动伸缩规则。
配置伸缩策略
约束规则:
扩容条件 的可选范围是 50%~100%,缩容条件 的可选范围是 0%~50%。
扩容条件 和 缩容条件 的差值不能小于30%。
扩容步长的可选范围是 1~5, 缩容步长目前默认是1,不支持配置。
设置好集群最小节点数及集群最大节点数。缩容的时候当节点数<=集群最小节点数的时候,不会进行缩容操作;扩容的时候当节点数>=集群最大节点数的时候,不会进行扩容操作。
最好不要设置复合伸缩策略
请谨慎设置伸缩条件,在设置伸缩的时候,伸缩条件就满足且伸缩不能将伸缩条件变成不满足的情况下,监控会不断触发伸缩。
点击 下一步,选择实例规格,配置扩容节点配置:
查看监控指标
在 集群列表 页面,选择要设置的集群,点击 监控
查看弹性伸缩设置的报警规则,点击云监控控制台左边的 容器服务 ,
点击下面的 **查看全部规则“,可以看到弹性伸缩自动设置的报警规则:
选中一个报警规则可以修改报警条件及通知人(支持短信,邮件等通知方式),也可以禁用报警规则。
自动扩容集群
上面我们设置CPU>70进行集群扩容,当集群CPU超过这个设置的时候:
集群开始进行自动扩容:
在云监控报警规则上可以看到报警历史: