容器

EulixOS 1.0 中提供容器运行的基础平台 iSula。iSula 基础容器平台同时提供 Docker engine 与轻量化容器引擎 iSulad,用户可根据需要自主选择。EulixOS 1.0 中集成的 Docker、containerd、runc 均在社区版本的基础上进行了稳定性增强与 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 技术特点是:应用快速发布、应用部署和扩容简单、更高的应用密度、应用管理更简单。

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

系统容器

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

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

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

本地文件系统启动

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

容器内运行 systemd

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

增强隔离性

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

控制容器访问权限

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

容器资源动态管理

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

其它特性列表

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

results matching ""

    No results matching ""