AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

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

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

关注

评论

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

74道高级Java面试合集:nginx入门到精百度云,Java校招笔试面试题目

Java 程序员 后端

7天拿到阿里Java岗位offer,2021腾讯Java面试题精选

Java 程序员 后端

35岁技术人如何转型做管理?牛客网中级项目笔记,Java高级工程师必备知识

Java 程序员 后端

3年内被辞退5次,35岁程序员该何去何从,Java工程师必备知识

Java 程序员 后端

4个改变你编程技能的小技巧,非科班生金九银十求职经历

Java 程序员 后端

80后程序员月薪30K+感慨中年危机,Java开发面试准备

Java 程序员 后端

35岁老年程序员的绝地翻身之路,Java面试重点问题

Java 程序员 后端

60分钟快速掌握RabbitMQ,Java基础全套视频教程

Java 程序员 后端

60分钟快速掌握RabbitMQ,Java常用数据结构面试题

Java 程序员 后端

让区块链技术在经济社会发展中发挥更大作用

CECBC

阿里技术官终于把这份万字面试手册整理出来了,在Github上获赞89.7K

Java 编程 程序员 架构 面试

46道面试题带你了解高级Java面试,linux教程视频合集

Java 程序员 后端

4面技术5面HR附加笔试面,初级Java面试题大全

Java 程序员 后端

5年crud经验,【微信小程序】

Java 程序员 后端

95%Java开发者已收藏的十大开源库,手把手教你写Java项目文档

Java 程序员 后端

4个改变你编程技能的小技巧,附答案解析

Java 程序员 后端

4面字节跳动拿到Offer,尚学堂java视频下载,初级Java面试题大全

Java 程序员 后端

4面技术5面HR附加笔试面,面试的时候突然遇到答不上的问题怎么办

Java 程序员 后端

阿里云容器服务多项重磅发布:高效智能、安全无界的新一代平台

阿里巴巴云原生

阿里云 容器 云原生 云栖大会

35岁程序员的人生感悟,mongodb入门教程,阿里Java高级工程师面试题

Java 程序员 后端

区块链上升为国家战略两周年后 看浪潮下企业如何创新数字化应用

CECBC

985研究生入职电网6个月,牛客网面经下载,血与泪的总结

Java 程序员 后端

分布式存储和区块链结合能碰撞出怎样的火花?

CECBC

35岁技术人如何转型做管理,mybatis使用教程,Java全套视频

Java 程序员 后端

云栖掠影|回首开源十年,RocketMQ 焕发新生

阿里巴巴云原生

阿里云 RocketMQ 云原生

38岁的中年失业者怎么活下去,Java中级工程师面试题及答案

Java 程序员 后端

3分钟就能完成的Redis主从复制搭建,10天拿到阿里Java岗offer

Java 程序员 后端

30岁以后搞Java已经没有前途,java自学编程入门教程,大V推荐

Java 程序员 后端

不要让孩子在12岁之前接触手机游戏

石云升

育儿 10月月更

4面阿里拿到P7Offer,SpringSecurity如何实现加密和解码

Java 程序员 后端

数字货币能改变国际货币体系吗?

CECBC

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