Mesos和kubernetes

Mesos和kubernetes

http://dockone.io/article/956我坚定地认为,下一年里,它们的使用增长会更快,因此是时候回顾总结,为2016年做好准备了。本文我想讨论Mesos和Kubernetes的现状,并且列举出优势和劣势,让大家能够理解集群管理器的概念。

Mesos和Kubernetes

在开始之前,我想花时间粗略比较一下Mesos和Kubernetes。这样的比较并不容易,因为Mesos做的工作和Kubernetes并不完全一致。要理解这其中的原因,需要快速深入了解一下Mesos和Kubernetes是如何工作的。

Mesos是基于两阶段调度的集群管理器。高度简化来说,Mesos用来管理集群资源,并且向其提供高层级的能接受这些资源来启动任务的“框架”。

相反,Kubernetes是基于Borg背后的理念而设计的集群管理器。Google的集群管理器没有两阶段调度的概念。

介绍Mesos时,我通常会介绍整个Mesos“堆栈”,因为我发现仅仅介绍Mesos会很不准确:如前所述,基于其两阶段调度特性,用户需要能够使用Mesos的“Mesos框架”(比如,Marathon,Aurora,Singularity),才能够像Kubernetes调度器那样工作。使用带有企业支持的Mesos管理集群的流行(付费)方案是DCOS

除了两阶段调度,Mesos和Kubernetes还有很多区别,比如它们的依赖(Zookeeper,Etcd等等)以及使用方式。本文并不想讨论Mesos和/或Kubernetes的内部细节,因此会直接探讨这两者的优势和劣势。

现状,优势和劣势

Mesos和Kubernetes比较清晰的一点是它们处在各自不同的阶段。Mesos由Mesosphere推进,在今年实现了很多成功的里程碑节点,而Kubernetes在七月份才发布了第一个稳定版本。这意味着是使用一个广泛使用的拥有相对长历史的项目产品(Mesos),还是使用一个有光明前途,设计优良的新项目(Kubernetes)。

我可以花几个小时来谈论这两者,但是如果你考虑在集群里使用它们,我认为目前这两者中还没有绝对胜出的方案,因此探讨其中的优势和劣势有助于在具体实践前作为参考。

Mesos 堆栈

优势

  • 已证实的扩展能力,Apple使用了75000个节点
  • 极度灵活。现在,很多企业在生产环境里使用它,并且有很多不同的Mesos框架可以满足不同的需求。
  • 相对成熟,更容易找到使用其的生产环境用例和最佳实践。
  • 可以使用和docker容器不同的格式。

劣势

  • 为不同时代而生,适应于docker容器时代。从一些设计决策看这很明显,包括集群信息以什么方式暴露,通过Json API,实际上相当难用。
  • 语言太多。作为开发人员和运维人员,我想要知道集群里运行的是什么,在发现代码基问题时,我要能够修复问题。要运行Mesos堆栈,涉及到很多组件:Mesos(C++),Marathon(Scala),Mesos-DNS(Golang)等等。不太容易找到对这么多语言都熟悉的开发人员。
  • 所有调度器都没有很好地针对微服务进行抽象,就像Pod,Service,Namespace的抽象那样。这些很容易实现,但是还没有实现。

Kubernetes

优势

  • 设计相当精良的API。
  • Pod,Service,Namespace是微服务的正确抽象。
  • 充满活力,快速推进的社区。
  • 一种语言,Golang。

劣势

  • 还很年轻,会遇到bug。
  • 还没有有名的大公司大规模使用。Google本身还在使用BORG,而在撰写本文时,迁移到Kubernetes的很多公司还没有大型生产集群。
  • 只支持Docker(撰写本文时)

结论

很多人在谈论这两种技术,认为关于谁是最好的集群管理器的竞争,还没有明显的结论。如果想要使用集群管理器,我强烈建议Mesos和Kubernetes都试一试,因为这两者中有待学习的地方都很多,在用于生产环境之前,你可能想两个都有所了解。让我们期待2016年会真正成为Kubernetes的成熟之年,能够真正用于生产环境,同时也期待看到Mesos生态系统会如何反击这一强大的竞争对手。

原文链接:2016, Mesos and Kubernetes(翻译:崔婧雯 ) 
===========================
译者介绍
崔婧雯,现就职于IBM,高级软件工程师,负责IBM WebSphere业务流程管理软件的系统测试工作。曾就职于VMware从事桌面虚拟化产品的质量保证工作。对虚拟化,中间件技术,业务流程管理有浓厚的兴趣。

时间: 2024-11-06 02:24:07

Mesos和kubernetes的相关文章

Apache的Mesos和Google的Kubernetes 有什么区别?

Apache的Mesos和Google的Kubernetes 有什么区别?本文来自StackOverFlow上的一个问题,主要讨论Mesos和Kubernetes的区别,相信我们很多人也有同意的疑问. Kubernetes的开发者Craig回答了这个问题,同时masi也做了概述,不一定对,供读者参考.Kubernetes主要针对容器集群,而 Mesos适用于任何的框架和应用,所以Kubernetes可以运行于Mesos上. Kubernetes是一个开源项目,它把谷歌的集群管理工具引入到虚拟机和

