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从事桌面虚拟化产品的质量保证工作。对虚拟化,中间件技术,业务流程管理有浓厚的兴趣。

Mesos和kubernetes的更多相关文章

  1. Introducing Makisu: Uber’s Fast, Reliable Docker Image Builder for Apache Mesos and Kubernetes

    转自:https://eng.uber.com/makisu/?amp To ensure the stable, scalable growth of our diverse tech stack, ...

  2. openstack,docker,mesos,Kubernetes(k8s)

    作者:张乾链接:https://www.zhihu.com/question/62985699/answer/204233732来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  3. 关于Mesos和Kubernetes的区别

    这个主题应该和服务发现注册一样,进入视野...

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

    文章出自:听云博客 随着公司业务的不断增长,我们的应用数量也有了爆发式增长.伴随着应用爆发式的增长,管理的难度也随之加大.如何在业务爆发增长的同时快速完成扩容成了很大的挑战.Docker的横空出世恰巧 ...

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

    Apache的Mesos和Google的Kubernetes 有什么区别?本文来自StackOverFlow上的一个问题,主要讨论Mesos和Kubernetes的区别,相信我们很多人也有同意的疑问. ...

  6. 巅峰对决之Swarm、Kubernetes、Mesos

    另外一篇 https://www.sohu.com/a/157185937_287582 Docker Docker是一个主流容器管理工具,它是第一个基于Linux容器(LXC)的[2],但是现在被r ...

  7. 【云计算】Kubernetes、Marathon等框架需要解决什么样的问题?

    闲谈Kubernetes 的主要特性和经验分享       Capitalonline全球云主机.全球私有网络,免费试用进行时 »   主要介绍 Kubernetes 的主要特性和一些经验.先从整体上 ...

  8. 使用 Prometheus + Grafana 对 Kubernetes 进行性能监控的实践

    1 什么是 Kubernetes? Kubernetes 是 Google 开源的容器集群管理系统,其管理操作包括部署,调度和节点集群间扩展等. 如下图所示为目前 Kubernetes 的架构图,由 ...

  9. 剑指Kubernetes 揭秘腾讯云的PaaS技术选型策略

    1.前言 Kubernetes 很火,一大批互联网公司早已领先一步,搭建起专有的 PaaS平台,传统企业们看到的 Kubernetes的趋势,亦不甘落后,在试水的道上一路狂奔-- 虽然,Kuberne ...

随机推荐

  1. AngularJS之Service4

    AngularJS之Service(四)   前言 前面我们讲了控制器.过滤器以及指令,这一节我们来讲讲重大内容之一服务和其中涉及到的工厂. 话题 AngularJS中服务可以说是和DI紧密联系在一起 ...

  2. Google Ads Encryption Key

    aes | floyd's Google Ads Encryption Key

  3. 了解sota字符界面(章节4.1)

    4 SOTA操作 4.1 SOTA字符界面 sotaCC是字符界面管理sota系统程序 . 在/.../sota/bin/目录下,启动sotaCC.在终端的该目录下输入指令“./sotaCC”,启动s ...

  4. 简单的ajax获取json

    一个DBhelper类,用来操作数据库 using System; using System.Collections.Generic; using System.Linq; using System. ...

  5. swift_将UIDatePicker到达的传播之间的时间差在数小时出现页面的事

    今天,写swift demo当它来到了一个非常精彩的问题,我再次 present 使用页面出来 UIDatePicker 选择时间,然后再回到原来的主界面的时间,结果出现的问题:B页面的正常时间,传回 ...

  6. Net Core子应用由于配置引起IIS错误500.19

    Asp.Net Core子应用由于配置中重复添加模块会引起IIS错误500.19 ASP.NET Core已经从IIS中解耦,可以作为自宿主程序运行,不再依赖IIS. 但我们还是需要强大的IIS作为前 ...

  7. WAS ND集群中的HTTP内存会话复制对Java应用程序序列化编程的要求

    应用程序需要遵守的约定 在会话中没有自定义对象时,WAS 集群的 HTTP 会话内存复制特性成功地实现了高可用性,使用户在宕机过程中的会话信息没有丢失,操作没有受到任何影响. 在会话中包含自定义对象时 ...

  8. QQ圈子降级为“应用”后应关注其隐私设置

    在之前的QQ版本中,QQ圈子的权限设置在“系统设置”对话框的“权限设置”中,如图所示. 但是在更新后的2013SP1版本中,“系统设置”对话框中的“权限设置”已经没有了“圈子权限” QQ圈子成了应用管 ...

  9. DLNA_百度百科

    DLNA_百度百科 DLNA

  10. [Django实战] 第5篇 - 用户认证(修改密码)

    上一篇我们实现了用户认证系统的登录模块,这一篇实现修改密码模块. 同样地,我们首先得给修改密码创建表单(forms.py): class ChangepwdForm(forms.Form): oldp ...