《Mesos实战》为读者介绍 Apache Mesos集群管理器及以应用程序为中心的基础架构概念。《Mesos 实战》充满了有用的数据图表及实践指导,它将指引你迈出创建一个高可用的 Mesos集群的第一步,接着在生产环境中部署应用程序,最后编写适合自己数据中心的“本地” Mesos framework(计算框架)。你将学习到如何对数千个节点进行弹性伸缩,同时通过 Linux和 Docker容器保证不同的进程间能实现资源隔离。你也将学习到如何使用热门主流的 framework来部署应用程序的实践技术。
《Mesos 实战》包含的主要内容有:搭建启动你的第一个 Mesos集群; Mesos的调度、资源管理及日志记录;使用 Marathon、Chronos和 Aurora部署容器化的应用程序;使用 Python编写 Mesos framework。阅读《Mesos 实战》的读者需要熟悉数据中心管理的核心理念,也需要了解 Python或者类似编程语言的基础知识。
目录
- 第 1部分 你好,Mesos 1
- 1 初识 Mesos3
- 1.1 遇见 Mesos 4
- 1.1.1 理解它如何工作 5
- 1.1.2 虚拟机和容器的比较 7
- 1.1.3 知道何时及为何使用 Mesos 9
- 1.2 为什么我们要重新思考数据中心 10
- 1.2.1 资源划分 11
- 1.2.2 应用部署 12
- 1.3 Mesos分布式架构. 13
- 1.3.1 masters 13
- 1.3.2 slaves 14
- 1.3.3 frameworks 15
- 1.4 小结 15
- 2 使用 Mesos管理数据中心资源17
- 2.1 Spark简要介绍 18
- 2.1.1 独立集群上的 Spark 18
- 2.1.2 Mesos上的 Spark 19
- 2.2 在 Mesos上运行 Spark job 21
- 2.2.1 在集合中寻找素数 22
- 2.2.2 获取与打包代码 23
- 2.2.3 提交作业 24
- 2.2.4 观察输出 24
- 2.3 进一步探索 26
- 2.3.1 Mesos UI 26
- 2.3.2 Spark UI 26
- 2.4 小结 28
- 第 2部分 Mesos核心. 31
- 3 安装 Mesos.33
- 3.1 部署 Mesos 34
- 3.1.1 Mesos集群组件 34
- 3.1.2 开发环境的注意事项 35
- 3.1.3 生产环境的注意事项 36
- 3.2 安装 Mesos和 ZooKeeper 38
- 3.2.1 使用安装包部署 38
- 3.2.2 从源文件编译并安装 40
- 3.3 配置 Mesos和 ZooKeeper 43
- 3.3.1 ZooKeeper配置 43
- 3.3.2 Mesos配置. 45
- 3.4 安装并配置 Docker 50
- 3.4.1 安装 Docker 51
- 3.4.2 配置 Docker 53
- 3.4.3 配置 Docker专用的 Mesos slaves 54
- 3.5 升级 Mesos 54
- 3.5.1 升级 Mesos masters 55
- 3.5.2 升级 Mesos slaves 55
- 3.6 小结 56
- 4 Mesos原理.57
- 4.1 调度和分配数据中心资源 57
- 4.1.1 理解资源调度 58
- 4.1.2 理解资源分配 59
- 4.1.3 定制 Mesos slave资源和属性 61
- 4.2 使用容器隔离资源 62
- 4.2.1 隔离并监控 CPU、内存和磁盘 63
- 4.2.2 网络监控和限速 65
- 4.3 了解容错和高可用 68
- 4.3.1 容错 70
- 4.3.2 高可用 70
- 4.3.3 处理出错和升级 70
- 4.4 小结 76
- 5 日志记录和调试 77
- 5.1 理解和配置 Mesos日志记录 78
- 5.1.1 日志文件的路径和解释 78
- 5.1.2 配置日志记录 80
- 5.2 调试 Mesos集群及其任务 81
- 5.2.1 使用 Mesos Web接口 82
- 5.2.2 使用内置命令行工具 89
- 5.2.3 使用 Mesosphere的 mesos-cli工具 90
- 5.3 小结 92
- 6 生产环境中的 Mesos 93
- 6.1 监控 Mesos和 Zookeeper集群 94
- 6.1.1 监控 Mesos master 94
- 6.1.2 监控 Mesos slave 96
- 6.1.3 监控 ZooKeeper 97
- 6.2 修改 Mesos master的法定数目 99
- 6.2.1 添加 master节点 100
- 6.2.2 移除 master节点 100
- 6.2.3 替换 master节点 101
- 6.3 安全和权限控制的实施 101
- 6.3.1 Slave 和 framework的身份认证 102
- 6.3.2 用户授权和访问控制列表 104
- 6.3.3 framework速率限制 107
- 6.4 小结 110
- 第 3部分 运行 Mesos113
- 7 使用 Marathon部署应用 115
- 7.1 了解 Marathon 115
- 7.1.1 探索 Marathon的 Web接口和 API 117
- 7.1.2 服务发现和路由 118
- 7.2 部署 Marathon和 HAProxy 121
- 7.2.1 安装并配置 Marathon 121
- 7.2.2 安装并配置 HAProxy 124
- 7.3 创建并伸缩应用 127
- 7.3.1 部署简单的应用 127
- 7.3.2 部署 Docker容器 130
- 7.3.3 执行健康检查和滚动应用更新 131
- 7.4 创建应用组 134
- 7.4.1 理解应用组的构成 134
- 7.4.2 部署应用组 135
- 7.5 日志和调试 137
- 7.5.1 配置 Marathon日志 137
- 7.5.2 调试 Marathon应用和任务 138
- 7.6 小结 140
- 8 使用 Chronos管理计划任务 143
- 8.1 了解 Chronos 144
- 8.1.1 探索 Chronos的 Web接口和 API. 145
- 8.2 安装并配置 Chronos 147
- 8.2.1 先决条件的检验 147
- 8.2.2 安装 Chronos 148
- 8.2.3 配置 Chronos 149
- 8.3 使用简单的作业来工作 150
- 8.3.1 创建基于计划的作业 150
- 8.3.2 使用 Docker创建基于计划的作业 153
- 8.4 使用复杂的作业来工作 155
- 8.4.1 组合基于计划和基于依赖的作业 155
- 8.4.2 形象化作业的依赖关系 158
- 8.5 监控 Chronos作业的输出和状态 159
- 8.5.1 作业失败事件的通知和监控 159
- 8.5.2 通过 Mesos观察作业的标准输出和标准错误 161
- 8.6 小结 162
- 9 使用 Aurora部署应用和管理计划任务 165
- 9.1 Aurora简介 166
- 9.1.1 Aurora调度器 167
- 9.1.2 Thermos执行器和观察者 167
- 9.1.3 Aurora的用户和管理员客户端 168
- 9.1.4 Aurora DSL(Domain-Specifi Language,特定领域语言) 169
- 9.2 部署 Aurora 169
- 9.2.1 在开发环境尝试 Aurora 170
- 9.2.2 构建和安装 Aurora 171
- 9.2.3 配置 Aurora 174
- 9.3 部署应用 178
- 9.3.1 部署一个简单的应用 179
- 9.3.2 部署基于 Docker的应用 182
- 9.4 管理计划任务 184
- 9.4.1 创建 Cron作业 184
- 9.4.2 创建基于 Docker的 Cron作业 185
- 9.5 管理 Aurora 187
- 9.5.1 管理用户和配额 187
- 9.5.2 执行维护 189
- 9.6 小结 190
- 10 framework开发.191
- 10.1 framework基础 192
- 10.1.1 编写 framework的时机和缘由. 194
- 10.1.2 调度器的实现 194
- 10.1.3 执行器的实现 197
- 10.2 调度器开发 201
- 10.2.1 使用调度器 API 202
- 10.2.2 使用 SchedulerDriver 204
- 10.3 执行器开发 205
- 10.3.1 使用执行器 API. 205
- 10.3.2 使用执行器驱动程序 207
- 10.4 运行 framework 208
- 10.4.1 在开发环境中部署 208
- 10.4.2 生产环境部署的注意事项 210
- 10.5 小结 211
- 附录 A 案例研究:Mesosphere DCOS,企业版 Mesos分布式集群 213
- 附录 B Mesos框架与工具的列表.225