全部產品
Search
文件中心

Container Service for Kubernetes:ECI Pod概述

更新時間:Jun 19, 2024

ECI能為Kubernetes提供基礎的容器Pod運行環境,每個ECI執行個體相當於一個Pod。本文主要介紹Elastic Container Instance Pod的使用準備工作、使用限制以及核心功能,包括安全隔離、CPU/Memory資源和規格配置、鏡像拉取、儲存、網路、日誌收集等。

前提條件

Kubernetes應用限制

ACK的虛擬節點基於Kubernetes社區的Virtual Kubelet技術實現。ACK Serverless叢集會通過虛擬節點實現與ECI的無縫對接。因此ECI執行個體並不會運行在一個集中式的真實節點上,而是打散分布在整個阿里雲的資源集區中。

基於公用雲端的安全性和虛擬節點本身帶來的限制,ECI目前還不支援Kubernetes中HostPath、DaemonSet等功能,具體如下表所示。

不支援的功能

說明

推薦替代方案

HostPath

掛載本地宿主機檔案到容器中

使用emptyDir、雲端硬碟或者NAS檔案系統

HostNetwork

將宿主機連接埠映射到容器上

使用type=LoadBalancer的負載平衡

DaemonSet

在容器所在宿主機上部署Static Pod

通過sidecar形式在Pod中部署多個鏡像

Privileged許可權

容器擁有privileged許可權

使用Security Context為Pod添加Capability

type=NodePort的Service

將宿主機連接埠映射到容器上

使用type=LoadBalancer的負載平衡

核心功能

安全隔離

作為安全可靠的Serverless容器運行環境,每個ECI執行個體底層通過輕量級安全沙箱技術完全強隔離,執行個體間互不影響。同時,不同虛擬節點上的ECI Pod分布在不同的可用性區域,且同一可用性區域上的執行個體在調度時儘可能分布在不同的物理機上,進一步保障了高可用性。

CPU/Memory資源或規格配置

功能項

說明

指定vCPU和Memory來申請資源和計費

配置方式:指定容器或Pod的vCPU和Memory

  • 指定容器的CPU和Memory:通過Kubernetes標準方式配置單個容器的CPU和Memory(resources.limit)。如不指定,預設單個容器的資源為2 vCPU和4 GiB記憶體。ECI的資源則是Pod內所有容器所需資源的總和。

  • 指定Pod的CPU和Memory:您可以通過Annotation的方式配置整個Pod的CPU和Memory,這種情況將不再把所有容器資源相加,而是以指定的資源建立和計費。此時可以不用指定內部容器的requestlimit,各容器可以最大限度地使用Pod內的計算資源。

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

ECI Pod支援的vCPU和Memory規格

說明
  • 如果未指定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

56

224

10

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

計費方式及公式

  • 計費方式

    從掛載外部儲存/下載容器鏡像開始至ECI執行個體停止運行(進入Succeeded/Failed狀態)結束。

  • 計費公式

    ECI Pod執行個體費用=(ECI執行個體CPU核心數xCPU單價+ECI執行個體記憶體大小x記憶體單價)xECI執行個體運行時間長度,執行個體按秒計費。

  • 計費定價

    • CPU(vCPU * 秒):0.0000077美元(0.02772美元/小時)

    • 記憶體(GB * 秒):0.00000096美元(0.003456美元/小時)

大部分情境下,如果沒有特殊的規格需求(如GPU、本地碟等),推薦您指定vCPU和記憶體來建立ECI執行個體。在此基礎上,對於0.25~8 vCPU的規格需求,在輕量型應用等入門情境,您可以進一步指定算力類別為經濟型,以降低使用成本。詳細資料,請參見指定算力類別建立經濟型Pod

指定Pod的ECS規格

配置方式

您可以按需指定ECI執行個體底層使用的ECS規格類型系列,獲得各規格類型系列的指定能力,例如指定使用ecs.sn1ne規格類型系列來使用網路增強能力。更多相關資訊,請參見ECS執行個體規格類型系列各地區ECS按量

支援的ECS執行個體規格類型系列

指定ECS規格建立ECI執行個體時,計算資源的費用按照ECS規格進行計算。目前支援的ECS執行個體規格類型系列,請參見指定ECS規格建立Pod

計費方式及公式

  • 計費方式

    當指定Pod的ECS規格時,ECI可以選擇使用預留執行個體券或使用節省計劃,對ECI按規格建立執行個體進行抵扣。詳情請參見預留執行個體券概述使用節省計劃

    ECI使用預留執行個體券後的費用,跟您使用ECS包月執行個體的費用相近。

  • 計費公式

    ECI執行個體費用=ECI執行個體指定的ECS規格單價 x ECI執行個體運行時間長度,執行個體按秒計費。

搶佔式執行個體

您可以通過配置Annotation使用Spot可搶佔式執行個體,大幅降低計算成本。搶佔式執行個體的詳細資料,請參見使用搶佔式執行個體

鏡像拉取與緩衝

鏡像拉取

ECI Pod預設每次啟動後使用內部的containerd從遠端拉取容器鏡像。如果鏡像為公用鏡像,則需要開通VPC的公網NAT Gateway,或者給ECI Pod掛載EIP。建議您將容器鏡像儲存在阿里雲鏡像倉庫(ACR),通過VPC網路減少鏡像拉取時間。另外,對於ACR上的私人鏡像,實現了免密拉取功能,方便您使用。

鏡像緩衝

為加速執行個體的建立速度,ECI提供鏡像緩衝功能。您可以預先將需要使用的鏡像製作成緩衝快照,然後基於該快照來建立ECI執行個體,避免或減少鏡像層的下載,從而提升執行個體的建立速度。鏡像緩衝的建立分為手動建立和自動建立兩種方式,具體操作,請參見使用ImageCache加速建立Pod

儲存

支援多種使用儲存的方式:

  • CSI:

    CSI是當前Kubernetes社區推薦的外掛程式實現方案,阿里雲提供的CSI外掛程式主要包括以下幾部分:

    • CSI-Plugin:實現資料卷的掛載、卸載功能。

    • CSI-Provisioner:實現資料卷的自動建立能力,目前支援雲端硬碟、NAS兩種資料卷建立能力。

  • NFS:參考樣本

  • PV/PVC:參考樣本

網路

ECI Pod預設使用Host網路模式,佔用交換器vSwitch的一個彈性網卡ENI資源。

在Kubernetes叢集環境中,ECI Pod與ECS節點上的Pod互聯互連,方法如下:

  • LoadBalancer Service掛載ECI Pod:也可以支援Service同時掛載ECS節點上的Pod和ECI Pod。

  • 訪問ClusterIP Service:ECI Pod可以訪問叢集中的ClusterIP地址。

  • 掛載EIP:支援給ECI Pod掛載EIP,可自動建立或者綁定到已有的EIP執行個體。

日誌採集

您可以直接配置Pod的Env收集stdout或者檔案日誌,將其採集到阿里雲Log ServiceSLS中。一般情況下,您無需額外部署一個logtail sidecar容器。

支援和追加的Annotation

您可以在Pod Spec中配置Annotation,充分使用ECI提供的功能。詳細資料,請參見ECI Pod Annotation