写点什么

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

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

关注

评论

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

想进BAT一线互联网大厂,该怎么准备技术面试?一位6年老Android的面经总结

android 程序员 移动开发

我的副业已经成为了我的主业,Android软件开发面试题

android 程序员 移动开发

抱着试一试的心态,没想到还真被录用了!年后我收到的第一个offer

android 程序员 移动开发

换个姿势,带着问题看Handler,android应用程序开发的流程

android 程序员 移动开发

成功获得字节跳动月薪20+的Android岗offer,看看面试都问了些什么

android 程序员 移动开发

我怎么感觉全世界都在劝退学Android的程序员?,从外包月薪5K到阿里月薪15K

android 程序员 移动开发

我的Android 求职简历,二本渣校,靠这份简历拿下BATJ等15家大厂Offer

android 程序员 移动开发

手把手教你打通车载蓝牙与手机app的音频信息传输&车载反向控制手机app

android 程序员 移动开发

手把手讲解IPC框架,成为一名合格Android架构师

android 程序员 移动开发

手撕专有钉钉Android面试题完全指南,安卓开发入门书籍

android 程序员 移动开发

我敢打赌!你从未见过如此简单的Dagger-导航---基于-Android-Studio-4-1

android 程序员 移动开发

拥抱-Koin,放弃-Dagger吧!,android开发技术难点

android 程序员 移动开发

想进阶高级架构师,你需要养成这10个习惯!,flutter小程序的onshow

android 程序员 移动开发

我草-28岁就年薪百万??直到我看到这个Alibaba Android技术图谱

android 程序员 移动开发

手把手讲解--性能优化案例(2)app卡顿优化,androidsdk开发封装

android 程序员 移动开发

拿来吧你,Compose尝鲜初体验!,Android开发真等于废人

android 程序员 移动开发

想搞懂Jetpack架构可以不搞懂生命周期知识吗?,阿里P8架构师

android 程序员 移动开发

我把阿里、腾讯、字节跳动,flutter插件化

android 程序员 移动开发

我在阿里当Android面试官的这几年,这些通用问题你不避雷你就废了!

android 程序员 移动开发

我对Flutter的第一次失望,websocketapp保活

android 程序员 移动开发

我懵了,面试大厂被熟悉的App启动流程和RecycleView连环三问坑了

程序员 移动开发

手撕专有钉钉Android面试题完全指南(1),2021年网易Android岗面试必问

android 程序员 移动开发

技术迭代迷茫?Android资深架构师教你如何打破这个局面!

android 程序员 移动开发

拔刀金九银十:2020年最新BAT大厂 Android 面试知识点,安卓开发入门到精通

android 程序员 移动开发

我是如何在一晚上拿到阿里巴巴Android研发offer的?,三年经验Android开发面经总结

android 程序员 移动开发

打造自己的Android常用知识体系,android音视频开发面试

android 程序员 移动开发

想掌握Android面试官必问的 Binder 机制?那别想绕开 Binder 驱动源码分析!

android 程序员 移动开发

我三年半连升了三级(1),一个Android程序员的阿里面试心得

android 程序员 移动开发

我是怎么把业务代码越写越复杂的 _ MVP - MVVM - Clean Architecture

android 程序员 移动开发

手把手讲解-一个复杂动效的自定义绘制2,html5移动端开发框架

android 程序员 移动开发

把Flutter扩展到微信小程序端的探索,androidstudio汉化

android 程序员 移动开发

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