为了满足应用在不同负载下的需求,容器服务支持服务的弹性伸缩,即根据服务的容器资源占用情况自动调整容器数量。
您可以在创建应用时为应用设置容器自动伸缩规则,或者通过变更应用配置为已创建的应用添加容器自动伸缩规则。
弹性伸缩策略:
- 当监测指标值超过所设定的上限,以用户设定的步长增加容器数量。
- 当监测指标值低于所设定的下限,以用户设定的步长减少容器数量。
服务监测指标:
- CPU 平均使用量
- 内存平均使用量
- 容器的入网速率(目前仅支持通过编排模板进行设置)
- 容器的出网速率(目前仅支持通过编排模板进行设置)
前提条件
使用说明
- 容器服务在判断监测指标是否超出所设定的上下限时,使用的是采集周期(一分钟)内监测指标的平均值(即 CPU 平均使用量和内存平均使用量),而且只有当连续三个采集周期内的监测指标平均值均超出所设定的上下限时,容器服务才会触发扩容或伸缩操作,以避免因为监控数据抖动而引起频繁的扩容或缩容操作。
- 容器缩容的时候,系统会删除集群里的容器,您需要提前做好数据备份。
设置方法
您可以通过以下方法创建容器弹性伸缩:
Note 如果您设置的容器弹性伸缩不起作用,可以参考弹性伸缩不起作用怎么办
来进行错误的排查。
使用镜像创建应用
- 在创建应用时,选择使用镜像创建。
有关如何创建应用的详细信息,参见创建应用。
- 在页面最下边的调度配置中,勾选开启自动伸缩并设置自动伸缩参数。
约束规则:
- 扩容条件 的可选范围是 50%~100%,缩容条件的可选范围是 0%~50%。
- 扩容条件和缩容条件的差值不能小于30%。
- 步长的可选范围为 1~5,默认为 1。
- 设置最小容器数量 和最大容器数量。缩容时,如果容器数 ≤ 最小容器数量,不会进行缩容操作;扩容时,如果容器数 ≥ 最大容器数量,不会进行扩容操作。
Note- 建议不要同时设置基于 CPU 使用量和内存使用量的复合伸缩规则。
- 请谨慎设置伸缩策略。如果在您设置伸缩规则的时候,应用就满足所设置的伸缩条件而且伸缩后应用仍然满足伸缩条件,那么监控将会不断地触发伸缩。
使用编排模板创建应用
- 在创建应用时,选择使用编排模板创建。
有关如何创建应用的详细信息,参见创建应用。
- 选择使用已有编排模板 或者使用您自己的编排模板。
- 添加容器自动伸缩的配置信息。
- 通过新增服务。
在弹出的对话框中,选择 nginx 镜像,配置需要的参数,然后单击更多设置,勾选开启自动伸缩并设置自动伸缩参数。
- 手动在模板中设置。
在编排模板的
labels
配置中,添加相应的标签:- 指定步长(默认值为 1):
aliyun.auto_scaling.step
- 最小容器数量(默认值为
1):
aliyun.auto_scaling.min_instances
- 最大容器数量(默认值为
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
- 指定上限:
- 以出网速率(bytes/s)为指标
- 指定上限:
aliyun.auto_scaling.max_internetOutRate
- 指定下限:
aliyun.auto.scaling.min_internetOutRate
- 指定上限:
- 以入网速率(bytes/s)为指标
- 指定上限:
aliyun.auto_scaling.max_internetInRate
- 指定下限:
aliyun.auto_scaling.min_internetInRate
- 指定上限:
示例: - 指定步长(默认值为 1):
- 通过新增服务。
变更应用配置
您可以通过变更已有应用的配置为容器添加自动伸缩设置。
- 在应用列表页面,选择需要设置的应用并单击右侧的变更配置。
有关变更配置的操作信息,参见变更应用配置。
- 在模板的
labels
配置中,添加容器自动伸缩相应的标签。
查看已创建的容器伸缩规则
您可以查看已创建的容器伸缩规则。
- 登录 容器服务管理控制台。
- 单击左侧导航栏中的应用。
- 在应用列表页面,选择所需的应用,单击变更应用配置。
您可以看到已创建的容器伸缩规则。您可以在模板中修改容器伸缩规则。