指定算力类别创建Pod

大部分场景下,如果没有特殊的规格需求(如GPU、本地盘等),推荐您指定vCPU和内存来创建ECI Pod(即ECI实例)。在此基础上,您可以进一步指定算力类别。例如:对于0.25~8 vCPU的规格需求,在轻量型应用等入门场景,您可以选择经济型规格来满足降低成本的需求;对于1 vCPU及以上的规格需求,如果性能需求较高,则可以选择通用型规格。

算力类别说明

为了更好地满足低成本或性能稳定的需求,ECI推出了指定算力类别功能。当您采用指定vCPU和内存方式创建ECI实例时,ECI会将底层规格分为经济型和通用型两个算力类别。您可以按需选择,系统会从对应类别的底层规格中自动选择合适的规格。

  • 经济型(economy)

    支持的vCPU范围为0.25~8 vCPU,规格单价相比通用型更低。

  • 通用型(general)

    支持的vCPU范围为1~64 vCPU,规格单价与未开通指定算力类别时的ECI规格定价一致。在相同vCPU和内存条件下,通用型规格的性能更优。

如何选择算力类别

您可以根据业务情况,以及对低成本、性能稳定或高可用等需求,来选择合适的算力类别。建议如下:

  • 对于轻量型应用等入门场景,可以选择经济型规格来降低资源成本。

  • 对于性能需求较高的业务场景,可以选择通用型规格,该类别规格性能更优,并且与未指定算力类别相比,性能表现更稳定。

  • 为了避免库存不足的情况,如果您的业务对性能波动有一定的容忍,可以指定多个算力类别来保证高可用。

规格说明

ECI支持的经济型和通用型的详细规格如下:

说明

各规格支持的临时存储空间大小默认均为30 GiB。

经济型规格

所有ECI支持地域均支持的规格

vCPU

内存(GiB)

网络基准带宽能力(出+入)(Gbit/s)

0.25

0.5、1

0.08

0.5

1、2

0.08

1

2、4、8

0.08

2

1、2、4、8、16

0.2

4

2、4、8、16、32

0.4

8

4、8、16、32、64

0.8

仅部分地域支持的规格

重要
  • 下表中的规格仅在部分地域支持,创建以下规格的ECI实例时请确保已指定支持的地域和可用区,否则会因为无库存而导致创建失败。

    支持的地域为:华东1(杭州)、华东2(上海)、华北1(青岛)、华北2(北京)、华北3(张家口)、华北5(呼和浩特)、华北6(乌兰察布)、华南1(深圳)、华南2(河源)、华南3(广州)、西南1(成都)、新加坡。

  • 不支持指定下表中的规格创建抢占式实例。

vCPU

内存(GiB)

网络基准带宽能力(出+入)(Gbit/s)

2

6、10、12、14

0.2

4

6、10、12、14、18、20、22、24、26、28、30

0.4

6

6、8、10、12、14、16、18、20、22、24、26、28、30、32、34、36、38、40、42、44、46、48

0.8

8

10、12、14、18、20、22、24、26、28、30、34、36、38、40、42、44、46、48、50、52、54、56、58、60、62

0.8

通用型规格

所有ECI支持地域均支持的规格

vCPU

内存(GiB)

网络基准带宽能力(出+入)(Gbit/s)

1

2、4、8

1

2

1、2、4、8、16

1

4

2、4、8、16、32

1.5

8

4、8、16、32、64

2

12

12、24、48、96

2.5

16

16、32、64 、128

3

24

24、48、96、192

4.5

32

32、64、128、256

6

52

96、192、384

12.5

64

128、256、512

20

仅部分地域支持的规格

重要
  • 下表中的规格仅在部分地域支持,创建以下规格的ECI实例时请确保已指定支持的地域和可用区,否则会因为无库存而导致创建失败。

    支持的地域为:华东1(杭州)、华东2(上海)、华北1(青岛)、华北2(北京)、华北3(张家口)、华北5(呼和浩特)、华北6(乌兰察布)、华南1(深圳)、华南2(河源)、华南3(广州)、西南1(成都)、新加坡。

  • 不支持指定下表中的规格创建抢占式实例。

vCPU

内存(GiB)

网络基准带宽能力(出+入)(Gbit/s)

2

6、10、12、14

1

4

