Kubernetes vs Mesos

简介:

当前国内最火的容器集群管理非Kubernetes和Mesos莫属,那么这两种解决方案各自的应用场景和解决的痛点分别是什么呢,这篇内容就来带大家简单的聊一聊他们各自特性,内容来自于网络上各位大咖的总结,就当是一篇随笔记录吧。


Kubernetes简介

Kubernetes是一个开源项目,它把谷歌的集群管理工具引入到虚拟机和裸机场景中。它可以完美运行在现代的操作系统环境(比如CoreOS和Red Hat Atomic),并提供可以被你管控的轻量级的计算节点。Kubernetes使用Golang开发,具有轻量化、模块化、便携以及可扩展的特点。系统架构如下图:

wKiom1l3AwmjiN7fAABMK2LeUmY517.png

Kubernetes集群的主要组件是:

  • pods : 容器组。Kubernetes以一个容器组为部署和调度的单位进行操作。一个典型的pod一般包含1到5个容器组成一个小型的集群提供服务。

  •  Flat Networking Space : Kubernetes默认的网络类型为单一的扁平网络。允许所有的pod进行互相访问。在同一个pod中的容器共享同一个IP,容器之间的互相访问使用本地地址加端口的方式。

  • Labels:标签是附加到对象的键值对,可用于以单个集合搜索和更新多个对象。

  • Services:服务是可以通过名称解决的端点,可以使用标签选择器连接到端口。 该服务将自动轮询pod之间的请求。 Kubernetes将为集群设置一个DNS服务器,用于监视新服务,并允许按名称进行寻址。

  • Replication Controllers: 复制控制器是在Kubernetes中实例化pod的方法。 它们控制和监视运行的服务器端口的数量,从而提高容错能力。

因此,只要使用Kubernetes你就能够简单并快速的启动、移植并扩展集群。在这种情况下,集群就像是类似虚拟机一样灵活的资源,它是一个逻辑运算单元。打开它,使用它,调整它的大小,然后关闭它,就是这么快,就是这么简单。


Mesos + Marathon简介

Apache Mesos是一个开源的群集管理器,旨在扩展到数百到数千个主机的大型群集。 Mesos支持多种工作负载,如Hadoop任务,云本地应用程序等.Mesos的架构旨在提供高可用性和弹性。

wKioL1l3LWiQ8AWEAAOALxS_CZY603.png

Mesos集群中的主要组件有:

  • Mesos Agent Nodes: 负责运行最终的需求任务。 所有代理将可用资源的列表提交给master。

  • Mesos Master : Master负责向代理发送任务。 它保留了可用资源的列表,并将其“提供”给框架,例如Hadoop的。 Master根据分配策略决定提供多少资源。 通常会有备用的Master实例在发生故障时接管。

  • Zookeeper: 用于选举和查找现任Master的地址。 运行ZooKeeper的多个实例来确保可用性并处理故障。

  • Frameworks: Frameworks与Master进行协调,将任务调度到agent节点上。 Frameworks 由两个部分组件组成:

      a. 用于执行程序进程运行在代理程序上,并负责执行任务

      b. 用于调度的进程向主机注册,并根据主机的需求选择要使用的资源


Marathon由Mesosphere创建,旨在启动,监控和扩展长服务应用程序,包括云端的应用程序。 客户通过REST API与Marathon交互。 还可以支持健康检查和可用于与负载平衡器集成或用于分析指标的事件流。

Mesos和Kubernetes的愿景差不多,但是它们在不同的生命周期中各有不同的优势。Mesos是分布式系统内核,它可以将不同的机器整合在一个逻辑计算机上面。当你拥有很多的物理资源并想构建一个巨大的静态的计算集群的时候,Mesos就派上用场了。有很多的现代化可扩展性的数据处理应用都可以在Mesos上运行,包括Hadoop、Kafka、Spark等,同时你可以通过容器技术将所有的数据处理应用都运行在一个基础的资源池中。在某个方面来看,Mesos是一个比Kubernetes更加重量级的项目,但是得益于那些像Mesosphere一样的贡献者,Mesos正在变得更加简单并且容易管理。

Mesos正在接受Kubernetes的理念,并已经开始支持Kubernetes API。因此如果你需要它们的话,它将是对你的Kubernetes应用去获得更多能力的一个便捷方式(比如高可用的主干、更加高级的调度命令、去管控很大数目结点的能力),同时能够很好的适用于产品级工作环境中(毕竟Kubernetes仍然还是一个初始版本)。


最后,总结一下Kubernetes的开发者Craig对于两个集群框架的说明:

1、如果你是一个集群世界的新手,那Kubernetes是一个很棒的开始。它可以用最快的、最简单的、最轻量级的方式来解决你的问题,并帮助你进行面向集群的开发。它提供了一个高水平的可移植方案,因为很多厂商已经开始支持Kubernetes,例如微软、IBM、Red Hat、CoreOS、MesoSphere、VMWare等。

