全部產品
Search
文件中心

Elastic Container Instance:指定算力類別建立Pod

更新時間:Aug 15, 2024

大部分情境下,如果沒有特殊的規格需求(如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.00000424 USD/秒(0.015264 USD/小時)

    • 記憶體單價(GiB):0.00000096 USD/秒(0.003456 USD/小時)

  • 通用型規格

    與未開通指定算力類別時的ECI規格定價一致。

    • vCPU單價(vCPU):0.0000077 USD/秒(0.02772 USD/小時)

    • 記憶體單價(GiB):0.00000096 USD/秒(0.003456 USD/小時)

重要

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