6、10、12、14、18、20、22、24、26、28、30

1.5

6

6、8、10、12、14、16、18、20、22、24、26、28、30、32、34、36、38、40、42、44、46、48

1.5

8

10、12、14、18、20、22、24、26、28、30、34、36、38、40、42、44、46、48、50、52、54、56、58、60、62

2.5

计费说明

重要

经济型规格和通用型规格目前处于公测中。

  • 经济型规格

    相比于未指定算力类别时的规格,经济型规格的内存单价与之前一致,vCPU单价更低。

    • vCPU单价(vCPU):0.000027 元/秒(0.0972 元/小时)

    • 内存单价(GiB): 0.00000613 元/秒(0.0221 元/小时)

  • 通用型规格

    与未开通指定算力类别时的ECI规格定价一致。

    • vCPU单价(vCPU):0.000049 元/秒(0.1764 元/小时)

    • 内存单价(GiB): 0.00000613 元/秒(0.0221 元/小时)

重要

ECI Pod创建成功后,您可以执行kubectl describe pod命令查看详情,通过k8s.aliyun.com/eci-instance-compute-category字段确认ECI Pod实际使用的算力类别。计费会按照对应类别的规格单价计算。

使用限制

指定算力类别功能具有以下限制:

  • 仅适用于指定vCPU和内存创建ECI实例。

    如果指定了ECS规格,则优先会采用指定的ECS规格,即无法指定算力类别。

  • 不支持抢占式实例功能。

    如果同时配置了抢占式实例和指定算力类别的Annotation,系统会报错(错误码为FeatureBasedConstraintConflict)。

  • 不支持ARM架构的规格。

    如果将ECI Pod调度到ARM架构节点的同时,配置了指定算力类别的Annotation,系统会报错(错误码为FeatureBasedConstraintConflict)。

  • 不支持与以下功能同时使用:

    • 指定或排除ECS规格族

    • 指定或排除ECS规格代数

配置说明

指定vCPU和内存创建ECI Pod时,支持以下两种方式:

  • 指定Pod内容器的vCPU和内存:通过定义Containers的limits或requests来指定,建议使用limits。

  • 指定Pod级别的vCPU和内存:通过在Pod metadata中添加k8s.aliyun.com/eci-use-specs的Annotation来指定。

说明

如果没有指定,或者同时设置了limits、requests和k8s.aliyun.com/eci-use-specs,实际生效情况请参见配置说明

在指定vCPU和内存的基础上,您可以在Pod metadata中添加Annotation来指定算力类别,对应Annotation为k8s.aliyun.com/eci-compute-category,配置说明如下:

  • 取值为economy(表示经济型)和general(表示通用型)。

  • 支持设置多个算力类别,系统会按照设置顺序创建。

重要
  • Annotation请添加在Pod的metadata下,例如:创建Deployment时,Annotation需添加在spec>template>metadata下。

  • 仅支持在创建ECI Pod时添加ECI相关Annotation来生效ECI功能,更新ECI Pod时添加或者修改ECI相关Annotation均不会生效。

生效规则

开通指定算力类别功能后,根据创建ECI Pod时设置的条件,实际创建的ECI Pod所使用的规格和算力类别按以下规则生效:

重要

ECI Pod创建成功后,您可以执行kubectl describe pod命令查看详情,通过k8s.aliyun.com/eci-instance-compute-category字段确认ECI Pod实际使用的算力类别。计费会按照对应类别的规格单价计算。

创建ECI实例时设置的条件

实际生效情况

未指定vCPU和内存,但指定了算力类别。

创建2 vCPU,4 GiB内存的实例,算力类别为指定的类别。

指定了vCPU和内存,且指定了算力类别,两者组合后符合ECI的规格要求。

按照指定的条件创建实例。

指定的vCPU小于1 vCPU,但指定算力类别为通用型。

不符合ECI的规格要求,会自动规整到1 vCPU的通用型规格。

指定的vCPU大于8 vCPU,但指定算力类别为经济型。

不符合ECI的规格要求,无法自动规整,会出现报错。

指定了vCPU和内存,且指定了算力类别,指定的vCPU属于该算力类别的vCPU范围,但不符合ECI的规格要求。

自动按照ECI支持的规格进行规整。规整时将向最接近的ECI规格进行规整,需满足指定的vCPU和内存≤ECI规格的vCPU和内存。