Kubernetes vs Mesos

当前国内最火的容器集群管理非Kubernetes和Mesos莫属,那么这两种解决方案各自的应用场景和解决的痛点分别是什么呢,这篇内容就来带大家简单的聊一聊他们各自特性,内容来自于网络上各位大咖的总结,就当是一篇随笔记录吧. Kubernetes简介 Kubernetes是一个开源项目,它把谷歌的集群管理工具引入到虚拟机和裸机场景中.它可以完美运行在现代的操作系统环境(比如CoreOS和Red Hat Atomic),并提供可以被你管控的轻量级的计算节点.Kubernetes使用Golang开发,

利用听云Server和听云Network实测Kubernetes和Mesos在高并发下的网络性能

文章出自:听云博客 随着公司业务的不断增长,我们的应用数量也有了爆发式增长.伴随着应用爆发式的增长,管理的难度也随之加大.如何在业务爆发增长的同时快速完成扩容成了很大的挑战.Docker的横空出世恰巧解决了我们的问题.利用Docker我们可以快速完成扩容缩容,且配置统一,不易出错. 在Docker的集群管理选型上,我们比较纠结,目前比较流行的是Mesos和Kubernetes.从功能来说,我们更倾向于使用Kubernetes,他在容器编排方面的能力强于Meoso,且提供了持久化存储方案,更适合我

一线工程师带你深入学习和使用Kubernetes

http://page.factj.com/tor/xoxaHR0cDovL2RvY2tvbmUuaW8vYXJ0aWNsZS8yMzM0 Kubernetes是Google开源的容器集群管理系统,它构建于Docker技术之上,为容器化的应用提供资源调度.部署运行.服务发现.扩容缩容等整一套功能,利用Kubernetes能方便地管理跨机器运行容器化的应用. DockOne社区联合两位一线讲师设置了一堂针对架构师.开发工程师和运维工程师的体系课程,来帮助Kubernetes爱好者和使用者深入学习K

通过Rancher部署并扩容Kubernetes集群基础篇

一 应用场景描述 持续跟踪研究Kubernetes也有一段时间了,Kubernetes作为谷歌开源的生产级别的容器调度系统从开源初始便获得了众多的关注.一些有研发实力的公司调研过Kubernetes的设计理念以及应用场景后很快就组织研发人员结合Kubernetes开发出符合自身业务发展的容器管理平台,也有一些公司基于Kubernetes开发公有容器云平台对外提供服务.但是对于一些小型团队对Kubernetes还是保持观望态度并适当做些测试.对比与mesos,kubernetes目前缺少一个像DC

支撑大规模公有云的Kubernetes改进与优化 (1)

Kubernetes是设计用来实施私有容器云的,然而容器作为公有云,同样需要一个管理平台,在Swarm,Mesos,Kubernetes中,基于Kubernetes已经逐渐成为容器编排的最热最主流的平台,网易基于Kubernetes实现了自己的容器公有云,在这个过程中,需要对Kubernetes进行一定的改进与优化. 架构如下: 网易开发了自己的一个容器服务平台,将OpenStack的IaaS层和Kubernetes容器层深度融合起来,从而实现一个完整的公有云体系.从图中可以看出,容器服务平台会

Kubernetes 在知乎上的应用

从 Mesos 到 Kubernetes 之前的调度框架是基于 Mesos 自研的.采用的语言是 Python.运行了大概两年多的时间了,也一直比较稳定.但随着业务的增长,现有的框架的问题逐渐暴露. 调度速度遇到瓶颈,影响大业务的部署速度. 不能很好的支持有状态服务. 解决上述问题的方案有两个,一个是对现有系统进行改进重构,另一个是迁移到 Kubernetes.我们最终选择迁移到 Kubernetes,主要基于以下考虑. Kubernetes 的架构设计简单明了,容器管理的抽像做的很好,重易进行

Docker集群管理工具-Kubernetes部署记录

Kubernetes介绍 Kubernetes是Google开源的容器集群管理系统,是基于Docker构建一个容器的调度服务,提供资源调度.均衡容灾.服务注册.动态扩缩容等功能套件. Kubernetes提供应用部署.维护. 扩展机制等功能,利用Kubernetes能方便地管理跨机器运行容器化的应用,其主要功能如下: 1) 使用Docker对应用程序包装(package).实例化(instantiate).运行(run). 2) 将多台Docker主机抽象为一个资源,以集群的方式运行.管理跨机器

Longhorn:实现Kubernetes集群的持久化存储

Longhorn项目是Rancher Labs推出的开源的基于云和容器部署的分布式块存储新方式.Longhorn遵循微服务的原则,利用容器将小型独立组件构建为分布式块存储,并使用容器编排来协调这些组件,形成弹性分布式系统. 自2017年4月Longhorn项目发布以来,人们对在Kubernetes集群上运行Longhorn存储就产生了极大的兴趣.近日,Longhorn v0.2版本发布了,它可支持任何Kubernetes集群的持久化存储实现! Why Longhorn 如今,基于云和容器的部署规