GSoC 18:Kata Containers对containerd的支持

原创
06/22 16:28
阅读数 35

GSoC 18:Kata Containers对containerd的支持


谷歌代码之夏(GSOC)计划2018年已经结束,我们跟踪了CNCF的七个实习生,在之前的博客文章中介绍了他们的暑期项目进展情况。


今年夏天,浙江大学研究生,在谐云实习的Jian Liu,与导师Harry Zhang、Fupan Li和Lantao Liu,“将containerd与Kata Containers整合”,这是一个旨在创建containerd-kata运行插件的项目,目的是让containerd与Kata Containers整合。



我的故事始于2018年1月,当时我注意到CNCF社区对于GSoC 2018有一些容器技术相关的想法。在浏览了所有的主题之后,我对“KataContainers support for containerd/cri-containerd”这个主题非常感兴趣。我已经对Kubernetes有了一些了解,所以我花了相当长的时间来深入研究“containerd”和“KataContainers”的文档和代码。当我对这两个项目有了更好的理解后,我起草了设计方案,幸运的是我被选为GSoC的候选人!我相信对这些开源项目的源代码的研究对我的设计方案有很大帮助。


在Kata/CRI原生方式中,理论是我们可以避免使用太多的独立shim和代理过程。一些调查显示,一个shim消耗了太多的内存,在高密度的情况下造成了巨大的间接成本。因此,我们的项目旨在删除独立的shim和代理进程,以节省内存并更快地启动容器。


在项目的开始,我们打算为containerd开发一个kata-runtime插件。当我们实现了containerd运行插件需要的部分接口时,基本的容器操作就成功了。那一刻铭刻在我的脑海里。这意味着我从一个容器用户变成了一个容器开发者。太激动了!


但很快,意想不到的事情发生了。


在我完成了部分任务后,containerd上游社区提出了一种全新的提议“Shim API v2”。目标是建立一个新的标准,使容器与各种运行兼容。这听起来对我们正在进行的工作非常有帮助,在与来自谷歌、KataContainers和containerd社区的维护人员讨论之后,我们决定做出一个巨大的转变。


考虑到我的GSoC项目的剩余时间很短,我开始担心我能否完成这些新任务。幸运的是,我的导师帮我联系了一个KataContainers项目的维护者,他为我建立了框架代码,我们两人在新设计上紧密合作。此外,来自谷歌和containerd社区的维护者给了我许多关于如何跟踪上游进展的有用想法。在这个及时的指导下,在GSoC结束的时候,我成功的实现了Kubernetes CRI需要的很多功能,并且通过了95%的节点e2e符合性测试。更多关于我工作的细节可以在那里找到。

最后我们使用containerd+shimv2+kata-runtime来测试启动暂停容器的时间。结果如下。



这个GSoC项目对我来说是一个真正的挑战,我感到一股新知识的洪流涌进了我的脑海。实践经验让我对开源世界有了深刻的理解。我对开源社区的热爱与日俱增。在GSoC之后,我带着满腔的热情继续跟进这个项目。过去的这个夏天真是太棒了。在这个优秀的社区里,我得到了很多的快乐。


我要感谢我的导师们一直以来的支持和指导,特别是Harry Zhang、Fupan Li和Lantao Liu。还要感谢谷歌代码团队和CNCF组织给了我这样一个为开源社区做出贡献的黄金机会。我渴望继续开发并为开源世界做出贡献。

最后,CNCF社区对每个学生来说都是一个很好的起点。它有很多很棒的项目,而且总是一个适合你的选择。




CNCF (Cloud Native Computing Foundation)成立于2015年12月,隶属于Linux  Foundation,是非营利性组织。 

云原生计算基金会(CNCF)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。请长按以下二维码进行关注。



本文分享自微信公众号 - CNCF(lf_cncf)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部