大部分场景下,如果没有特殊的规格需求(如GPU、本地盘等),推荐您指定vCPU和内存来创建ECI实例,系统会尝试使用多种ECS规格进行支撑,以提供比ECS单规格更好的弹性和资源供应能力。
背景信息
创建ECI实例时,如果指定的vCPU和内存不符合要求,系统将自动按照ECI支持的规格进行规整。规整时将向最接近的ECI规格进行规整,同时需满足指定的vCPU和内存≤ECI规格的vCPU和内存。例如:创建ECI实例时,声明了7 vCPU,13 GiB内存,则实际创建的ECI实例为8 vCPU,16 GiB内存。
ECI支持的规格如下表所示。
目前仅支持一块弹性网卡,暂不支持多网卡能力。
如果未指定vCPU和内存规格,系统默认采用2 vCPU和4 GiB内存的规格创建ECI实例。
vCPU | 内存(GiB) | emptyDir空间大小(GiB) | 网络带宽能力(出+入)(Gbit/s) | 网络收发包能力(出+入)(万PPS) | 网卡多队列 |
---|---|---|---|---|---|
0.25 | 0.5、1 | 20 | 0.1 | 4 | 1 |
0.5 | 1、2 | 20 | 0.2 | 5 | 1 |
1 | 2、4、8 | 20 | 0.5 | 5 | 1 |
2 | 1、2、4、8、16 | 20 | 1 | 30 | 2 |
4 | 2、4、8、16、32 | 20 | 1.5 | 50 | 2 |
8 | 4、8、16、32、64 | 20 | 2.0 | 80 | 4 |
12 | 12、24、48、96 | 20 | 2.5 | 90 | 4 |
16 | 16、32、64 、128 | 20 | 3.0 | 100 | 4 |
24 | 48、96、192 | 20 | 4.5 | 150 | 6 |
32 | 64、128、256 | 20 | 6.0 | 200 | 8 |
52 | 96、192、384 | 20 | 12.5 | 300 | 32 |
64 | 128、256、512 | 20 | 20.0 | 400 | 16 |
指定vCPU和内存创建ECI实例分为以下两种方式:
控制台暂不支持创建1:1实例(即vCPU和内存比为1:1),如果需要创建1:1实例,请采用OpenAPI或者Kubernetes方式。
指定实例内容器的vCPU和内存
该方式为Kubernetes默认方式。每个ECI实例最多支持20个容器,每个容器的规格可以自定义配置,但汇总到实例级别时需满足ECI实例的vCPU和内存约束。对于不满足的情况,系统会进行自动规整,并按规整后的规格进行计费。
Kubernetes方式
您可以直接定义对应Container的limit来指定该容器的vCPU和内存。示例如下:
apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
kind: Deployment
metadata:
name: nginx-deployment-basic
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9 # replace it with your exactly <image_name:tags>
command: sleep 3600
ports:
- containerPort: 80
resources:
limits:
cpu: "500m" #指定nginx容器的vCPU
memory: "1024Mi" #指定nginx容器的内存
- name: busybox
image: busybox:latest # replace it with your exactly <image_name:tags>
ports:
- containerPort: 8080
resources:
limits:
cpu: "500m" #指定busybox容器的vCPU
memory: "1024Mi" #指定busybox容器的内存
OpenAPI方式
调用CreateContainerGroup接口创建ECI实例时,您可以通过Container.N.Cpu和Container.N.Memory来指定容器的vCPU和内存,相关参数说明如下表所示。更多信息,请参见CreateContainerGroup。
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Container.N.Cpu | Float | 否 | 2 | 容器的vCPU大小。单位:核。N表示第几个容器,最多20个。 |
Container.N.Memory | Float | 否 | 4 | 容器的内存大小。单位:GiB。N表示第几个容器,最多20个。 |
控制台方式
通过弹性容器实例售卖页创建ECI实例时,您可以在各个容器的高级配置中设置vCPU和内存。各容器的vCPU和内存汇总后,不能超过实例(即容器组)的vCPU和内存设置。

指定实例的vCPU和内存
该方式下,系统将根据指定的ECI实例的vCPU和内存,直接尝试使用多种ECS规格进行支撑,以实现更好的弹性和资源供应能力。该方式还具备以下优势:
实例内容器可以不用指定vCPU和内存规格或者限制资源上限,各容器可以更大程度地共享申请的资源。
在基因计算和Istio场景下,业务框架会自动给Pod添加Sidecar容器,通过显式指定ECI实例规格,ECI可以无缝对接这类业务框架。
Kubernetes方式
您可以在Pod metadata中添加Annotation来指定实例的vCPU和内存。示例如下:
apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
kind: Deployment
metadata:
name: nginx-deployment-basic
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
annotations:
k8s.aliyun.com/eci-use-specs : "2-4Gi" #指定ECI实例的vCPU和内存
spec:
containers:
- name: nginx
image: nginx:1.7.9 # replace it with your exactly <image_name:tags>
ports:
- containerPort: 80
- name: busybox
image: busybox:latest # replace it with your exactly <image_name:tags>
ports:
- containerPort: 80
resources:
limits:
cpu: "500m" #容器的vCPU上限
memory: "1024Mi" #容器的内存上限
nodeName: virtual-kubelet #ACK场景下可以指定nodeName,将Pod调度到ECI上运行
OpenAPI方式
调用CreateContainerGroup接口创建ECI实例时,您可以通过Cpu和Memory来指定实例的vCPU和内存,相关参数说明如下表所示。更多信息,请参见CreateContainerGroup。
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Cpu | Float | 否 | 2 | 实例级别vCPU大小。单位:核。 |
Memory | Float | 否 | 4 | 实例级别内存大小。单位:GiB。 |
控制台方式
通过弹性容器实例售卖页创建ECI实例时,您可以在容器组配置中直接选择实例(即容器组)的vCPU和内存。
