帮助中心
Kubernetes vs Mesos:两种编排工具的比较

容器编排是一项快速发展的技术。当前有三大行业巨头。Kubernetes,Docker Swarm和Apache Mesos。它们属于DevOps基础架构管理工具的类别,称为“容器编排引擎”。Docker Swarm赢得了广大客户的青睐,成为容器化的首选。Kubernetes和Mesos是主要竞争者。他们在这方面可以提供更多的东西。它们提供了不同的可用性梯度,并具有许多不断发展的功能。


尽管Docker Swarm广受欢迎,但它仍然存在一些缺点和功能受限:


● Docker Swarm依赖于平台。

● Docker Swarm没有提供有效的存储选项。

● Docker Swarm的容错能力有限。

● Docker Swarm的监控不足。


这些弊端引起企业质疑:“如何选择正确的容器管理和编排工具?” 现在,许多公司正在选择Docker Swarm的替代产品。这就是Kubernetes和Mesos进入的地方。要系统地检查此选择,必须查看这两个选项具有的核心竞争力。因此,可以得出一个独立的结论。


Docker Swarm,Kubernetes和Mesos的特征

特点码头工人KubernetesMesos /马拉松
初始发行日期2013年3月,稳定版本2019年7月2015年7月,2019年9月为v1.162016年7月,稳定版本2019年8月
部署方式基于YAML基于YAML独特格式
稳定性相对较新且不断发展相当成熟且稳定,并不断更新成熟
设计哲学基于Docker基于Pod的资源分组基于Linux的Cgroup和控制组
图片支持Docker镜像格式有限地支持Docker和rkt主要支持Docker
学习曲线简单


什么是Kubernetes?

Kubernetes于2014年6月首次发布,也被称为k8s。它是Google提供的用于原生云计算的容器编排平台。就功能而言,Kubernetes是可用的最本地集成的选项之一。它背后还有一个庞大的社区。Google将Kubernetes用于其容器即服务产品,并更名为Google Container Engine。扩展了对Kubernetes的支持的其他平台包括Microsoft Azure和Red Hat OpenShift。它还支持Docker,并使用基于YAML的部署模型。


Kubernetes构建在模块化API内核上,允许供应商围绕其专有技术集成系统。它在为应用程序开发人员提供功能强大的工具(适用于Docker容器编排和开源项目)方面做得很好。


什么是Apache Mesos?

Apache Mesos的历史可以追溯到2009年,当时是博士学位。学生首先在UC Berkley开发了它。与Kubernetes和Docker Swarm相比,在管理数据中心和云资源时,它采用了更多的分布式方法。


在处理容器管理时,它采用模块化方法。它使用户可以灵活地运行其应用程序的类型和可伸缩性。Mesos允许其他容器管理框架在其之上运行。其中包括Kubernetes,Apache Aurora,Mesosphere Marathon和Chronos。


创建Mesos是为了解决许多不同的挑战。一种是将数据中心资源抽象到一个池中。另一个是要配置各种工作负载并自动化第二天的操作。最后,为运行的任务和新应用程序提供常绿的可扩展性。它具有独特的能力来单独管理各种工作负载,包括Java,无状态微服务等应用程序组。


kubernetes-on-top-of-mesos-on-top-of-dcos-1.jpg


容器管理:解释

在决定如何选择容器管理工具之前,必须进一步解释容器管理的概念。


容器管理是添加,组织和替换大量软件容器的过程。它利用软件来自动创建,部署和扩展容器。容器管理需要一个平台来组织软件容器,称为操作系统级虚拟化。该平台无需使用复杂的相互依存的系统架构即可优化效率并简化容器交付。


随着越来越多的企业使用DevOps进行更快的开发及其应用,容器已变得非常流行。容器管理引起了对容器编排的需求,这是一种更加专业的工具。它可以自动执行基于容器的应用程序的部署,管理,网络扩展和可用性。


容器编排:解释

容器编排是指管理或调度用于多个集群中基于微服务的应用程序的单个容器的自动过程。它适用于Kubernetes和Mesos。它还计划将容器部署到群集中,从而确定容器的最佳主机。


为什么需要一个容器编排框架的一些原因包括:


● 配置和调度容器

● 容器可用性

● 容器配置和部署

● 容器配置

● 扩展容器的应用程序以实现负载平衡

