本文主要介紹彈性容器實例ECI Pod的主要功能以及使用限制。
前提條件
- 已開通并授權云容器引擎。
- 已登錄彈性容器實例控制臺開通ECI服務。
Kubernetes應用限制
借助Kubernetes社區的Virtual Kubelet技術,天翼云ECI可以完美連接到Kubernetes,實現真正意義上的無縫連接。ECI實例并不會在一個集中式的真實節點上運行,而是分布在整個天翼云的資源池中。由于公共云的安全性和虛擬節點本身的限制,ECI目前還不支持Kubernetes中的一些功能,如DaemonSet。具體功能限制請參見下表:
| 不支持的功能 | 說明 |
|---|---|
| HostPath | 允許將宿主機(Node)上的文件或目錄掛載到Pod中 |
| HostNetWork | 允許Pod使用宿主機的網絡命名空間,而不是使用Kubernetes的網絡隔離 |
| DaemonSet | 用于確保每個集群節點上自動運行一個指定的Pod副本 |
| Privileged權限 | 允許容器幾乎擁有宿主機級別的權限 |
| type=NodePort的Service | 通過在集群的節點上暴露一個靜態端口,使得外部可以通過指定IP地址和該端口訪問服務 |
核心功能
功能項? 說明? 安全隔離? 提供虛擬機級別的安全和資源隔離能力,每個容器實例都運行在獨占內核中,不與其它負載和Pod共享基礎設施資源。同時針對容器運行環境進行了深度優化,具備比虛擬機更快的啟動速度和運行效率 CPU/Memory資源或規格配置 ECI Pod默認使用按需計費模式進行費用收取。支持指定CPU和Memory資源或者指定ECS規格創建實例?? 鏡像拉取與緩存
鏡像拉取:ECI Pod在每次啟動時,會自動從遠程倉庫獲取容器鏡像。對于公共鏡像的獲取,建議配置VPC的NAT網關或為ECI Pod配置彈性公網IP (EIP)。為優化鏡像拉取效率,我們推薦您使用天翼云容器鏡像服務,加速鏡像的下載
鏡像緩存:ECI提供鏡像緩存功能,鏡像緩存是為了加速拉取鏡像以減少ECI啟動時間而設計的。鏡像拉取是容器實例啟動的主要耗時,而制作鏡像緩存可以通過預先獲取、存儲和管理已經拉取的鏡像,實現對容器實例啟動時間的顯著減少。考慮到網絡和鏡像大小等因素的影響,構建鏡像緩存可以通過連續使用相同的鏡像實現快速部署,從而加速容器實例的啟動并提高系統的可用性
存儲 支持使用多種存儲方式:
CSI:CSI插件是目前Kubernetes社區推薦的插件實現方案,Serverless集群所提供的 CSI 存儲插件與社區 CSI 特性兼容。該插件由以下兩個組件組成:CSI-Plugin:提供掛載和卸載數據卷的能力,Serverless集群默認支持云硬盤和彈性文件服務兩種存儲服務;CSI-Provisioner:提供自動掛載數據卷的能力
PV/PVC:PV提供長期存儲資源,而PVC允許用戶以抽象的方式請求這些存儲資源,實現存儲的分配和管理
EmptyDir:該數據卷是一種用于容器實例中臨時存放數據的目錄,以便于容器之間共享數據。但是需要注意的是,當容器實例被刪除時,EmptyDir數據卷中的數據也會被清空
網絡 ECI Pod默認采用Host網絡模式,并會占用交換機vSwitch的一個彈性網卡ENI資源。在Kubernetes集群環境中,ECI Pod與云主機節點上的Pod可以相互訪問。具體方法如下:
創建類型為LoadBalancer的Service對象,并與ECI Pod進行關聯;也支持Service同時關聯ECI Pod和云主機上的Pod
創建類型為ClusterIP的Service對象,ECI Pod可以直接訪問集群中的clusterIP地址
配置相應的 NAT 網關或彈性公網 EIP,并為 ECI Pod綁定指定EIP,或者將 NAT 網關綁定到 ECI 實例所屬的 VPC 網絡中
日志采集 通過安裝日志采集服務插件,一般情況無需再額外部署sidecar容器? ?