写点什么

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:021771
用户头像

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

关注

评论

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

上云就上百度智能云,百度智能计算峰会召开,AI原生云全新升级

百度大脑

AI 智能云 峰会

不愧是清华大佬,一个联机对战游戏就把23种设计模式给抽丝剥茧了

Java架构师迁哥

全过程智慧教育,看北京四中网校和亚马逊云科技如何实现?| 精选案例

亚马逊云科技 (Amazon Web Services)

🏆【声网 Agora】「PC端实现实时语音通讯4.x」

码界西柚

WebRTC RTC征文大赛 声网 6月日更

项目管理与项目集管理、项目组合管理的区别?

万事ONES

项目管理 项目 PMO ONES

本科毕业六年,备战一个月,四面阿里巴巴定级P7

Java架构师迁哥

从底层原理出发,了解Linux内核之内存管理

Linux服务器开发

后端 操作系统 内存管理 Linux内核 底层原理

给你一直尝试和创新的机会!走进亚马逊云科技MRC团队

亚马逊云科技 (Amazon Web Services)

《原则》(八)

Changing Lin

6月日更

探讨AI人才培养新思路,2021北京智源大会百度AI人才培养论坛召开

百度大脑

AI 人才培养

5W1H聊开源之What——开源协议有哪些?

禅道项目管理

开源

人人视频被迫下架:打击盗版视频网站任重道远

石头IT视角

干货:ANR日志分析全面解析

vivo互联网技术

android 堆栈 日志分析 anr

即时通讯系列-WorkPlus简介

BeeWorks

开源 即时通讯 IM 办公自动化

别乱打日志了,这才是正确的打日志姿势!

xcbeyond

日志 规范 6月日更

深度剖析:Redis分布式锁到底安全吗?看完这篇文章彻底懂了!

Kaito

redis zookeeper 分布式 后端

JavaScript 中数组 sort() 方法的基本使用

编程三昧

JavaScript 大前端 数组 排序 js

一文读懂开源项目 OpenHarmony2.0

科技热闻

国内低代码产品是如何定位的?这3类,企业可自行对号入座

优秀

低代码

软件研发团队如何做好项目进度管理?

万事ONES

项目管理 研发管理 需求 ONES

不管是三胎还是App!指望“拉新”太难了,还是要靠老用户!

APP开发

限流篇,欣赏阿里开源Sentinel

下雨喽

架构 设计 sentinel 限流

代码写的烂才是原罪?字节三面+微信四面+PayPal四面,大厂面经分享

Java 程序员 架构 面试

iOS开发-Objective-C 中的 MVVM 模式介绍

iOSer

ios objective-c MVVM ios开发

聚焦机器同传前沿进展,第二届机器同传研讨会将在NAACL举办

百度大脑

人工智能 机器

大陆集团携手亚马逊云科技打造创新的汽车软件平台

亚马逊云科技 (Amazon Web Services)

为什么说产品经理也要学点技术?

LigaAI

产品经理 研发管理 技术团队 产品设计与思考

看Kunpeng BoostKit 使能套件如何实现大数据场景倍级性能提升

华为云开发者联盟

大数据 开源 鲲鹏 鲲鹏计算 Kunpeng BoostKit

@成都的Coder

蚂蚁集团移动开发平台 mPaaS

flutter 移动开发 mPaaS

阿里都会问些什么?4面阿里余额宝Java高级技术岗

Java架构师迁哥

HTTPS协议

IT视界

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