本文主要介绍弹性容器实例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社区推荐的插件实现方案,SCE 集群所提供的 CSI 存储插件与社区 CSI 特性兼容。该插件由以下两个组件组成:CSI-Plugin:提供挂载和卸载数据卷的能力,SCE默认支持云硬盘和弹性文件服务两种存储服务;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容器