2、如果你拥有已经存在的工作任务(Hadoop、Spark、Kafka等),那Mesos可以给你提供了一个将不同工作任务相互交错的框架,然后还可以加入一些新的东西,比如Kubernetes应用。

3、如果你想使用的功能Kuberntes还没实现,那Mesos是一个不错的替代品,毕竟它已经成熟。


Mesos和Kubernetes都是为帮助应用程序在群集环境中运行而创建的,Kubernetes更加专注于运行容器群集,具有更多功能。

如果您同意Google的意见或没有具体的方式来布局集群,Kubernetes是一个很好的选择,可以为您处理许多幕后烦恼。

与此同时,Mesos具有更多的灵活性,更强大的调度功能,并且能够与更多种类的调度器配合使用,并且已经从原始创建中进行了修改,以更好地支持容器。

非Docker和非集成应用程序可以在Mesos上运行,它能够处理将会慢慢转移到容器的非常复杂的工作负载。它还经过数万个节点的测试,证明了强大的可扩展性和基础设施。但是,您需要更加自信地使用此产品,因为您需要自己管理负载平衡和其他高级扩展功能。

在确定您的需求之后,您将能够为您找到完美的容器编排工具。


参考链接:

http://dockone.io/article/147 

https://stackoverflow.com/questions/26705201/whats-the-difference-between-apaches-mesos-and-googles-kubernetes 

https://platform9.com/blog/compare-kubernetes-vs-mesos/ 

http://techgenix.com/swarm-kubernetes-mesos/ 



 本文转自 酥心糖 51CTO博客,原文链接:http://blog.51cto.com/tryingstuff/1951155

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
6月前
|
Kubernetes 调度 Apache
Docker 编排工具比较:Kubernetes、Docker Swarm 和 Mesos,选择最适合你的容器编排方案
Docker 编排工具比较:Kubernetes、Docker Swarm 和 Mesos,选择最适合你的容器编排方案
191 0
|
11月前
|
存储 Kubernetes 负载均衡
「容器云平台」Mesos 和 Kubernetes的比较
「容器云平台」Mesos 和 Kubernetes的比较
|
存储 Cloud Native 云计算
Twitter 宣布抛弃 Mesos,全面转向Kubernetes
从最早Mesos“代言人”到如今的全面转向“Kubernetes Native”,Twitter的举动再一次佐证了‘Kuberentes已经成为容器编排事实标准’这一断言。
10498 0
|
监控 Kubernetes Cloud Native
分享Docker监控体系(Kubernetes Mesos监控)
常不释放资源,造成高CPU占用;比如进程结束异常,不停的重启相同的进程;比如日志级别设置过低,大量日志输出,影响进程性能和占用大量磁盘空间。所以做监控时一定要遵循有自我安全控制的能力。监控工具在拿到生产环境中运行前,一定要先在测试环境中进行一段时间的试运行 。
1722 0
|
Kubernetes 调度 Docker
|
Kubernetes 调度 Docker
Swarm、Fleet、Kubernetes、Mesos - 编排工具的对比分析
Swarm、Fleet、Kubernetes、Mesos - 编排工具的对比分析 【编者的话】此篇文章是《Using Docker》一书的作者 Adrian Mouat 编写,详细对比分析了Swarm、Fleet、K8s以及Mesos的区别。
1790 0
|
Kubernetes 网络协议 Docker
Kubernetes、Mesos和Swarm:Rancher编排引擎的比较
本文讲的是Kubernetes、Mesos和Swarm:Rancher编排引擎的比较【编者的话】Kubernetes是Google开源的容器集群管理系统,其提供应用部署、维护、 扩展机制等功能。Mesos是Apache下的开源分布式资源管理框架,它被称为是分布式系统的内核。
3246 0
|
存储 Kubernetes 数据格式
容器存储架构比较:Kubernetes、Docker和Mesos Compare
本文讲的是容器存储架构比较:Kubernetes、Docker和Mesos Compare【编者的话】 容器存储是容器离不开的一个话题,对于无状态的Docker容器,容器重启时容器数据会自动清除,一些静态的数据我们可以通过配置文件或者在容器build时直接写死。
2756 0
|
Kubernetes Apache Docker
Docker、Kubernetes、Apache Mesos 之争 | 一个与传说不同的故事
本文讲的是Docker、Kubernetes、Apache Mesos 之争 | 一个与传说不同的故事【编者的话】有无数的文章、讨论和社交网络上的交流在比较 Docker、Kubernetes 和 Mesos。
3804 0
|
网络协议 测试技术 Linux
Linux内核bug引起Mesos、Kubernetes、Docker的TCP/IP数据包失效
本文讲的是Linux内核bug引起Mesos、Kubernetes、Docker的TCP/IP数据包失效,【编者的话】最近发现Linux内核bug,会造成使用veth设备进行路由的容器
1524 0

推荐镜像

更多