写点什么

rkt 0.8 发布,CoreOS 与 Intel 合作改善容器隔离性

  • 2015-08-27
  • 本文字数:1771 字

    阅读完需:约 6 分钟

因不满于 Docker 的发展路线,CoreOS 在 2014 年 12 年开始了自己的容器计划。 rkt 便是该计划中开放应用容器规范(Application Container Specification,AppC)中的一个具体实现。经过 8 个月的发展,CoreOS 近日公布了rkt 的0.8.0 版本,利用Intel 的 Clear Container 项目,进一步加强了容器的安全性。接下来,本文就分析该版本有哪些新的功能和特性。

作为 Docker 的企业级用户,CoreOS 起初与 Dokcer 一直保持了良好的合作关系,伴随着其从最初的 0.1 版本一直走到了正式发布的 1.0 版本。然而,随着 Docker 的一步步壮大,其臃肿而受单方面控制的容器规范,是作为虚拟机厂商的 CoreOS 所无法忍受的。于是,CoreOS 在去年底公布了自己的容器计划,并在之后开始制定新的开放而中立的应用容器规范——AppC。Rkt 就是作为此规范中的一个具体实现而不断发展的。在半年左右的时间中,CoreOS 共发布了 18 个版本的 rkt。近日,CoreOS 公布了 rkt 的 0.8.0 版本,增加了对用户命名空间的支持和利用 Intel 公司的硬件虚拟化实现了强加的容器隔离等特性。此外,该版本还在宿主机日志集成、容器 socket 激活、镜像缓冲和运行速度等方面进行了改进。

