1. 应用定义

k8s: 可以使用 Pod,部署和服务的组合来部署应用程序。一个 pod 是一组 位于同一节点的容器,是部署的原子单位。部署可以在多个节点上具有副本。 服务是容器工作负载的“外部表现”,并与 DNS 集成配合访问。
marathon:从用户的角度来看,应用程序将作为 Marathon 在节点上调度的 任务运行。 对于 Mesos,应用程序是一个框架,可以是 Marathon, Cassandra,Spark 等等。 Marathon 将容器调度为在从节点上执行的任务。 marathon 1.4 引入了 pod 的概念( 如同 Kubernetes pod),但这不是 marathon 核心的一部分。 节点可以根据机架,连接的存储类型等进行标记。
启动 Docker 容器时可以使用这些约束。

2. 应用的可扩展性

k8s:每个应用程序层都被定义为一个 pod,并且可以在通过声明性指定的 部署进行管理时进行缩放,例如,在 YAML 中。 缩放可以是手动或自动的。
marathon:可以使用 Mesos CLI 或 UI。 可以使用 JSON 定义来启动 Docker 容器,这些定义指定了存储库,资源,实例数量和要执行的命令。 可以通过使 用 Marathon UI 进行扩展,Marathon 调度程序将根据指定的标准将这些容器分 布在从节点上。 支持自动缩放。 可以使用应用程序组来部署多层应用程序。

3. 高可用

k8s:pod 可以部署在不同节点上支持高可用。多个 master 节点,node 节 点可以以负载均衡的方式对应客户端的访问。etcd 可以以集群方式部署
marathon: 容器可以不受限制的部署在任何节点上。使用 Zookeeper 支持 Mesos 和 Marathon 的高可用性。 Zookeeper 提供 Mesos 和 Marathon 领导者的 选举并维护集群状态。

4. 负载均衡

k8s: Pod 是通过服务暴露的,可以在集群内用作负载平衡器。
marathon :主机端口可以映射到多个容器端口,作为其他应用程序或最终用户的前端。

5. 应用程序自动伸缩

k8s:使用简单的 pod 目标进行自动缩放是使用部署以声明方式定义的。 还 支持使用资源度量的自动缩放。 资源指标范围从 CPU 和内存利用率到请求或每 秒数据包甚至自定义指标。
marathon:马拉松持续监视正在运行的 Docker 容器实例的数量。 如果其中一个容器发生故障,Marathon 会将其重新安排在其他从属节点上。 只有通过社区支持的组件才能使用资源指标进行自动扩展。

6. 应用程序滚动升级,回滚

k8s : 在 deployment 中有滚动升级和回滚的策略。可以设置 pod 最大数量。
marathon: 部署支持应用程序的滚动升级。失败的升级可以使用回滚更改的更新部署进行修复。

7. 健康检查

k8s:健康检查有两种:活跃(即应用程序响应)和准备(应用程序响应,但正在忙着准备,还没有能够服务)。
marathon:运行状况检查可以指定为针对应用程序的任务运行。健康检查请求可用于许多协议,包括 HTTP,TCP 和其他协议。

8. 存储

k8s:两个存储 API:第一个提供个人存储后端的抽象(例如 NFS,AWS EBS,Ceph,Flocker)。 第二个提供存储资源请求的抽象,这可以用不同的存储后端来实现。 修改集群节点上 Docker 守护进程使用的存储资源需要暂时从集群中删除该节点。 Kubernetes 提供了几种类型的持续卷,支持块或文件。例子包括 iSCSI,NFS,FC,亚马逊网络服务,Google 云端平台和微软 Azure。 emptyDir 卷是非持久性的,可以用来读取和写入容器的文件。
mesos/marathon:本地持久性卷(测试版)支持有状态的应用程序,如MySQL。 需要时,可以使用相同的卷在同一节点上重新启动任务。 外部存储 如 Amazon EBS)的使用也在测试阶段。 目前,使用外部卷的应用程序只能 缩放到一个实例,因为卷一次只能附加到一个任务。

