在阿里云上进行Docker集群的自动弹性伸缩

简介

在刚刚结束的云栖大会上,阿里云容器服务演示了容器的自动弹性伸缩,能够从容应对互联网应用的峰值流量。关于阿里云上容器的自动弹性伸缩,可以参考文章在阿里云上进行Docker应用的自动弹性伸缩。

同时在流量变大的时候自动进行容器的弹性伸缩,要求容器集群有很好的容量规划,必须有多余的集群资源以支持弹性扩容。但问题是当流量变大,容器扩容导致集群资源不够的时候怎么办呢,是否需要手工进行容器集群的扩容?实际阿里云容器服务不仅支持容器级别的自动弹性伸缩,也支持集群节点级别的自动弹性伸缩。从而真正做到从容应对高峰流量的场景,提高自动化运维水平,降低响应时间,提高系统可用性。下面介绍怎样进行集群节点的自动弹性伸缩。

自动伸缩策略

节点伸缩采取的策略:

当监测指标值超过所设定的扩容条件,以用户设定的扩容步长增加节点数量。

当监测指标值低于所设定的缩容条件,以系统默认步长1减少节点数量。

自动伸缩的监测指标:

  • 集群CPU平均使用量。

  • 集群内存平均使用量。

节点缩容只会对通过节点扩容创建出来的节点进行,用户手工创建或者添加的节点不受影响。如果想让这些手工添加的节点可以自动缩容,需要为这些节点加上标签:

"aliyun.reschedule==true"

节点缩容的时候,系统会删除集群里的ECS,用户需要提前做好数据备份。请不要调度有状态服务到可缩容节点上。可以参考Docker Compose的constraint。

设置

  • 在 集群列表 页面,选择要设置的集群,点击 管理,进入集群管理页面。

  • 点击左侧导航栏中的 节点伸缩,点击 请新建自动伸缩规则。

    在阿里云上进行Docker集群的自动弹性伸缩

  • 配置伸缩策略

    约束规则:

    • 扩容条件 的可选范围是 50%~100%,缩容条件 的可选范围是 0%~50%。

    • 扩容条件 和 缩容条件 的差值不能小于30%。

    • 扩容步长的可选范围是 1~5, 缩容步长目前默认是1,不支持配置。

    • 设置好集群最小节点数及集群最大节点数。缩容的时候当节点数<=集群最小节点数的时候,不会进行缩容操作;扩容的时候当节点数>=集群最大节点数的时候,不会进行扩容操作。

    • 最好不要设置复合伸缩策略

    • 请谨慎设置伸缩条件,在设置伸缩的时候,伸缩条件就满足且伸缩不能将伸缩条件变成不满足的情况下,监控会不断触发伸缩。

      在阿里云上进行Docker集群的自动弹性伸缩

  • 点击 下一步,选择实例规格,配置扩容节点配置:

    在阿里云上进行Docker集群的自动弹性伸缩

查看监控指标

  • 在 集群列表 页面,选择要设置的集群,点击 监控

    在阿里云上进行Docker集群的自动弹性伸缩

  • 查看弹性伸缩设置的报警规则,点击云监控控制台左边的 容器服务 ,

    在阿里云上进行Docker集群的自动弹性伸缩

  • 点击下面的 **查看全部规则“,可以看到弹性伸缩自动设置的报警规则:

    在阿里云上进行Docker集群的自动弹性伸缩

  • 选中一个报警规则可以修改报警条件及通知人(支持短信,邮件等通知方式),也可以禁用报警规则。

    在阿里云上进行Docker集群的自动弹性伸缩

自动扩容集群

上面我们设置CPU>70进行集群扩容,当集群CPU超过这个设置的时候:

在阿里云上进行Docker集群的自动弹性伸缩

集群开始进行自动扩容:

在阿里云上进行Docker集群的自动弹性伸缩

在阿里云上进行Docker集群的自动弹性伸缩

在云监控报警规则上可以看到报警历史:

在阿里云上进行Docker集群的自动弹性伸缩

相关推荐