配置资源规整忽略特定容器

本文介绍如何为特定容器(例如Sidecar容器)设置环境变量,实现在资源规整时忽略该容器,以避免资源浪费,节约实例成本。

功能说明

指定vCPU和内存创建ECI实例时,您可以自定义指定每个容器的vCPU和内存,但汇总到实例级别时,需满足ECI实例整体的vCPU和内存约束。如果实例级别没有配置vCPU和内存,则会汇总计算所有容器的规格之和,对于总和不满足ECI规格的情况,系统会自动进行资源规整。

资源规整2

一般情况下,容器内指定的vCPU和内存为容器资源上限,实际运行实例时,系统会动态调整资源分配。因此对于实例内一些不影响业务的特定容器,您可以通过设置环境变量_ECI_RESOURCE_IGNORE_:TRUE的方式,实现实例资源规整时忽略这些容器,避免资源规整后创建的实例规格过大,出现资源浪费。

示例如下:

资源规整

如上图所示,假设一个ECI实例包含3个容器,容器1和2(业务容器)均配置为2 vCPU、4 GiB内存,容器3(Sidecar容器)配置为0.25 vCPU、0.5 GiB内存。一般情况下,系统会自动将实例规格规整到8 vCPU、16GiB内存。但实际情况下可能并不需要8 vCPU、16GiB的资源,在不影响业务的基础上,您可以为Sidecar容器设置环境变量__ECI_RESOURCE_IGNORE__:TRUE。配置后,系统会忽略Sidecar容器,将实例规格规整到4 vCPU、8GiB内存。

配置说明

调用CreateContainerGroup接口创建ECI实例时,在未设置Cpu和Memory的情况下,通过Container.N.Cpu和Container.N.Memory可以指定容器的vCPU和内存。对于想要配置资源规整忽略的容器,可以通过Container.N.EnvironmentVar.N.Key和Container.N.EnvironmentVar.N.Value来设置环境变量(__ECI_RESOURCE_IGNORE__:TRUE)。相关参数说明如下表所示。更多信息,请参见CreateContainerGroup

名称

类型

示例值

描述

Cpu

Float

不设置

实例级别vCPU大小。单位:核。

Memory

Float

不设置

实例级别内存大小。单位:GiB。

Container.N.Cpu

Float

2

容器的vCPU大小。单位:核。N表示第几个容器,最多20个。

Container.N.Memory

Float

4

容器的内存大小。单位:GiB。N表示第几个容器,最多20个。

Container.N.EnvironmentVar.N.Key

String

__ECI_RESOURCE_IGNORE__

环境变量名。第一个N表示第几个容器,第二个N表示第几个环境变量。

Container.N.EnvironmentVar.N.Value

String

TRUE

环境变量值。第一个N表示第几个容器,第二个N表示第几个环境变量。

说明

使用控制台创建ECI实例时,必须要设置实例级别的vCPU和内存,因此不涉及资源规整。

阿里云首页 弹性容器实例 相关技术圈