9. 网络

k8s:网络模型是一个扁平的网络,使所有的 pod 互相通信。 网络策略指定 pod 如何相互通信。 平面网络通常作为 overlay 来实现。 该模型需要两个 CIDR:一个从中获取 IP 地址,另一个用于服务。
mesos/marathon:网络可以在主机模式或网桥模式下进行配置。 在主机模式下,主机端口由容器使用。 这可能会导致任何给定主机上的端口冲突。 在桥接模式下,容器端口使用端口映射桥接到主机端口。 主机端口可以在部署时动态分配。

10. 服务发现

k8s:可以使用环境变量或 DNS 来找到服务。 运行 pod 时,Kubelet 会添加 一组环境变量。 Kubelet 支持简单的{SVCNAME_SERVICE_HOST}和 {SVCNAME_SERVICE_PORT}变量,以及 Docker 链接兼容变量。 DNS 服务器可作为附件使用。 对于每个 Kubernetes 服务,DNS 服务器创建一组 DNS 记录。 在 整个群集中启用 DNS 后,pod 将能够使用自动解析的服务名称。
marathon:服务可以通过“命名 VIP”发现,它们是与 IP 和端口关联的 DNS 记录。 服务由 Mesos-DNS 自动分配 DNS 记录。 可以创建一个可选的命名 VIP; 通过 VIP 的请求是负载平衡的。

11. 性能和节点支持

k8s: Kubernetes 可扩展到 5,000 个节点的集群。可以集群联邦来扩展超出此限制。
mesos/marathon: Mesos 的 2 层体系结构(包括 Marathon)非常具有可扩展性。据 Digital Ocean 介绍,Mesos 和 Marathon 集群已经扩展到 10,000 个
节点。

12. 优缺点

k8s:各种各样的存储选项,包括本地 SAN 和公共云。 基于在 Google 上运 行 Linux 容器的丰富经验。 在组织中更频繁地部署。 Kubernetes 也得到来自 Google(GKE)和 RedHat(OpenShift)的企业支持。 容器编排工具中最大的 社区。 超过 50,000 个提交者和 1200 个贡献者。
mesos/marathon: Mesos + Marathon 上的外部存储,包括 Amazon EBS 在 内。 Mesos 被 Mesosphere 所利用。 Mesosphere 公司的 DCOS 产品主要由其创建者和唯一的商业发行 Mesosphere 支持。 较小的社区。 超过 12,000 个提交者和 240 个贡献者。k8s 缺乏单一的供应商控制,会使潜在客户的采购决策复杂化。社区包括 Google,Red Hat 和 2000 多位作者。(来源:CNCF)Kubernetes 仅为容器编排 而建造。它基于 10 多年在 Google 管理 Linux 容器的经验。Kubernetes 1.6 可以扩展到 5,000 个节点的集群。超过 5,000 个节点的大规模可扩展性需要多个
集群。
mesos/marathon: 单一供应商控制可能会考虑错误修复的问责制,以及与功能开发更好的协调。。 2 层架构允许部署其他框架(工作负载)。 例子包括 Spark,Chronos 和 Redis。 一些组织,如苹果,彭博,Netflix 等已经大规模地部署了超过 10,000 个节点的 Mesos。

