ApacheMesos做了什么kubernetes做不到的事情,或者反之亦然?
mesos是一个两级调度程序。当然,它从每台机器上获取资源信息并将其交给顶级调度器,这样像kubernetes这样的框架可以用来跨机器调度容器,但是kubernetes本身可以跨机器调度容器(从这一点上来说,不需要mesos)。那么,apachemesos能做的几件事kubernetes做不到,反之亦然?
ApacheMesos做了什么kubernetes做不到的事情,或者反之亦然?
mesos是一个两级调度程序。当然,它从每台机器上获取资源信息并将其交给顶级调度器,这样像kubernetes这样的框架可以用来跨机器调度容器,但是kubernetes本身可以跨机器调度容器(从这一点上来说,不需要mesos)。那么,apachemesos能做的几件事kubernetes做不到,反之亦然?
1条答案
按热度按时间lvmkulzt1#
mesos和kubernetes都是n级容器编排器。这意味着您可以实现相同的功能,但某些类型的任务可以更容易地完成(阅读)。更好)在其中一个上面。事实上,你可以用中经文和反经文来分析Kubernetes。
让我们看看主要的区别,当你需要做决定时,这些区别会给你一些线索:
建筑
正如您所指出的,mesos是一个两级调度器,这是体系结构的主要区别。这使您能够创建自定义调度程序(aka framework)来运行任务。此外,您可以有多个调度程序。您的所有调度器都在竞争使用主导资源公平算法(可以用自定义分配器代替)公平分布的资源。您还可以将角色分配给框架和任务,并将权重分配给这些角色,以确定某些调度器的优先级。角色与资源紧密相连。以上特性使您能够为不同的应用程序(例如,fenzo)创建自己的调度方式,并根据要运行的任务类型使用不同的启发式方法。例如,在运行批处理任务时,最好将它们放在数据附近,而开始时间并不那么重要。另一方面,运行无状态服务独立于节点,尽快运行它们更为关键。
kubernetes体系结构是一个单级调度程序。这意味着在一个组件中决定pod的运行位置。没有资源提供这回事。另一方面,所有的东西都是可插拔的,并且采用分层设计。
起源
mesos是在twitter上创建的(以前是在berkeley,但第一个产品使用是在twitter上),以支持它们的规模。
2010年3月,在mesos项目实施大约一年后,hindman和他的伯克利同事在twitter上发表了一次演讲。起初,他很失望。只有八个人出现了。但是twitter的首席科学家告诉他,有8个人非常多,大约占公司全体员工的10%。谈话结束后,其中三个人走近他。
很快,hindman就开始在twitter上咨询,与那些前google工程师和其他人携手合作,扩展这个项目。后来他加入了公司,做实习生。一年后,他签约成为一名全职员工。来源
kubernetes是由google创建的,旨在将用户带到他们的云环境中,并承诺不会带来锁定体验。这与亚马逊使用kindle时采用的技术相同。你可以阅读任何关于它的书,但与亚马逊一起使用它会给你最好的体验。谷歌也是如此。您可以在任何云(公共或私有)上运行kubernetes,但最好的工具、集成和支持只能在google云上获得。
但谷歌和微软是不同的。微软希望在azure上支持一切,而谷歌则希望kubernetes无处不在(从某种意义上说,微软正在实现博格的名字,吸收了所有的编曲者,比谷歌还多。)从字面上说,kubernetes是谷歌如何迎合本地云用户,使其区别于aws(aws不会将其基础设施作为一个有许可证的堆栈来销售,尽管它说vmware是它的私有云合作伙伴)和微软(微软还没有推出azure stack私有云)。来源
社区
仅仅根据社区规模来判断一个项目可能会产生误导。就像你会说php是一种伟大的语言,因为它有很大的社区。
mesos群落比kubernetes小得多。这是事实。kubernetes得到了包括google、intel、mirantis、redhat等多家大公司的资金支持,而mesos主要是由mesosphere在苹果、微软的支持下开发的。虽然mesos是一个成熟的项目,但是它的发展是缓慢而稳定的。另一方面,Kubernetes更年轻,但发展迅速。
中观成因
kubernetes社区-ian lewis,开发人员倡导者,谷歌
比例尺
mesos从一开始就以大客户为目标。twitter、apple、verizon、yelp和netflix都使用它在数千台服务器上运行数十万个容器。
kubernetes是由google发起的,旨在为开发者提供google基础设施体验(giffe)。从一开始,它是为小规模到数百台机器准备的。这种限制随着每个版本的发布而增加,但它们从小到大。目前还没有关于最大的kubernetes安装的公开数据。
炒作
由于规模问题,kuberntetes开始在小型公司中流行(不是云计算规模),而mesos则面向企业用户。KubNETES由云本地基金支持,而MeOS是Apache基金会项目。这两个基金会有不同的创始者和发起人。一般来说,更多的钱给你更好的营销和Kubernetes肯定做得对。
https://g.co/trends/ruuha
结论
看起来Kubernetes已经赢得了这场战争。但如果您有一些定制的工作负载,而且规模非常大,那么mesos可能是一个不错的选择。
主要的区别在于社区规模和开源模式:DCO由mesosphere支持,并且只在商业产品中提供企业特性(因为mesosphere不是慈善家),k8s有一个更大的社区,来自不同公司的强大贡献,从而提供了更集成的企业功能(多租户、rbac、配额、抢占、网关……),这意味着它们更易于使用,而不一定在DCO中不存在。我想说:
dcos在有状态和大数据工作负载方面经过了更多的实战测试,但缺乏与其他外围组件的集成,包括即插即用中央监控和日志记录,以及安全模型、多租户、自动更新等企业功能。。。对于一个生产级的平台来说,整合所有东西是非常困难的。
k8s对无状态应用程序进行了更多的实战测试,并提供了许多即插即用工具,如prometheus、efk、helm。。。这使得生产级平台的实现更加容易。除此之外,在有状态工作负载上有了很大的发展,有状态集和操作符模式与mesos框架相当,但是k8s提供了很多工具来开发它们,成本更低,因为很多功能都是现成的,我花了2个月的时间开发了一个mongodb运营商,以多租户和安全的方式提供mongodb服务,同时我还需要学习golang。
来源
https://www.infoworld.com/article/3118345/cloud-computing/why-kubernetes-is-winning-the-container-war.html
https://www.theregister.co.uk/2017/10/17/docker_ee_kubernetes_support
https://www.techrepublic.com/article/these-two-vendors-are-most-likely-to-bring-kubernetes-containers-to-the-enterprise
https://www.cloudhealthtech.com/blog/container-wars-are-over-kubernetes-has-won
https://news.ycombinator.com/item?id=12462261