全部产品
Search
文档中心

指定vCPU和内存创建实例

更新时间: 2021-04-21

大部分场景下,如果没有特殊的规格需求(如GPU、本地盘等),推荐您指定vCPU和内存来创建ECI实例,系统会尝试使用多种ECS规格进行支撑,以提供比ECS单规格更好的弹性和资源供应能力。

背景信息

创建ECI实例时,如果指定的vCPU和内存不符合要求,系统将自动按照ECI支持的规格进行规整。ECI支持的规格如下表所示。

说明

暂未支持的功能:

  • 不支持IPv6。

  • 不支持多网卡能力(目前仅支持一块弹性网卡)。

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

2、4、8、16

20

1

30

2

4

4、8、16、32

20

1.5

50

2

8

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实例分为以下两种方式:

指定实例内容器的vCPU和内存

该方式为Kubernetes默认方式。每个ECI实例最多支持20个容器,每个容器的规格可以自定义配置,但汇总到实例级别时需满足ECI实例的vCPU和内存约束。对于不满足的情况,系统会进行自动规整,并按规整后的规格进行计费。

Kubernetes方式

您可以直接定义对应Container的request来指定该容器的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:
          requests:
            cpu: "500m"      #指定nginx容器的vCPU
            memory: "1024Mi"   #指定nginx容器的内存
      - name: busybox
        image: busybox:latest # replace it with your exactly <image_name:tags>
        ports:
        - containerPort: 8080
        resources:
          requests:
            cpu: "500m"   #指定busybox容器的vCPU
            memory: "1024Mi"  #指定busybox容器的内存
      nodeName: virtual-kubelet  #ACK场景下可以指定nodeName,将Pod调度到ECI上运行

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和内存。

容器组配置