全部產品
Search
文件中心

Elastic Container Instance:指定vCPU和記憶體建立Pod

更新時間:Jul 06, 2024

大部分情境下,如果沒有特殊的規格需求(如GPU、本地碟等),推薦您指定vCPU和記憶體來建立ECI Pod(即ECI執行個體),系統會嘗試使用多種ECS規格進行支撐,以提供比ECS單規格更好的彈性和資源供應能力。

規格說明

您可以指定執行個體或者容器的vCPU和記憶體來建立ECI執行個體。如果指定的vCPU和記憶體不符合要求,系統將自動按照ECI支援的規格進行規整。規整時將向最接近的ECI規格進行規整,同時需滿足指定的vCPU和記憶體≤ECI規格的vCPU和記憶體。例如:在華東1(杭州)地區建立ECI執行個體時,聲明了7 vCPU,13 GiB記憶體,則實際建立的ECI執行個體為8 vCPU,14 GiB記憶體。

ECI支援的規格如下:

說明
  • 如果未指定vCPU和記憶體規格,系統預設採用2 vCPU和4 GiB記憶體的規格建立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.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和記憶體建立ECI Pod時,支援以下兩種:

  • 指定Pod內容器的vCPU和記憶體:通過定義Containers的limits或requests來指定,建議使用limits。

  • 指定Pod層級的vCPU和記憶體:通過在Pod metadata中添加k8s.aliyun.com/eci-use-specs的Annotation來指定。

如果您沒有指定,或者同時指定了limits、requests和eci-use-specs,實際生效情況如下:

情境

Pod規格

全部未指定

按預設規格(2vCPU,4 GiB記憶體)

僅指定limits

匯總limits

僅指定requests

匯總requests

同時指定limits和requests

匯總limits(忽略requests)

僅指定eci-use-specs

按eci-use-specs的值

指定limits或requests的同時指定eci-use-specs

按eci-use-specs的值

說明

如果匯總limits、requests後的規格,或者eci-use-specs指定的規格不滿足ECI規格要求,系統會自動進行資源規整,並按規整後的規格進行計費。

指定Pod內容器的vCPU和記憶體

該方式為Kubernetes預設。每個ECI Pod最多可以支援20個容器,每個容器的vCPU和記憶體規格可以自訂配置,但匯總到Pod層級時需滿足ECI Pod的vCPU和記憶體約束。

說明

ECI支援為特定容器(例如Sidecar容器)設定環境變數,實現在資源規整時忽略該容器,避免資源浪費。更多資訊,請參見配置資源規整時忽略特定容器

您可以直接定義Container的limits來指定該容器的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" 
    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

指定ECI Pod的vCPU和記憶體

該方式下,系統會嘗試使用多種ECS規格進行支撐,以實現更好的彈性和資源供應能力。

說明

如果您對規格有一定要求,例如只想使用6代ECS規格,可添加Annotation來指定ECS規格代數。更多資訊,請參見指定ECS規格代數建立Pod

該方式還具備以下優勢:

  • Pod內容器可以不用指定vCPU和記憶體規格或者限制資源上限,各容器可以更大程度地共用資源。

  • 在基因計算和Istio情境下,業務架構會自動為Pod添加Sidecar容器,通過指定Pod層級規格,ECI可以無縫對接這類業務架構。

您可以在Pod metadata中添加Annotation來指定Pod的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"   #指定ECI Pod的vCPU為2 vCPU,記憶體為4 GiB
    spec:
      containers:
      - name: nginx
        image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
        ports:
        - containerPort: 80
      - name: busybox
        image: registry.cn-shanghai.aliyuncs.com/eci_open/busybox:1.30
        command: ["sleep"]
        args: ["999999"]
        resources:
          limits:
            cpu: "500m"     #容器的vCPU上限        
            memory: "1024Mi"   #容器的記憶體上限