暂无数据

# 容器

openEuler 1.0 Base 中提供容器运行的基础平台 iSula。iSula 基础容器平台同时提供 Docker engine 与轻量化容器引擎 iSulad,用户可根据需要自主选择。

同时,iSula 容器平台还支持运行 kata-container。Docker、containerd、runc、kata-container 均在社区版本的基础上进行了稳定性增强与 bugfix。

# iSulad

iSula 在居住于中南美洲亚马逊丛林的巴西原住民眼里,它是一种非常强大的蚂蚁,学术上称为“子弹蚁”,因为被它咬一口,犹如被子弹打到那般疼痛,它是世界上最强大的昆虫之一。iSulad 作为轻量化的容器底座,可以为多种场景提供最灵活、最稳定、最安全的底层支撑,与子弹蚂蚁“小个头、大能量”的形象不谋而合。

iSula 通用容器引擎(iSulad)是一种新的容器解决方案,提供统一的架构设计来满足CT和IT领域的不同需求。轻量级容器具有轻、灵、巧、快的特点,不受硬件规格和架构的限制,底噪开销更小,可应用领域更为广泛。

iSulad重点能力如下:

容器镜像管理

容器镜像是容器运行的基础,在主机上以分层的形式存放,运行前通过联合挂载的方式挂载成统一视图的rootfs供容器使用。容器的镜像管理包括镜像的拉取、导入、删除以及查询。

容器管理

容器管理功能提供用户创建、运行、停止、删除、重启等操作容器的能力。

CNI网络

实现CRI接口对接CNI网络的能力,包括CNI网络配置文件的解析、CNI网络的加入和退出。

CRI接口

CRI API 接口是由kubernetes 推出的容器运行时接口,CRI定义了容器和镜像的服务接口。iSulad支持CRI接口,实现和kubernetes 的对接。

容器资源管理

对容器使用资源进行动态管理:

  • namespace共享
  • 限制运行时的CPU资源
  • 限制运行时的内存资源
  • 限制运行时的IO资源
  • 限制容器rootfs存储空间
  • 限制容器内文件句柄数
  • 限制容器内可以创建的进程/线程数
  • 配置容器内的ulimit值

# Docker

Docker 的英文本意是码头工人,码头工人的工作就是将商品打包到 Container(集装箱)并且搬运 Container、装载 Container。从 Docker 字面上的解释就可以看出 Docker 是干什么的, 对应到 Linux 中,Docker 就是将App打包到 Container,通过 Container 实现 App 在各种平台上 的部署,运行。Docker 通过 Linux Container 技术将 App 变成一个标准化的、可移植的、自管理的组件,实现了应用的 build once、run everywhere。Docker 技术特点是:应用快速发布、应用部署和扩容简单、更高的应用密度、应用管理更简单。

openEuler 1.0 Base 集成 moby 18.09 版本,并在版本基础上进行了 bugfix 和稳定性增强。

# 安全容器

安全容器是虚拟化技术和容器技术的有机结合,相比普通 Linux 容器,安全容器具有更好的隔离性。

普通 Linux 容器利用 namespace 进行进程间运行环境的隔离,并使用 CGroup 进行资源限制;因此普通 Linux 容器本质上还是共用同一个内核,单个容器有意或无意影响到内核都会影响到整台宿主机上的容器。

安全容器是使用虚拟化层进行容器间的隔离,同一个主机上不同的容器间运行互相不受影响。

iSula 容器平台支持创建安全容器,使用 kata-container 作为容器的运行时。

openEuler 1.0 Base 集成了 kata-container 1.7 版本,该版本主要特性如下:

  • 在社区版本的基础上,进行了稳定性和可靠性加固
  • 重构了社区Host Cgroup资源限制方案,支持CPU、Memory和Blkio资源限制,更适用于生产环境
  • 更灵活的网络配置方案,支持通过kata-network接口创建和更新网卡和路由表
  • 支持DPDK/SPDK高性能网络
  • 支持容器网络状态信息监控

# 系统容器

系统容器主要应对在重计算、高性能、大并发的场景下,重型应用和业务云化的问题,相比较虚拟化技术,系统容器可直接继承物理机特性,同时具备性能更优良,较少底噪的优点。从系统资源分配来看,系统容器在有限资源上相比虚拟机可分配更多计算单元,降低成本,通过系统容器可以构建产品的差异化竞争力,提供计算密度更高,价格更便宜,性能更优良的的计算单元实例。

iSula 容器平台支持创建系统容器,并能支持在系统容器内动态调整设备、运行资源,且提供更优秀的 user namespace 隔离。

系统容器相比于普通容器,提供了如下增强特性:

本地文件系统启动

普通容器只能通过远端pull镜像到本地启动,pull镜像过程可能会因网络问题导致耗时较长,而系统容器支持本地文件系统启动,可实现快速部署

容器内运行systemd

系统容器与普通容器最大的差异就在于容器的init进程启动,普通容器无法实现容器启动时自动拉起systemd,而系统容器具备这个能力

增强隔离性

  • 支持使用lxcfs插件实现容器内资源视图隔离,同时支持lxcfs插件热插拔和高可用
  • 支持多对应user namespace,实现容器和主机uid/gid隔离
  • 支持配置容器内namespace化内核参数可读写,在容器内可动态配置namespace化内核参数值

控制容器访问权限

支持通过TLS认证方式来对用户身份进行验证,并通过对接authz插件服务控制用户的操作权限

容器资源动态管理

  • 动态添加/删除/更新容器内的设备
  • 动态添加/删除/更新容器内的网卡
  • 动态添加/删除容器内的路由
  • 动态添加/删除容器内的卷

其它特性列表

  • 环境变量持久化
  • 限制容器内句柄数
  • 执行reboot/shudown命令
  • 动态加载内核模块
  • 共享内存通信

上一篇

下一篇