@maorongrong
2016-01-11T07:43:14.000000Z
字数 1425
阅读 511
Docker进阶
问:Docker一直存在安全方面的问题,在这方面你有哪些经验可以和大家分享?
我也在《Docker——容器和容器云》里提到过,Docker本身确实有安全问题,但是一定要分场景讨论。比如,什么样的场景下我会在一台裸机上部署Docker;什么样的场景下我会让Docker容器跑在虚拟机里面。在目前这种情况下,如果你是一个公有云提供商,我认为你还是要把容器拷在你的虚拟机里面,防止出现逃逸状况。
我们在书里讲过,你的Docker容器和整个Docker Daemon环境最好做安全加固,在操作系统层面做很多加固,设置权限,并且在整个系统的设计上把权限设计和授权设计摆在第一位,逐层来把不正确的行为过滤掉。另外,一定要区分场景。对于私有云的话,安全要求满足第一点就可以了。但是对于公有云来说,一定要做最高等级的安全预案。
以上是从业务方面讲,但是从技术方面讲,容器本身的安全问题是很难解决的,但是有一些努力的方向非常值得我们关注。比如最新的Rocket集成了英特尔在CPU上的一些虚拟化技术来做到硬件加固,这就是等级很高的安全技术。另外还有像国内赵鹏他们做的Hyper,是一个基于虚拟化技术的容器,它跟虚拟机的安全系数几乎是一样的。所以我觉得从另一方面说,这些技术应该得到大家的重视,并且集成到我们现有的解决方案里面.
问:你有一篇文章叫做《从Borg到Kubernetes》。你觉得Kubernetes今后的发展会怎么样?它和Mesos分别会向什么方向发展?
我们最近也跟谷歌的人一起交流了很久,首先,Kubernetes确实背负了很多Borg之前的优秀的设计理念,其中包括Borg在谷歌内部大规模集群业务的应用。虽然现在还有一些应用我们看不到,但是Kubernetes将来的发展目标一定是用来解决这些问题。
Mesos和Kubernetes在一开始发展时其实是非常直接的竞争对手,因为这两者关注的事情有很多是一致的。但是随着这两个项目的继续发展,它们已经形成了合作关系。比如,Mesos本来就是一个优秀的调度器,那么接下来Mesos会更关注这个业务。并且Mesos可以被更方便地集成到Kubernetes里,作为Kubernetes的一个核心调度器来工作。
这两个项目现在的关注点其实是不一样的,使用的场景也不一样。在今后的发展中,它们会逐渐融合对方的优点。互相之间的集成会越来越多,互相之间的重合会越来越少。
问:你认为学习Docker需要几个阶段?
我们在书的后记里面讲过,不止是Docker,对于任何一个开源项目来说,都有这样的三个或四个阶段。 首先,你要去用,而且不只要用,还要变成一个优秀的玩家。对于开源项目的所有指令、所有设计,你应该有一个感性认识。
在这个基础之上就是源码,要读源码。读源码是一件非常有意思的事,但是在这个过程中,你要学会提问,带着问题去读源码,才会有收获。
然后就是转化,转化包括几种情况。比如,你可以将容器技术转化成你们实验室的某个项目的基础或者工作中的整个项目。另外,你要学会对项目做贡献。从最开始的找bug、解决bug、修改文档,到最后提出自己的特性、融入到社区里,只有这样你才能够获得最多的知识,以最快的速度提高自己在这个领域中的能力。
这三步之后,如果你在这个方面做得更多,可以考虑一些商业化的事情。比如你可以做一些相关的买卖,或者在你的公司里推广这些开源技术。