Apache Mesos 1.11.0 介绍与选型指南
基于 Apache 官方与 Attic 归档溯源的 Apache Mesos 1.11.0 介绍与选型指南:生命周期与退役时间线、核心架构、功能特性、官方快速上手引用、限制说明及与 Kubernetes、Nomad 的量化选型对比。
Apache Mesos 1.11.0 介绍与选型指南
一、信息基准
1.1 查询日期与版本依据
本文信息查询日期为 2026-10-18,全部信息取自 Apache 软件基金会 Attic 官方页面、Apache 官方归档发行目录与 GitHub 上的 apache/mesos 官方仓库,未进行本地安装与运行实测。需要首先声明的是:Apache Mesos 已于 2025 年 8 月经董事会决议退役,并于 2025 年 10 月完成向 Apache Attic 的迁移(Attic 编号 ATTIC-245),现属已停止维护的归档项目。其官网 mesos.apache.org 以只读归档形式保留,官方发行文件仅存于 archive.apache.org/dist/mesos/ 历史归档。
本项目最后一次正式版本为 1.11.0:GitHub 官方仓库中 1.11.0 标签由 committer 于 2020-11-24 打出("Tagging Mesos 1.11.0"),此后再无新版本发布。本文以 1.11.0 为介绍基准,并在选型对比章明确给出"不建议新项目采用"的结论。
1.2 版本与生命周期基准表
| 项目 | 内容 | 来源 |
|---|---|---|
| 最终版本 | 1.11.0(tag 时间 2020-11-24) | GitHub apache/mesos releases/tag/1.11.0 |
| 前一版本线 | 1.10.0(2020-10-20 官方发布公告) | mesos.apache.org/blog/mesos-1-10-0-released/(归档) |
| 成为 Apache 顶级项目 | 2013 年 6 月 | Attic 项目页(附董事会会议记录链接) |
| 退役决议 | 2025 年 8 月 20 日董事会会议 | Apache 董事会会议记录(Attic 页引用) |
| Attic 迁移完成 | 2025 年 10 月 | Attic 项目页 / ATTIC-245 |
| 发行物现状 | 仅存历史归档,标记为 UNSUPPORTED | archive.apache.org/dist/mesos/ |
| 社区延续 | Attic 页列有外部延续项目 Clusterd(github.com/m3scluster/clusterd) | Attic 项目页 |
1.3 官方来源清单
| 来源 | 地址 | 用途 |
|---|---|---|
| Apache Attic 项目页 | https://attic.apache.org/projects/mesos.html | 退役时间线与只读资源索引 |
| 官网(只读归档) | https://mesos.apache.org/ | 架构文档与历史公告 |
| 历史发行归档 | https://archive.apache.org/dist/mesos/ | 历史版本目录(0.12.1 至 1.11.0) |
| GitHub 官方仓库 | https://github.com/apache/mesos | 源码与最终标签 |
| JIRA 问题追踪(归档) | https://issues.apache.org/jira/browse/MESOS/ | 历史 issue 记录 |
| 邮件列表归档 | https://mail-archives.apache.org/mod_mbox/mesos-dev/ | 历史讨论记录 |
二、软件概述
本文介绍的是 Apache Mesos 的最终版本 1.11.0。Apache Mesos 是一个集群资源管理器,起源于 UC Berkeley 的研究项目(Nexus),2010 年进入 Apache 孵化器,2013 年 6 月成为顶级项目。其核心思想是把数据中心的 CPU、内存、磁盘、端口等资源从数百上千台机器上抽象为一个统一资源池,以"资源邀约(offer)"的二级调度机制分配给上层框架(Framework),使 Spark、Hadoop、Marathon、Kafka 等不同类型的工作负载可以共享同一物理集群。
Mesos 曾是大型互联网公司数据中心统一的资源调度底座(Twitter、Apple Siri 后端、Airbnb 等当年均为知名用户),但自 Kubernetes 生态成熟后,其社区活跃度持续下降,最终于 2025 年 8 月退役、10 月移入 Attic。GitHub 官方仓库 apache/mesos 的星标数据(shields.io 读取,2026-10-18)约为 5.4 千星。今天重新评估 Mesos 的价值主要在于:维护既有存量集群、理解二级调度与资源邀约模型的设计思想,以及从其兴衰中提炼基础设施软件的选型经验。本文结论先行:Mesos 已是归档项目,不建议任何新项目采用。
三、核心架构
3.1 Master / Agent 两级主从结构
Mesos 集群由 master 与 agent(旧称 slave)两类进程构成:master 负责收集各 agent 的可用资源、执行资源分配算法(默认为 DRF,主导资源公平性算法)并向框架发出资源邀约;agent 负责在本机执行框架提交的任务、上报资源状态并隔离执行环境。master 自身通过 ZooKeeper 实现 leader 选举与高可用,元数据与日志由 replication 层复制保存。
3.2 Framework、Scheduler 与 Executor
上层框架通过 Scheduler API 与 master 交互:调度器接收资源邀约,在邀约范围内决定启动哪些任务(Task),并把任务经 master 下发到对应 agent 上的执行器(Executor)运行。执行器分两类:框架自带的自定义执行器,与 Mesos 提供的通用命令执行器(command executor)。这种"框架接管调度语义、Mesos 只做资源仲裁"的二级调度模型,是 Mesos 与 Kubernetes 集中式控制器模型最本质的区别。
3.3 资源隔离与分配机制
agent 端通过操作系统级隔离原语(cgroups、POSIX 的磁盘与权限隔离等)为任务提供资源边界,支持 CPU、内存、磁盘、GPU 与网络端口等多种资源类型,并支持资源角色(role)、配额(quota)、保留(reservation)与权重(weight)等分配策略,实现多租户下的资源共享与优先级控制。
3.4 通信模型与 API
Mesos 提供两代 API:早期为基于 Protocol Buffers 的 HTTP 长轮询调用 API,1.x 时代演进为基于 HTTP 事件流的 v1 Scheduler/Operator API,并同步提供 C++/Java/Python 绑定。框架与 Mesos 的所有交互都围绕"邀约-接受-任务-状态回报"的事件模型展开,官方文档(现为 Attic 只读归档)对此有完整说明。
四、功能特性
4.1 多框架统一资源池
同一集群可同时运行 Spark 分析作业、Marathon 长服务、Chronos 定时任务、Kafka 流集群等异构负载,资源在框架间按 DRF 公平分配,显著提高整体利用率——这是 Mesos 设计的初衷与最大卖点。
4.2 精细的多租户资源治理
支持按角色划分资源、静态/动态保留、最低配额保障、框架权重,以及持久卷(persistent volume)与动态预留,可满足企业多团队共享集群时的隔离与优先级诉求。
4.3 高可用与运维接口
master 侧通过 ZooKeeper 完成自动 leader 选举;v1 Operator API 允许运维程序查询与操作 master/agent 状态;HTTP UI 提供集群总览。1.10.0 版本还引入了执行器域套接字与 v1 Operator API 性能优化等特性(官方发布公告)。
4.4 生态配套
围绕 Mesos 曾形成完整生态:DC/OS(基于 Mesos 的数据中心操作系统发行版)、Marathon(长服务编排)、Chronos(定时作业)、Elasticsearch/HDFS/Spark on Mesos 调度器等。随着项目退役,这些配套多数同步停更,生态已实质瓦解。
五、快速上手
以下最小示例引自官方文档站的 Getting Started 页面(https://mesos.apache.org/documentation/getting-started/ ,现随官网处于 Attic 只读归档状态;本文仅引用官方步骤,不进行本地实测)。
从源码构建(官方文档给出的 Linux/macOS 路径):
git clone https://github.com/apache/mesos.git
cd mesos && ./bootstrap
mkdir build && cd build
../configure
make -j
make check
构建完成后,按官方文档分别启动一个 master 与一个 agent:
./bin/mesos-master.sh --ip=127.0.0.1 --work_dir=/var/lib/mesos
./bin/mesos-agent.sh --master=127.0.0.1:5050 --work_dir=/var/lib/mesos
master 默认监听 5050 端口,浏览器访问该端口可查看 Web UI;官方文档随后演示了用 C++ 框架测试框架(test framework)向集群提交一个运行 shell 命令的任务:
./src/examples/java/test-framework 127.0.0.1:5050
需要强调:以上步骤仅作历史参考。由于项目已归档,官方归档目录(archive.apache.org/dist/mesos/)明确警示这些历史发行物"可能不受支持且不安全",生产环境不应部署。
六、适用场景与限制
6.1 适用场景
Mesos 现阶段仅存的合理使用场景有两类:其一,企业中仍然存活的存量 Mesos/DC/OS 集群的维护期运营,此时应以迁出为目标制定计划;其二,教学与研究场景,用于理解资源邀约式二级调度架构。若因特殊原因仍需延续 Mesos 体系,Attic 页面列出了社区维护的外部分支 Clusterd 供参考(其延续性与保障由分支维护方负责,非 Apache 官方项目)。
6.2 限制
其一,项目已退役:无安全补丁、无版本计划、官方支持渠道全部关闭,直接使用意味着承担全部安全与合规风险。其二,最后一次版本发布停留在 2020 年 11 月,其后五年的操作系统、内核与生态演进均无适配承诺。其三,社区与文档均冻结,新工程师的运维知识获取只能依赖归档资料。其四,原核心生态(DC/OS、Marathon 等)同步停更,无法支撑新的技术栈诉求。综上,新项目请直接考虑第七章对比中的现役方案。
七、同类选型对比
7.1 对比表
对比对象选取当前集群资源调度领域两个主流现役方案:Kubernetes 与 HashiCorp Nomad。版本数据于 2026-10-18 联网实查:Kubernetes 最新稳定补丁为 v1.37.1(GitHub apache 不适用;取自 kubernetes/kubernetes 官方 releases 列表,1.38 尚处 alpha 预发布);Nomad 最新版 v2.0.7(GitHub hashicorp/nomad releases,2026-09-17)。星标数据:Nomad 为 shields.io 读取(2026-10-18,约 17k);Kubernetes 仓库 shields 读取异常,采用第三方统计 stackindex.dev 的 128,318 星(其数据更新于 2026-10-17),标注为第三方统计值。许可信息取自各项目官方仓库声明。
| 维度 | Apache Mesos 1.11.0(已退役) | Kubernetes v1.37.1 | Nomad v2.0.7 |
|---|---|---|---|
| 开源许可 | Apache-2.0 | Apache-2.0 | BUSL-1.1(HashiCorp 商业源码许可,源码可见) |
| GitHub 星标 + 最近发版 | 约 5.4k;1.11.0(2020-11,此后无版本) | 约 12.8 万(第三方统计);v1.37.1 稳定线在维护(1.38 于 2026-09 进入 alpha) | 约 17k;v2.0.7(2026-09-17) |
| 版本节奏 | 2020 年后停更;2025-08 退役、2025-10 入 Attic | 每年约 3 个 minor 版本,每版约 12 个月补丁支持,月度补丁 | 大版本演进(1.x→2.x),补丁月度级 |
| 兼容矩阵 | 基于 C++ 构建系统,适配 2020 年前的 Linux/内核环境(官方归档文档) | Linux/macOS/Windows 客户端;声明式 API 面向各类工作负载(官方文档) | 单二进制分发,支持 Linux/macOS/Windows 客户端(官方文档) |
7.2 选型建议
Mesos 已进入 Apache Attic、自 2020 年起无任何新版本,不建议任何新项目采用:新建共享集群资源底座应首选 Kubernetes(生态与社区规模最大、事实标准),追求轻量单二进制、简洁运维与异构负载混调的团队可将 Nomad 作为备选,而存量 Mesos 集群应尽快制定向上述两者迁移的退出计划。
八、参考链接
| 名称 | 地址 |
|---|---|
| Apache Attic 项目页(退役时间线) | https://attic.apache.org/projects/mesos.html |
| 官网(只读归档) | https://mesos.apache.org/ |
| 官方 Getting Started(归档) | https://mesos.apache.org/documentation/getting-started/ |
| 历史发行归档目录 | https://archive.apache.org/dist/mesos/ |
| GitHub 官方仓库 | https://github.com/apache/mesos |
| 1.11.0 标签 | https://github.com/apache/mesos/releases/tag/1.11.0 |
| 1.10.0 发布公告(归档) | https://mesos.apache.org/blog/mesos-1-10-0-released/ |
| JIRA 归档 | https://issues.apache.org/jira/browse/MESOS/ |
| Kubernetes 官方仓库 | https://github.com/kubernetes/kubernetes |
| Nomad 官方仓库 | https://github.com/hashicorp/nomad |
| Clusterd 延续项目(社区分支) | https://github.com/m3scluster/clusterd |