全部產品
Search
文件中心

Container Service for Kubernetes:ECI Pod概述

更新時間:Oct 15, 2024

ECI能為Kubernetes提供基礎的容器Pod運行環境,每個ECI執行個體相當於一個Pod。本文介紹ECI Pod的基本配置、生命週期和使用限制等。

基本配置

基於Kubernetes社區的Virtual Kubelet技術,ECI支援以虛擬節點的形式接入到Kubernetes叢集中。一個ECI執行個體相當於一個Pod,包括規格、鏡像、儲存、網路等基本配置。

規格

規格包括vCPU、記憶體等配置,定義了ECI Pod的計算效能等。建立ECI Pod時,您可以直接指定vCPU和記憶體規格,也可以指定ECS規格來滿足GPU等特殊需求。兩種規格類型分別對應不同的計費模式,具體請參見ECI執行個體計費

ECI支援多種建立方式來申請資源,您可以根據業務需求選擇合適的建立方式,具體請參見建立ECI Pod

鏡像

一個ECI Pod最多可以包含20個容器。部署容器應用時,需要準備好容器鏡像。容器鏡像包含容器應用運行所需的程式、庫檔案、配置等。拉取鏡像時,需要保證網路暢通,推薦您使用鏡像緩衝(即ImageCache)功能來節約拉取鏡像耗時,加速Pod建立。

  • 鏡像拉取

    ECI Pod預設每次啟動後使用內部的containerd從遠端拉取容器鏡像。如果鏡像為公網鏡像,則ECI Pod需要具備訪問公網的能力(為VPC建立公網NAT Gateway,或者為Pod綁定EIP)。

    建議您將容器鏡像儲存在阿里雲鏡像倉庫(ACR),通過VPC網路減少鏡像拉取時間。另外,對於ACR上的私人鏡像,實現了免密拉取功能,方便您使用。更多資訊,請參見免密拉取ACR鏡像使用免密組件託管版拉取容器鏡像

  • 鏡像緩衝

    ECI的鏡像緩衝功能可以預先將需要使用的鏡像製作成緩衝快照。後續基於鏡像緩衝來建立ECI Pod,可以避免或減少鏡像層的下載,從而提升ECI Pod的建立速度。ACK Serverless叢集中預設已部署ImageCache CRD來接入鏡像緩衝功能。更多資訊,請參見使用ImageCache加速建立ECI Pod

儲存

  • 臨時儲存

    一個ECI Pod預設具有30 GiB的免費的臨時儲存空間,Pod啟動所使用的容器鏡像會佔用該空間。如果您有更高的臨時儲存需求,可以自訂增加臨時儲存空間大小。更多資訊,請參見增加臨時儲存空間大小

  • 持久化儲存

    如果有共用資料或者持久化儲存資料的需求,可以為ECI Pod掛載持久化儲存卷。在ACK Serverless叢集中部署CSI儲存外掛程式,即可使用阿里雲雲端硬碟、NAS、OSS等類型的儲存卷。更多資訊,請參見儲存CSI概述

說明

更多關於ECI Pod儲存相關的配置,請參見儲存

網路

  • 私網IP地址

    ECI Pod會佔用所屬VPC下交換器的一個彈性網卡資源。建立ECI Pod時,會依次從Pod Annotation(k8s.aliyun.com/eci-vswitch)、PodNetworking、eci-profile的配置中選擇合適的交換器,隨機為Pod分配一個私網IP地址。如果您有指定私網IP地址或者使用固定私網IP地址的需求,請參見指定ECI Pod的私網IP地址配置ECI Pod使用固定IP地址

  • 開通公網

    預設情況下,ECI Pod不具備串連公網的能力。如果您的ECI Pod有串連公網的需求,例如需要拉取公網鏡像等,您可以為其綁定EIP,或者在所屬VPC中建立公網NAT Gateway,以實現ECI Pod與公網互連。具體操作,請參見為ECI Pod配置公網串連

  • IPv6地址

    ECI Pod已支援IPv6地址。相比IPv4,IPv6大大擴充了地址的可用空間。更多資訊,請參見為ECI Pod分配IPv6地址

說明

更多關於ECI Pod網路相關的配置,請參見網路

容器

在ECI Pod的容器中,同樣支援Kubernetes的設定容器啟動命令、配置Liveness Probe和Readiness Probe、配置Security Context等能力。關於ECI Pod中的容器相關配置,請參見容器配置

生命週期

在ECI Pod的生命週期中,不同的階段有其固有的狀態。關於ECI Pod狀態的變化過程,以及與Kubernetes Pod狀態的對應關係,請參見ECI Pod生命週期

使用限制

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

不支援的功能

說明

推薦替代方案

HostPath

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

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

HostNetwork

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

使用type=LoadBalancer的負載平衡

DaemonSet

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

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

type=NodePort的Service

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

使用type=LoadBalancer的負載平衡

更多資訊,請參見使用限制

Pod編排

為了減少您對業務YAML的改動,ECI支援了eci-profile功能。eci-profile可以提供叢集維度ECI資源檢視,支援根據selector實現Pod編排。更多資訊,請參見配置eci-profile

擴充使用ECI功能

資料緩衝

對於一些資料量較大的業務資料,例如訓練模型等,ECI支援建立資料緩衝(DataCache)來提前拉取資料,將資料緩衝到本地,以便在建立ECI執行個體時可以直接掛載使用,從而減少執行個體啟動耗時,避免資料重複下載,節約使用成本。更多資訊,請參見資料緩衝概述

ECI Pod Annotation

為充分使用ECI提供的功能,在不改變Kubernetes語義的前提下,您可以根據需求為ECI Pod添加Annotation。ECI支援的Annotation列表,請參見ECI Pod Annotation

說明

您可以在建立ECI Pod時手動添加Annotation,也可以配置eci-profile,實現自動添加Annotation到Label能夠匹配上的ECI Pod。