1.普通容器
       普通linux容器利用namespace进行进程间运行环境的隔离,并使用cgroup进行资源限制;因此普通linux容器本质上还是共用同一个内核,单个容器有意或无意影响到内核都会影响到整台宿主机上的容器,需要指定一个容器镜像来启动
2. 系统容器
      系统容器主要应对在重计算、高性能、大并发的场景下,重型应用和业务云化的问题。相比较虚拟机技术,系统容器可直接继承物理机特性,同时具备性能更优良,较少overhead的优点。从系统资源分配来看,系统容器在有限资源上相比虚拟机可分配更多计算单元,降低成本,通过系统容器可以构建产品的差异化竞争力,提供计算密度更高,价格更便宜,性能更优良的的计算单元实例。
       系统容器不同于普通容器,普通容器需要指定一个容器镜像来启动,而系统容器通过参数 --external-rootfs 指定一个本地的根文件系统rootfs(Root File System)来启动,rootfs包含了容器运行时依赖的操作系统环境。
3. 安全容器
       安全容器是虚拟化技术和容器技术的有机结合,相比普通linux容器,安全容器具有更好的隔离性。
       安全容器是使用虚拟化层进行容器间的隔离,同一个主机上不同的容器间运行互相不受影响。
图一  安全容器架构                                                                             图1 安全容器架构
       安全容器与Kubernetes中的Pod概念紧密联系,Kubernetes为容器调度管理平台的开源生态标准,它定义了一组容器操作相关接口(Container Runtime Interface 简称CRI)。
       在CRI标准中,Pod为完成一组服务需要的一组容器集合,是编排调度的最小单元,通常共享IPC和网络namespace;一个Pod必然包含一个占位容器(pause容器)以及一个或多个业务容器,其中pause容器与的生命周期相同。
       其中安全容器中的一个轻量级虚拟机对应为一个Pod,在此虚拟机中启动的第一个容器为pause容器,以后依次启动的容器为业务容器。
       安全容器同时提供启动单个容器与启动Pod的功能。
       安全容器与周边组件的关系如图2所示。
                在这里插入图片描述
                                                                    图2 安全容器与周边组件的关系

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