Kubernetes和DCOS,朋友还是对手?


【编者的话】本文的作者是Tobi Knaup,Mesosphere的联合创始人兼CTO。文章主要阐述了Kubernetes和Mesosphere DCOS的关系,并解读了Mesosphere DCOS的设计理念和发展方向。

Kubernetes是Mesosphere DCOS(Datacenter Operating System,数据中心操作系统)的竞争对手吗?无论是在给客户介绍Apache Mesos和Mesosphere DCOS还是在相关会议上,我都会被问到这个问题。我的回答是:不,他们并不是对手。

为了理解为什么Kubernetes和DCOS是朋友而不是对手,让我们来做一个类比,关于世界上的操作系统和浏览器的。思考一下,就像MacBook已经预先安装了MacOS和Safari或者像Windows默认装有IE浏览器,一些人会很高兴在他们的电脑上拥有默认浏览器,而另一些人选择安装他们喜欢的浏览器像火狐或者Chrome,还有一些人甚至会同时使用多个浏览器。

浏览器和操作系统提供了一个强有力的类比,因为他们就等同于在DCOS中:我们使用预装的并且已配置好的Marathon,同时,它也用于在集群中启动长期运行的服务(像在Linux机器上的init或systemd),但是,如果你希望使用Marathon去构建和部署你的应用,这也完全取决于你。你可能选择使用Marathon,你也可能使用Kubernetes,或者你可能两个都用,对不同的工作负载和应用场景使用不同的框架(DCOS可以同时运行Marathon和Kubernetes的工作负载在同一个集群上而不产生冲突,就像你运行多个浏览器在你的笔记本里)。DCOS里工具的使用完全取决于你的需求和偏好。

Kubernetes是DCOS里的一等公民,它同样也是我们重度参与的一个社区项目,Mesosphere有一个庞大团队在从事有关Kubernetes的开发工作,从开源工程到产品和培训。

Mesosphere的客户有将Kubernetes作为选择提供给他们开发者的,开发者也可以使用预装的Marathon,亦或,他们还可以使用其他任何数量的新兴开发模型,包括很多运行在DCOS之上的PaaS层模型。这是作为一个数据中心操作系统的关键部分。DCOS提供给用户一种方法去采用多种负载类型和开发模型来达到他们使用上的最佳表现。DCOS是目前唯一的系统可以提供这种内在灵活性和消除使用上的禁锢。同时,它也是唯一的系统可以运行多个服务,不只是Marathon和Kubernetes,还可以是Spark和Cassandra,所有这些都在同一个集群里,可以共享资源和自动化操作。

Kubernetes的每个结构都是可插拔的,它的整体结构如下:
k8s_architecture_overview-800x532.png

我们和谷歌合作,利用Kubernetes的扩展性来构建Kubernetes-Mesos。它是一个开源项目,集成了Kubernetes的调度API和Mesos的调度机制,同时还提供了一个执行组件,这个组件综合了kubelet的服务和Mesos的执行机制。
k8s-mesos_architecture.png

正如上图所示,Kubernetes被深度和Mesos一起集成到DCOS里。它易于构建(DCOS通过一条命令就可以装好Kubernetes)和易于操作。所以你现在就可以在DCOS上使用Kubernetes。如果你已经准备好将100%的应用都打包进容器,这意味着你100%的时间都使用Docker已经比较顺手,后面要考虑事情就是你要在Kubernetes和Marathon之间做出选择。你选择哪个主要取决于你更偏好Kubernetes的pod/labels/services模型还是Marathon的apps/groups/dependency操作模型。另外还要考虑的是可扩展性,相比Kubernetes而言,Marathon早已经被证明可以扩展到更大的集群和更大的负载,至少现在是这样,但目前我们正在参与Kubernetes社区来帮助Kubernetes赶上Marathon。

最后,在个人和公司层面,我们都热爱并支持Kubernetes。我们是原生云计算基金会的创始成员,我们相信这是个正确的选择。通过DCOS,我们支持用户选择任何编排管理工具,无论是Kubernetes或Marathon,甚至一些还没有被发明的模型。我们的标准是让用户能够更快编写分布式的应用,并更加自动化的操控它们,同时减少相关的问题。

原文链接:Kubernetes and the DCOS - Friends or Foes?(翻译:何炜)

1 个评论

既是朋友又是对手

要回复文章请先登录注册