ECI能为Kubernetes提供基础的容器Pod运行环境,每个ECI实例相当于一个Pod。本文主要介绍弹性容器实例ECI Pod的使用准备工作、使用限制以及核心功能,包括安全隔离、CPU/Memory资源和规格配置、镜像拉取、存储、网络、日志收集等。
前提条件
已创建ACK集群或ACK Serverless集群,并已在集群中部署虚拟节点。详情请参见创建集群和步骤一:部署ack-virtual-node组件。
已开通弹性容器实例服务。登录弹性容器实例控制台开通相应的服务。
Kubernetes应用限制
ACK的虚拟节点是基于Kubernetes社区的Virtual Kubelet技术实现的,ECI通过虚拟节点与Kubernetes实现无缝对接。因此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的负载均衡
Kubernetes应用限制
基于Kubernetes社区的Virtual Kubelet技术,ECI通过虚拟节点与Kubernetes实现无缝对接,因此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分布在不同的可用区,且同一可用区上的实例在调度时尽可能分布在不同的物理机上,进一步保障了高可用性。