当前位置: 首页 > 知识库问答 >
问题:

阿帕奇Mesos做什么是Kubernetes做不到的,反之亦然?

金钊
2023-03-14

Mesos是一个两级调度程序。当然,它从每台机器获取资源信息,并将其提供给顶级调度器,这样像kubernetes这样的框架就可以用来跨机器调度容器,但是kubernetes本身可以跨机器调度容器(在这方面不需要Mesos)。那么Apache Mesos能做的Kubernetes做不到或反之亦然的事情有哪些呢?

共有1个答案

有骏祥
2023-03-14

Mesos和Kubernetes都是第n级容器编排器。这意味着您可以实现相同的功能,但在其中一个功能上可以更容易地完成某些任务(阅读。更好)。事实上,你可以在Mesos和反之亦然地运行Kubernetes。

让我们来看看主要的差异,当你需要做决定时,这些差异会给你一些线索:

正如您所指出的,Mesos是一个两级调度器,这是体系结构的主要区别。这使您能够创建自定义调度程序(又名框架)来运行任务。更重要的是,您可以有多个调度程序。您的所有调度器都使用主导资源公平算法(可以用自定义分配器代替)来竞争公平分配的资源。您还可以为框架和任务分配角色,并为这些角色分配权重,以确定一些调度器的优先级。角色与资源紧密相连。上面的特性使您能够根据您想要运行的任务类型,使用不同的启发式为不同的应用程序(例如Fenzo)创建自己的调度方式。例如,当运行批处理任务时,最好将它们放在数据附近,开始的时间并不重要。另一方面,运行无状态服务是独立于节点的,尽快运行这些服务更为关键。

Mesos社区比Kubernetes小得多。事实就是这样。Kubernetes得到了许多大公司的财政支持,包括谷歌、英特尔、Mirantis、RedHat等,而Mesos主要由Mesosphere开发,并得到了苹果、微软的一些支持。虽然Mesos是一个成熟的项目,但它的发展缓慢但稳定。另一方面,Kubernetes年轻得多,但发展迅速。

Meso贡献者来源

Kubernetes社区--Ian Lewis,谷歌开发者倡导者

看起来Kubernetes已经赢得了集装箱指挥战。但是如果您有一些定制的工作负载和真正的大规模,Mesos可能是一个很好的选择。

主要区别在于社区规模和开放源码模型:DCOS由Mesosphere支持,只在商业产品中提供企业特性(因为Mesosphere不是慈善家),K8S有一个更大的社区,来自不同公司的强大贡献,从而提供了更多集成的企业特性(多租户、RBAC、配额、抢占、网关...)这意味着它们更容易使用,但不一定在DCOS中不存在。我要在全球范围内说:

  • DCOS更多的是针对有状态和大数据工作负载的战斗测试,但缺乏与其他周边组件的集成,包括即插即用的中央监控和日志记录,以及安全模型、多租户、自动更新等企业特性...为生产级平台集成所有东西是一种非常困难的方法。
  • K8S更多的是对无状态应用程序的战斗测试,并提供了许多即插即用的工具,如普罗米修斯,EFK,Helm...这使得生产级平台的实现更加容易。其次,在有状态工作负载方面有一个很大的进步,使用statefulsets和操作符模式,这与mesos框架相当,但同样,K8S提供了大量的工具,以更低的成本开发它们,因为许多功能都是开箱即用的,我花了2个月的时间开发一个MongoDB操作符,以多租户和安全的方式提供MongoDB作为一种服务,同时我需要学习Golang。
    null
 类似资料:
  • 您能说Apache Karaf包括以下内容吗?其中包括: Apache Felix(它是OSGi 4.2框架的实现) Apache Aries(它是Blueprint标准的实现)

  • 我正试图把我的头缠在Apache Mesos上,需要澄清几个项目。 我对Mesos的理解是,它是一个安装在集群中的每个物理/VM服务器(“节点”)上的可执行文件,然后提供一个Java API(不知何故),将每个单独的节点视为计算资源(CPU/RAM/等)的集体池。因此,对于使用Java API编码的程序,他们只看到一组资源,而不必担心如何/在哪里部署代码。 因此,首先,我在这里的理解可能是根本错误

  • 我有一个Mesos集群启动和运行(1个主和2个从)与马拉松。我使用docker作为Mesos/Marathon中的容器。我有一个卡拉夫码头,将在马拉松作为集群发射。我计划用织物的地窖作为卡拉夫的聚类解决方案。我的问题是 提前致谢

  • Apache Kafka:分布式消息传递系统 Apache Storm:实时消息处理 我们如何在实时数据管道中使用这两种技术来处理事件数据? 在实时数据管道方面,我觉得两者做的工作是一样的。如何在数据管道上同时使用这两种技术?

  • 问题内容: 为什么我们需要特定于数据库的功能,例如mysql_real_escape_string()?addlashes()不能做什么? 暂时忽略了参数化查询的高级替代方案,是一个仅使用addlashes()的web应用仍然容易受到SQL注入的攻击,如果是,怎么办? 问题答案: 当处理多字节编码的字符串时,加号通常不够好。