为了满足应用在不同负载下的需求,容器服务不仅提供了容器级别的弹性伸缩,还提供了节点级别的自动伸缩,即通过监测节点的资源占用情况自动调整节点数量。
节点伸缩采取的策略:
- 当监测指标值超过所设定的扩容条件,以用户设定的扩容步长增加节点数量。
- 当监测指标值低于所设定的缩容条件,以系统默认步长 1 减少节点数量。
自动伸缩的监测指标:
前提条件
- 需要将集群的 Agent 升级到最新版本。有关如何升级 Agent 的详细信息,参见升级 Agent。
- 需要将集群的监控服务(acsmonitoring)升级到最新版本。有关如何升级监控服务的详细信息,参见升级系统服务。
- 开通 RAM 并在集群中更新访问授权信息(操作路径:在容器服务管理控制台,单击左侧导航栏中的 集群,选择所需的集群,单击右侧的更多,单击更新访问控制授权信息)。
使用说明
- 容器服务在判断监测指标是否超出所设定的上下限时,使用的是采集周期(一分钟)内监测指标的平均值(即 CPU 平均使用量和内存平均使用量),而且只有当连续三个采集周期内的监测指标平均值均超出所设定的上下限时,容器服务才会触发扩容或伸缩操作,以避免因为监控数据抖动而引起频繁的扩容或缩容操作。
- 节点缩容只会对通过节点扩容创建出来的节点进行,您手动创建或者添加的节点不受影响。如果您希望这些手动添加的节点也可以自动缩容,需要为这些节点添加以下标签。
aliyun.reschedule==true - 节点缩容的时候,系统会删除集群里的 ECS 实例,您需要提前做好数据备份。
- 不要调度有状态服务到可缩容的节点上。
- 扩容出来的 ECS 实例不会影响已经部署的容器。新部署的容器会根据容器的部署规则进行部署。
- 节点缩容时,容器服务会把删除掉的 ECS 实例上的容器迁移到其它 ECS 实例上。
创建节点伸缩规则
- 登录 容器服务管理控制台。
- 在 Swarm 菜单下,单击左侧导航栏中的集群。
- 在集群列表页面,选择要设置的集群,单击管理。
- 单击左侧导航栏中的节点伸缩,单击请新建自动伸缩规则。
- 配置伸缩规则,并单击下一步。
约束规则: - 扩容条件的可选范围是 50%~100%,缩容条件的可选范围是 0%~50%。
- 扩容条件和缩容条件的差值不能小于30%。
- 扩容步长的可选范围是 1~5, 缩容步长目前默认是 1,不支持配置。
- 设置集群最小节点数和集群最大节点数。缩容时,如果节点数 ≤ 集群最小节点数,不会进行缩容操作;扩容时,如果节点数 ≥ 集群最大节点数,不会进行扩容操作。
6. 配置实例规格,并单击确认配置。
当您设置了扩容条件时,您需要设置扩容出来的节点的规格。有关实例规格配置的信息,参见
创建集群。
此外,您还可以设置是否将扩容出来的节点的 IP 添加到 RDS 实例的白名单中,方便 ECS 实例访问 RDS 实例。
Note您仅能将 ECS 实例的 IP 添加到位于同一地域的 RDS 实例的白名单中。
单击 请选择您想要添加白名单的RDS实例,在弹出的对话框中选择所需的 RDS 实例并单击 确定。
查看已创建的节点伸缩规则
您可以查看已创建的节点伸缩规则。
- 登录 容器服务管理控制台。
- 在 Swarm 菜单下,单击左侧导航栏中的集群。
- 在集群列表页面,选择要设置的集群,单击管理。
- 单击左侧导航栏中的节点伸缩,即可以看到已创建的节点伸缩规则。
您可以单击修改修改节点伸缩规则或者单击删除删除节点伸缩规则。
查看监控指标
- 在 Swarm 菜单下,单击左侧导航栏中的集群。
- 在集群列表页面,选择要设置的集群,单击监控。
- 单击左侧导航栏中的容器服务,查看集群列表,单击查看全部规则。
- 在报警规则列表页面,可以看到弹性伸缩自动设置的报警规则。
- 选中一个报警规则,您可以修改报警条件及通知人(支持短信,邮件等通知方式),也可以禁用报警规则。
错误排查
如果您设置的节点弹性伸缩不起作用,可以参考
弹性伸缩不起作用怎么办 来进行错误的排查。