LOADING

Follow me

容器编排系统 ——群雄逐鹿【zoues.com】
十二月 30, 2016|DockerPaaS

容器编排系统 ——群雄逐鹿【zoues.com】

容器编排系统 ——群雄逐鹿【zoues.com】

容器化——大势所趋

引子

201612月,北京云宏信达基于容器编排系统Kubernetes(并集成DockerHarborCalicoCephYarn等开源技术)的大数据能力平台产品在公司内部研发生产环境上成功部署,并提供大数据分析应用产品的研发生产全周期过程的治理编排支撑,标志着信达大数据能力平台产品跨越了一个重要的里程碑。容器化的现实场景是大量容器需要互相协调,沟通,管理,如何管理编排将是业界下一个需要解决的技术问题和创新制高点。基于北京云宏信达在大数据能力平台产品研发和构建过程中积累的经验,本文简要介绍和对比一下主流的容器编排系统。

容器编排系统 ——群雄逐鹿

容器编排系统

群雄

那么容器编排系统都有哪些玩家?

l  SwarmDocker公司在201412月初新发布的容器管理工具。和Swarm一起发布的Docker管理工具还有Machine以及Compose

l  KubernetesGoogle开源的容器集群管理系统,其提供应用部署、维护、 扩展机制等功能。

l  MesosApache下的开源分布式资源管理框架,它被称为是分布式系统的内核。Mesos最初是由加州大学伯克利分校的AMPLab开发的,后在Twitter得到广泛使用。


术业有专攻,Docker公司在容器方面是有非常强的技术能力这是毫无疑问的。在容器编排方面通过推出Swarm力争上游却明显是力所不逮。再加上缺乏数据中心应用场景的第一手经验,结果是Swarm在功能上略显简单。其优点是,容器集群创建简单,学习起来容易。你只需在其中一个节点上调用docker swarm init,然后在任何其他你想添加的节点上调用docker swarm join即可。连Kubernetes1.4.0开始也提供了类似的创建命令选项。如果只是体验学习容器技术和编排场景,Swarm是一个不错的入门选择。

Kubernetes是源于谷歌的大名鼎鼎的borg系统的开源版本。基于谷歌运行容器化数据中心的强大使用场景支持,github上活跃的开发社区(1.5版本发布就有5000个代码提交),开放的每周社区视频会议,不断完善的在线文档支持,听起来就是一个不错的选择,不是吗?

其架构借鉴了微服务理念,系统具有极大的鲁棒性——主要的组件宕机不影响集群中容器的运行。对系统的操控采用了restful API接口,便于第三方集成开发。对于集群访问的认证,授权,以及内部网络隔离,访问控制等都有定义良好的接口,所以很方便和其他开发组件集成。其提供的功能可以说是数据中心场景的集大成者,包罗万象,无所不能!在三个编排系统中其功能集合是最丰富的。Kubernetes对容器集群管理有自己的观点。问题不在于有没有观点,而在于观点的正确与否。考虑到Kubernetes具有得天独厚的领域的第一手经验,这种“先验”的观点对很多使用着来说都是福音,不知道帮助少走多少弯路了。具体内容要专门一篇来简述了。

Apache Mesos是一个开源集群管理系统,支持各种工作负载。提供了对物理的或者虚拟的计算资源(CPU,内存,外存)的软件抽象层,以便人们能够高效而便捷的创建和运行具有容错机制和弹性的分布式系统。

由于Mesos的高度抽象性,所以应用场景广阔,不仅可以使用管理传统应用组成的集群而且也可以管理容器集群。而缺点也是这种抽象性的后果。由Mesos构建的系统总是存在很多的软件层次,这许多层次意味着来源不同的许多软件包,管理和维护会有更多的挑战。比如构建容器集群系统需要使用Marathon运行在Mesos之上实现。不止如此,如果要实现容器集群高级功能如负载均衡和身份认证则还需要增加额外的软件层次。这些都无疑会增加系统的复杂性。

逐鹿

Docker公司的Swarm体量小,阅历浅,可以作为上手工具学习之用。而且Docker对自己的Docker容器技术有和开源社区相悖的独占意识,毕竟是商业公司,一切以商业利益为重。Kubernetes的背景是谷歌的技术,基于谷歌庞大服务器集群15年的生产负载运行经验。具有开放共享的和产业化技术视野和完善的开发社区互动机制。显著的一个变化是在其1.5的发布中,重构了代码,增加了CRI(容器运行时接口)的alpha版支持,足见其开放的视野和决心。Apache Mesos是分布式计算领域的老马,具有超越容器集群的应用场景,但是构建过程较为困难,维护起来也不省心。如果真的不怕复杂性挑战也可以一试。

no comments
Share

发表评论