kubernetes 对比 mesos + marathon相关推荐

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

    这篇文章对比了三大主流调度框架:Swarm.Kubernetes和Mesos.文章不仅从理论上讨论了各个框架的优缺点,还从两个实际的案例出发,分析了每个框架具体使用方法. @Container容器技术 ...

  2. Kubernetes VS Mesos

    随着容器技术的快速发展,目前已形成了"容器生态圈",如下图所示. Kubernetes和Mesos作为重要的容器集群管理系统,会使企业和用户在选择时有所犹豫,下面就对这两种系统做简 ...

  3. Kubernetes和Mesos的区别和优缺点

    Apache Mesos 和 Kubernetes 都是优秀的开源框架,都支持大规模集群管理(当然开源 Kubernetes 目前还局限于数千,万级节点还需要定制化,而 Apache Mesos 可以 ...

  4. Python项目容器化实践 - 编排方案: Mesos+Marathon

    在生产环境中不用 Docker Compose 如果想在生产中使用容器,应该选择 21云盒子來部署 为什么呐?其实也蛮好理解的: Docker Compose 是单机版的开发套件,类似于容器环境下的 ...

  5. OpenStack和Docker不能,Kubernetes和Mesos也不能,ServerLess能决定云计算胜负吗?

    版权声明:任何转载需全文转载并保留来源(微信公众号techculture)和该声明,并同时转载文后的二维码,否则视作侵权:如有文字或图片不全,请移步公众号techculture. 还记得在十多年前,S ...

  6. mesos+marathon平台搭建

    2019独角兽企业重金招聘Python工程师标准>>> mesos+marathon平台搭建 博客分类: 虚拟化 mesos 一.安装jdk和maven 修改/etc/profile ...

  7. mesos marathon mysql_Mesos以及Marathon安装总结

    安装了将近一周的环境了,终于把Mesos以及Marathon给安装上了,我指的离线安装. 策略1: 严格的按照官网的流程: 找一台能够上网的机器,通过yum install/update --down ...

  8. Mesos + Marathon + Chronos + Docker环境安装

    背景信息 组网: OS:CentOS7 bigdata01:Mesos(master),Marathon,Chronos,ZooKeeper bigdata02:docker mesos(slave) ...

  9. Mesos+Marathon搭建部署

    实验环境 主机名 IP地址 运行服务 安装组件 mesos1 172.16.138.201 zookeeper mesos-master marathon mesos marathon mesosph ...

最新文章

  1. 【播放器SDK】Android如何实现固定竖屏播放视频
  2. Scrapy框架中的crawlspider爬虫
  3. 使用ComplexHeatmap包绘制个性化热图
  4. php新闻模块,新闻模块实现
  5. python programming training(二): 排序算法
  6. 在 Vue 中正确使用 防抖 和 节流
  7. 高级Python:定义类时要应用的9种最佳做法
  8. 前端学习(5):深入了解网站开发
  9. 分页及页码导航 用户控件
  10. k3梅林和官改哪个稳定_要功能还是要稳定 — 斐讯 K3 由LEDE 转战官改ROOT版
  11. 怎样做一份良好的竞品分析?通常有哪些方法?
  12. 【音视频知识】各种音视频编解码学习详解
  13. java cap 反编译_应用 JD-Eclipse 插件实现 RFT 中 .class 文件的反向编译
  14. oracle fnd file.log,oracle D_FILE.PUTamp;FND_FILE.PUT_LINE
  15. imagenet数据集类别标签和对应的英文中文对照表
  16. tomcat+nginx配置htpps
  17. Unity3d设置鼠标指针的样式
  18. 【STM32_hal库驱动NRF24L01】
  19. 人脸识别库face_recognition安装简单教程
  20. navicat for mysql 10.1.7注册码

热门文章

  1. 模拟和数字电子电路基础-2-电阻网络
  2. win7彻底卸载iis
  3. 简单的一键部署LNMP架构shell脚本
  4. 用外置显卡跑深度学习的一些注意事项
  5. C#索引器-索引器和属性的区别
  6. fit parse解析佳明.fit 运动数据,模仿zwift数据展示
  7. php 屏蔽curl访问,php curl指定ip,php curl请求忽略本地host文件,php curl请求跳过本地host文件...
  8. hdu4348 为 心灵之旅To The Moon 出的 时光穿梭 题。主席树
  9. OPLS全原子力场在lammps中的使用
  10. ECSHOP v2.5数据库字典