Runj - 与 OCI 兼容的工具包,用于管理基于 FreeBSD Jail 的容器

Samuel Karp 是 Amazon 的一名工程师,为 AWS 开发 Bottlerocket Linux 发行版和容器隔离技术,他正在开发一种基于 FreeBSD 监狱环境的新运行时 runj,以提供根据 OCI(开放容器)规范倡议设计的容器的隔离启动) 。 该项目定位为实验性项目,在主要工作的空闲时间进行开发,目前仍处于原型阶段。 该代码是用 Go 编写的,并在 BSD 许可证下分发。

当开发达到适当水平后,该项目有可能发展到允许使用 runj 替代 Docker 和 Kubernetes 系统中常规运行时的水平,使用 FreeBSD 而不是 Linux 来运行容器。 目前,OCI 运行时实现了创建、删除、启动、强制终止和评估容器状态的命令。 容器填充是基于标准或精简的 FreeBSD 环境创建的。

由于OCI规范尚不支持FreeBSD,该项目开发了许多与配置jail和FreeBSD相关的附加参数,计划将其提交包含在主要的OCI规范中。 为了管理监狱,使用 FreeBSD 中的监狱、jls、jexec、kill 和 ps 实用程序,而不直接访问系统调用。 未来的计划包括通过内核 RCTL 接口添加对资源限制管理的支持。

除了自己的运行时之外,项目存储库中还正在开发一个实验层,用于与运行时 Containerd(在 Docker 中使用)一起使用,并进行修改以支持 FreeBSD。 提供了一个特殊的实用程序来将 FreeBSD rootfs 转换为 OCI 兼容的容器映像。 创建的镜像稍后可以导入到containerd中。

来源: opennet.ru

添加评论