首先,利用硬件虚拟化实现加强型的容器隔离方面。rkt 采用了分段式架构(staged architecture),使得不同阶段可以采用不同的组件。例如,架构中的第二阶段(stage1)负责创建和启动容器。默认情况下,系统会启动基于 cgroups 和命名空间的 rkt。然而,这种方式并不能很好的实现容器中应用程序的隔离。在该版本中,rkt 添加了新的 stage1 选项。这一特性主要得益于 Intel 公司一直进行的 Clear Container 计划。该计划努力利用嵌入硬件的虚拟化技术特性来更好的保证容器运行时的安全和应用程序间的隔离。在 5 月份,Intel 公开宣布实现了利用新的 stage1 的 rkt 中的应用可以与运行在同样物理硬件中的主机内核完全隔离的功能。之后,CoreOS 团队与 Intel 的工程师紧密合作,终于在新版本中实现了该功能。之前,用户利用 systemd-run 启动容器后,再利用systemctl命令查看运行状态可发现:pod 中的进程层次包含了一个 systemd 实例和 etcd 进程。在新版本中,用户通过添加```
–stage1-


image

复制代码
参数启动包含基于 kvm 的 stage1 的容器后,可以发现:此时的进程层次到 lkvm 即结束。这就意味着,包括 systemd 进程和 etcd 进程在内的整个 pod 都是在一个 KVM 进程中执行的。对于宿主系统而言,这个进程就像一个单独的虚拟机进程。这样,容器的隔离性和安全性就可以得到很大提高。
此外,新版本的 rkt 自动与宿主机的日志集成在一起,提供了 systemd 的原生日志管理功能。用户只需要在主机的 journalctl 命令中添加一个像`-M rkt-$UUID`这样的机器符,即可探索 rkt pod 的日志。而且,该版本添加了对用户命名空间的支持来改善容器的隔离。用户通过添加`--private-users``--no-overlay`两个参数,即可打开用户命名空间。其中,前者负责打开用户命名空间特性,而后者负责关闭与用户命名空间不兼容的 rkt 的 olverlayfs 的子系统。通过使用用户命名空间,应用程序可以在容器内以根用户的身份运行,在容器外映射为一个非根用户。通过把容器与宿主机上的根用户隔离,该举措添加了一个额外的安全层。目前,该特性还处于实验阶段。未来,CoreOS 团队会对其进行进一步的完善。
从以上分析可以看出,rkt v0.8.0 在安全方面进行了进一步的加强。CoreOS 团队也表示,rkt 目前还只是 AppC 的实现。未来,他们将努力将其变为 [开放容器计划(Open Container Initiative,OCI)](http://www.opencontainers.org/) 的实现。
- - - - - -
感谢 [郭蕾](http://www.infoq.com/cn/author/%E9%83%AD%E8%95%BE) 对本文的审校。
给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 [editors@cn.infoq.com](mailto:editors@cn.infoq.com)。也欢迎大家通过新浪微博([@InfoQ](http://www.weibo.com/infoqchina),[@丁晓昀](http://weibo.com/u/1451714913)),微信(微信号:[InfoQChina](http://weixin.sogou.com/gzh?openid=oIWsFt0HnZ93MfLi3pW2ggVJFRxY))关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群 [![](https://static001.infoq.cn/resource/image/06/9f/06e1fec4a87eca3142d54d09844c629f.png)](http://shang.qq.com/wpa/qunwpa?idkey=cc82a73d7522f0090aa3cbb6a8f4bdafa8b82177f481014c976a8740d927997a))。
2015-08-27 19:021582
用户头像

发布了 268 篇内容, 共 124.3 次阅读, 收获喜欢 24 次。

关注

评论

发布
暂无评论
发现更多内容

OpenCV编程:OpenCV3.X训练自己的分类器

DS小龙哥

7月月更

python小知识-rethinking python 迭代器

AIWeker

Python python小知识 7月月更

Okaleido或杀出NFT重围,你看好它吗?

BlockChain先知

博弈论(depu)与投资(40/100)

hackstoic

投资

基于CSS mask-image 实现炫酷图片过渡效果之星球大战

南城FE

前端 动画效果 7月月更 过渡

TCP拥塞控制详解 | 7. 超越TCP

俞凡

算法 网络 TCP拥塞控制

李宏毅《机器学习》|1. Introduction of this course(机器学习介绍)

AXYZdong

机器学习 7月月更

【刷题记录】13. 罗马数字转整数

WangNing

7月月更

读书笔记之《深入理解Java虚拟机:JVM高级特性与最佳实践》(下)

蔡农曰

Java 后端 JVM 后端技术 Java 开发

qt 实现遍历文件夹

小肉球

qt 7月月更

MatrixCube揭秘 101——MatrixCube的功能与架构

MatrixOrigin

分布式 MatrixOrigin MatrixOne 矩阵起源 MatrixCube

Spring项目中如何正确处理对象依赖

技术小生

spring 7月月更

Flutter 使用 AnimatedSwitcher 做场景切换

岛上码农

flutter ios 前端 安卓开发 7月月更

MFC|框架下自绘CEdit控件

中国好公民st

c++ 7月月更

getchar()

謓泽

7月月更

使用Java获取给定日期所在周的第一天

李印

Java 小工具

HarmonyoS快速入门:Hello world

逝缘~

7月月更

Arbitrum Nova 发布!打造低成本高速度的游戏社交领域专用链

TinTinLand

Azkaban 安装文档

怀瑾握瑜的嘉与嘉

Azkaban 7月月更

函数初认识-下

芒果酱

C语言 7月月更

C++ Workflow异步调度框架 - 性能优化网络篇

1412

c++ 开源 workflow 异步调度 网络框架

Tortoisegit工具的安装和使用

空城机

git Tortoisegit 7月月更

数据库每日一题---第25天:银行账户概要 II

知心宝贝

数据库 云计算 前端 后端 7月月更

以太坊升级在即,Arbitrum 引领 L2 Summer 新航向

TinTinLand

MatrixCube揭秘102——300行实现的完整分布式存储系统MatrixKV

MatrixOrigin

MatrixOrigin MatrixOne 矩阵起源 MatrixCube MatrixKV

C#入门系列(二十二) -- 面向对象之多态

陈言必行

7月月更

C++ Workflow 异步编程框架 - 性能优化上篇

1412

c++ GitHub 开源 异步编程 workflow

推荐 6 个实用的 Vue 组件库

devpoint

JavaScript Vue 前端开发 7月月更

数字化转型的两种误区

奔向架构师

数据仓库 数据资产 7月月更

模块7(王者荣耀商城异地多活架构设计)

Geek_701557

王者荣耀商城异地多活架构设计

爱晒太阳的大白

rkt 0.8发布,CoreOS与Intel合作改善容器隔离性_语言 & 开发_张天雷_InfoQ精选文章