Cgroup maintainer李泽帆:解剖Linux内核容器技术
2015年4月16-18日,由CSDN主办、CSDN专家顾问团支持的OpenCloud 2015大会将在北京国家会议中心拉开帷幕。为期三天的大会,以推进行业应用中的云计算核心技术发展为主旨,聚焦技术创新与应用实践,设置了“2015 OpenStack技术大会”、“2015 Spark技术峰会”、“2015 Container技术峰会”三大技术峰会及多场深度行业实战培训。
本次大会将邀请近40位国内外云计算技术领域顶尖专家与一线实践者,深入讨论OpenStack、Spark、Docker、Kubernetes等开源技术的最新进展,各个核心项目/组件的演进趋势,以及它们的最新业界应用。点击报名。
在“2015 Container技术峰会”,我们请到了Linux内核高级工程师李泽帆担任演讲嘉宾,他将带来的分享主题为《Linux内核容器技术的历史、现状和展望》,介绍Docker的基石——Cgroup和namespace等Linux内核特性的发展历程,目前它们在社区处于怎样的开发状况,以及在目前Docker引发的热潮下,内核社区是否会从底层提供更完善的容器技术。
李泽帆认为,容器的优点在于以接近物理机的运行效率提供了虚拟化功能、能比虚拟机达到更高的实例密度、达到秒级的启动速度。Docker又加上了层级镜像的创新,使得软件的发布和部署非常便捷。因此容器/Docker有广泛的应用场景,应用时在软件架构上参考微服务架构。他同时也指出,Docker还不够成熟,存在网络功能薄弱(如跨主机的容器网络互连)、安全性(Daemon是一个单点故障)、运行传统业务困难(如CT业务)等挑战。李泽帆对Docker的未来很有信心,但目前,了解Docker的底层技术以及内核容器技术的发展趋势,包括了解Docker的局限性,更有利于我们扬长避短使用Docker,因此,他的分享非常值得期待。
李泽帆
Linux Contributor,华为Linux内核高级工程师
2007年开始从事Linux内核开发,一直活跃在内核开源社区,为内核累计贡献约800个Patch。在社区中担任Cgroup及cpuset的maintainer,同时也担任Linux 3.4版本maintainer。目前在华为从事内核、Docker相关工作。
对话李泽帆:
CSDN:首先请介绍下您自己,以及您在Container/Docker技术方面所做的工作。
李泽帆:我从2007年开始参与linux内核开发工作,在内核里贡献了大概800个Patch。我参与的第一个内核项目就是Cgroup,到了2009年,我开始在内核开源社区担任Cgroup的maintainer,到了2013年,由于前后两任cpuset的maintainer相继离开,我把这个活也揽了下来。Cgroup(包括cpuset)是容器技术的最重要组件之一。
除了开源社区的工作,我在华为负责Linux内核部门的技术工作。我们之前就有团队从事LXC的工作,因此Docker出现后,我们自然也就成立了Docker项目组。
CSDN:您所在的企业是如何使用Container/Docker技术的?为企业带来了哪些好处?
李泽帆:华为的产品线和业务线很长,我们有不少部门都在尝试或者考虑将Docker用起来。但是相比互联网公司可以快速的利用开源项目,让Docker满足企业领域和CT领域的商用要求,目前还有不少困难,特别是在CT领域。
CSDN:您认为Container/Docker技术最适用于哪些应用场景?
李泽帆:这要从容器的优势来看。容器的优点在于以接近物理机的运行效率提供了虚拟化功能、能比虚拟机达到更高的实例密度、达到秒级的启动速度。Docker又加上了层级镜像的创新,使得软件的发布和部署非常便捷。能用上这些优点的地方,自然就是Docker的使用场景了。
实际上这样的场景是非常多的,这也是Docker的生态发展的如此快速和繁荣的原因之一。我们看到有无数基于Docker的开源项目产生,包括CoreOS、Kubernetes、Deis等等,而现有的开源项目也都纷纷拥抱Docker,例如Openstack、Mesos、Cloud Foundry等等,我们也看到国内外各个云平台争先恐后的宣布支持Docker。
不过,对于企业来说,最容易用上Docker的场景,我认为还是用Docker来搭建私有云,以及把Docker用在持续集成平台上。
CSDN:企业在应用Container/Docker技术时,需要做哪些改变吗?企业如果想快速应用Docker应该如何去做?
李泽帆:刚才说过Docker的使用场景非常多,因此这个问题也就不能一概而论了。最理想的情况是遵循Docker的理念,即每个容器只运行一个进程,把Docker作为Application Container来使用,而非System Container,因此在软件架构上参考微服务架构。
另一方面,由于Docker还不够成熟,并且开源软件往往是满足不了所有企业的需求的,因此企业在实际应用Docker的时候,往往都需要做一定的定制,因此也就要求企业有熟悉Docker的开发人员。对于这样的定制,应该注意尽量不要改变、破坏Docker目前的接口,并且在代码上实现较好的解耦,以方便日后对Docker版本的升级。
CSDN:您所在的企业在应用Container/Docker技术时遇到了哪些问题?是如何解决的?
李泽帆:大家都遇到的问题我们也遇到了,例如跨主机的容器网络互连,由于Docker没有提供这样的能力,我们只能使用flannel之类的第三方方案。这样也还是有些缺点,例如容器因故障而重启后,网络又要重新配置。
另外更大的问题是,CT业务要在容器内运行,会遇到很多挑战,这方面我们还在探索中。
CSDN:作为当前最流行的Container技术,您认为Docker还有哪些方面需要改进?
李泽帆:Docker的网络功能太弱,最近Docker收购了SocketPlane,相信在这方面很快就有突破,个人预测在今年的DockerCon会宣布相关的进展,大家可以拭目以待。
Docker Daemon的安全性也是一个很大的问题,包括需要root权限才能运行,以及出现故障后重启会导致所有容器也重启,也就是Daemon是一个单点故障,这也是Docker被CoreOS诟病的其中一个原因。
当然,Docker还很年轻,因此有大大小小的各种问题,但相信以Docker目前的发展态势,这些问题都会得到解决。
CSDN:您在本次演讲中将分享哪些话题?
李泽帆:我是做底层开发的,并且是做开源开发的,所以这次我会给大家讲讲容器技术在内核社区的发展历程,以及在目前Docker引发的热潮下,内核社区是否会从底层提供更完善的容器技术。
CSDN:哪些听众最应该了解这些话题?您所分享的主题可以帮助听众解决哪些问题?
李泽帆:对Docker的底层技术感兴趣以及想了解内核容器技术的发展趋势的,都可以听听。这可以帮助听众了解容器技术提供了多大程度的隔离和安全,因此更好的了解Docker的局限性。
2015 Container技术峰会已经邀请Google Kubernetes核心开发人员来华,和国内用户分享Kubernetes的技术细节,探讨Container未来的发展方向,此外还有VMware、华为、红帽、美团、腾讯、云雀科技、数人科技、上海点融等公司Container/Docker技术实践者,也将同台分享Container/Docker及其相关项目的实战经验。
附:Container技术峰会全日程
“2015 OpenStack技术大会”、“2015 Spark技术峰会”、“2015 Container技术峰会” 4月17-18日在北京召开。日程全部公开! OpenCloud 2015,懂行的人都在这里!更多讲师和日程信息请关注OpenCloud 2015介绍和官网。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。