● 集装箱健康监测

● 确保容器之间的交互

● Kubernetes与Mesos之间的部署架构之间的差异 


Deployment-architecture-e1570721268446-1.jpg


如何选择容器管理和编排工具?

在决定如何有效实施容器管理和编排时,要考虑许多变量。最终选择将取决于用户的特定要求。下面简要说明其中一些。


CNI网络:一个好的工具应该允许服务之间的简单网络连接。这是为了避免开发人员不得不花时间在专用代码上查找依赖项。

简便性:所使用的工具应尽可能简单地实施。

主动开发:所选工具应具有一个开发团队,该团队可以为用户提供定期更新。这是由于容器编排的不断发展的特性。

云供应商:所选工具不应与任何单个云提供商绑定。


Kubernetes和Mesos有什么区别?

Kubernetes和Mesos对同一问题有不同的方法。Kubernetes充当容器协调器,而Apache Mesos的工作原理类似于云操作系统。因此,两者之间存在一些基本差异,下表中突出显示了这些差异。


差异点KubernetesApache Mesos
应用定义Kubernetes是副本集,复制控制器,Pod以及某些服务和部署的组合。在这里,“ Pod”是指一组位于同一位置的容器,被视为部署的原子单位。Mesos的应用程序组建模为n元树,其中组作为分支,应用程序作为叶子。它用于将多个应用程序划分为可管理的集合,在其中按依赖性顺序部署组件。
可用性Pod分布在工作节点之间。应用程序分布在从节点之间。
负载均衡通过充当负载平衡器的服务来暴露Pod。可以通过代理负载平衡器Mesos-DNS来访问应用程序。
存储有两个Stage API。


第一个为各个存储后端(例如NFS,AWS和EBS等)提供抽象。

第二个提供了对存储资源请求的抽象。这是通过不同的存储后端来实现的。

马拉松容器具有使用持久卷的能力,这些持久卷在创建它们的节点本地。因此,容器总是需要在所述节点上运行。实验性的群集集成器负责支持不是单个节点本地的持久卷。
网络模型Kubernetes的网络模型允许任何Pod与任何服务或其他Pod通信。它需要两个独立的网络来运行,两个网络都不需要来自群集外部的连接。这是通过在群集节点上部署覆盖网络来实现的。Marathon的Docker集成允许将容器端口映射到软管端口,这是有限的资源。在这里,容器不会自动获取IP,只有与Calico集成才能实现。应当注意,多个容器不能共享同一网络名称空间。
使用目的它是集群世界的新手的理想选择,它提供了一种快速,轻松和轻松的方式来开始他们在面向集群的开发中的旅程。它具有高度的多功能性,可移植性,并得到了一些知名提供商(例如Microsoft和IBM)的支持。它设计用于最大程度的冗余,因此非常适合大型系统。对于诸如Hadoop或Kafka之类的现有工作负载,Mesos提供了一个框架,允许用户将这些工作负载相互交错。它是一个更加稳定的平台,同时使用起来也比较复杂。
供应商和开发商Kubernetes已被多家公司和开发人员使用,并得到其他一些平台的支持,例如Red Hat OpenShift和Microsoft Azure。


结论

如何选择最佳的容器编排工具。


Kubernetes和Mesos采用不同的策略来解决相同的问题。在基于几种功能进行比较时,我们发现与Docker Swarm相比,这两种解决方案在功能和其他优势方面都是等效的。


我们可以得出的结论是,它们都是容器管理和编排的可行选择。每个工具都可以有效地管理Docker容器。它们都提供对容器编排的访问,以实现应用程序的可移植性和可伸缩性。


当通过DC / OS处理旧系统和大规模集群环境时,Mesos的直观体系结构设计提供了不错的选择。它还擅长处理更特定的技术,例如使用Hadoop进行分布式处理。想要构建专门用于Docker容器编排的系统的开发团队更喜欢Kubernetes。


我们的直接比较应该为用户提供Kubernetes vs Mesos及其核心竞争力的清晰画面。目的是为读者提供相关数据和事实,以帮助他们做出决定。


如何在它们之间进行选择将取决于找到适合您公司技术要求的正确集群管理解决方案。如果您想了解更多有关哪种解决方案最适合您的信息,请立即与我们联系以进行免费咨询。

购物车