例如:指定vCPU和内存为7-13Gi,指定算力类别为general,会自动规整到8 vCPU,16 GiB内存的通用型规格。

指定了多个vCPU和内存规格,或者多个算力类别。

系统按照以下规则选择规格:

  • 多个vCPU和内存规格,或者多个算力类别均按照设置顺序依次创建。

  • 规格优先级高于算力类别。

  • 规格和算力类别组合后需符合ECI的规格要求。

例如:指定vCPU和内存为4-8Gi,8-16Gi,16-32Gi,指定算力类别为general,economy,则系统会按以下顺序尝试创建:

  1. 4-8Gi,general

  2. 4-8Gi,economy

  3. 8-16Gi,general

  4. 8-16Gi,economy

  5. 16-32Gi,general

  6. 16-32Gi,economy(不符合要求,自动忽略)

重要

由于规格优先级高于算力类别。在指定多个算力类别的情况下,如果指定的vCPU和内存不符合ECI的规格要求,资源规整时,系统会考虑所有算力类别的合集,选择最接近您指定的vCPU和内存规格来向上规整,如果此时规整的vCPU和内存在某一算力类别内不合法,那么该算力类别在当前vCPU和内存规格的调度中不予考虑。

例如:指定vCPU和内存为0.5-1.9Gi,指定算力类别为general,economy时,由于经济型规格有0.5 vCPU,2 GiB内存的规格,因此会规整到0.5-2Gi。但由于0.5 vCPU,2 GiB内存的规格不属于通用型规格的范围,因此当前vCPU和内存规格(0.5-1.9Gi)的调度只会考虑0.5-2Gi+economy

配置示例

  • 示例一:设置容器的limits,并指定算力类别为经济型

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: test
      labels:
        app: test
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          name: test
          labels:
            app: nginx
            alibabacloud.com/eci: "true" 
          annotations:
            k8s.aliyun.com/eci-compute-category: "economy"  # 指定算力类别为经济型
        spec:
          containers:
          - name: nginx
            image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
            ports:
            - containerPort: 80
            resources:
              limits:
                cpu: "500m"      #指定nginx容器的vCPU为0.5 vCPU
                memory: "1024Mi"   #指定nginx容器的内存为1 GiB
          - name: busybox
            image: registry.cn-shanghai.aliyuncs.com/eci_open/busybox:1.30
            command: ["sleep"]
            args: ["999999"]
            resources:
              limits:
                cpu: "1000m"   #指定busybox容器的vCPU为1 vCPU
                memory: "2048Mi"  #指定busybox容器的内存为2 GiB
  • 示例二:设置容器的limits,并指定算力类别优先使用通用型其次使用经济型

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: test
      labels:
        app: test
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          name: test
          labels:
            app: nginx
            alibabacloud.com/eci: "true" 
          annotations:
            k8s.aliyun.com/eci-compute-category: "general,economy"  # 指定算力类别优先使用通用型其次使用经济型
        spec:
          containers:
          - name: nginx
            image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
            ports:
            - containerPort: 80
            resources:
              limits:
                cpu: "2000m"      #指定nginx容器的vCPU为2 vCPU
                memory: "4096Mi"   #指定nginx容器的内存为4 GiB
          - name: busybox
            image: registry.cn-shanghai.aliyuncs.com/eci_open/busybox:1.30
            command: ["sleep"]
            args: ["999999"]
            resources:
              limits:
                cpu: "2000m"   #指定busybox容器的vCPU为2 vCPU
                memory: "4096Mi"  #指定busybox容器的内存为4 GiB
  • 示例三:通过k8s.aliyun.com/eci-use-specs指定多个vCPU和内存规格,并指定算力类别为通用型

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: test
      labels:
        app: test
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          name: test
          labels:
            app: nginx
            alibabacloud.com/eci: "true" 
          annotations:
            k8s.aliyun.com/eci-use-specs : "2-4Gi,4-8Gi"    # 指定ECI Pod的规格优先使用2 vCPU,4 GiB内存,其次使用4 vCPU,8 GiB内存
            k8s.aliyun.com/eci-compute-category: "economy"  # 指定算力类别为经济型
        spec:
          containers:
          - name: nginx
            image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
            ports:
            - containerPort: 80