全部产品
Search
文档中心

容器服务 Kubernetes 版 ACK:通过指定CPU和内存创建ECI Pod

更新时间:Sep 11, 2023

在创建ECI Pod时,您可以指定单个容器或ECI Pod的CPU与内存规格。本文分别介绍如何指定ECI实例内容器规格和ECI Pod规格。

索引

指定ECI实例内容器规格

通过Kubernetes标准方式配置单个容器的CPU和内存,ECI的资源则是Pod内所有容器所需资源的总和。

每个ECI实例支持最多20个容器,实例内每个容器的资源支持自定义配置,但汇总到ECI实例级别需要满足CPU和内存约束。

  • 对于未满足的情况,ECI会执行自动规整操作,计费按照规整后CPU和内存值进行计费。

  • 对于大于4 vCPU的情况,为了减少因操作失误造成规整,浪费计费资源,您需要严格声明规格资源,否则接口会返回规格非法错误。

ECI Pod支持的CPU和内存规格,如下表所示。

vCPU

内存(GiB)

emptyDir空间大小(GiB)

网络带宽能力(出+入)(Gbit/s)(理论上限值)

网络收发包能力(出+入)(万PPS)(理论上限值)

网卡多队列

0.25

0.5、1

30

0.08

4

1

0.5

1、2

30

0.08

5

1

1

2、4、8

30

0.1

5

1

2

1、2、4、8、16

30

1

30

2

4

2、4、8、16、32

30

1.5

50

2

8

4、8、16、32、64

30

2

80

4

12

12、24、48、96

30

2.5

90

4

16

16、32、64 、128

30

3

100

4

24

24、48、96、192

30

4.5

150

6

32

32、64、128、256

30

6

200

8

52

96、192、384

30

12.5

300

32

56

224

30

10

450

14

64

128、256、512

30

20

400

16

使用示例

基于Kubernetes原生方式,直接定义对应containerrequest即可。

说明

当Limit与Request不一致时,系统将基于Limit进行资源规格申请。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80
        resources:
          requests:
            cpu: "500m"
            memory: "1024Mi"
      - name: busybox
        image: busybox:latest
        ports:
        - containerPort: 80
        resources:
          requests:
            cpu: "500m"
            memory: "1024Mi"

指定ECI Pod规格

在指定ECI Pod级别的CPU和内存模式下,对于指定的CPU和内存规格,ECI会尝试使用多种ECS规格进行支撑,以提供比ECS单规格更好的库存和弹性能力。具有以下优势:

  • ECI实例内容器可以不用限制资源上限。在定义实例内容器资源时,可以不用指定requestlimit,各容器可以最大程度的共享申请的资源。

  • 在基因计算和Istio场景下,业务框架会自动给Pod添加Sidecar容器。通过显式指定ECI实例规格,ECI可以无缝地对接这类业务框架。

使用示例

说明

当Limit与Request不一致时,系统将基于Limit进行资源规格申请。

通过在Pod定义中设置annotations: k8s.aliyun.com/eci-use-specs,可以配置多个规格,以逗号分隔。

apiVersion: apps/v1
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"
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80
      - name: busybox
        image: busybox:latest
        ports:
        - containerPort: 80
        resources:
          limits:
            cpu: "500m"
            memory: "1024Mi"