Mesos 是一个分布式集群管理器,旨在通过在多个任务之间动态共享资源来改善资源使用。Mesos 提供了所有集群节点上的资源的统一视图,支持无缝地访问这些资源,访问方式与操作系统内核访问单个计算机的资源的方式类似。因此,Mesos 也被称为数据中心的内核。通过使用 Mesos,您可以掌握构建数据中心应用程序的核心要点,Mesos 的主要组件是一个可扩展的 2 阶段调度程序。
以下是 Mesos 集群管理器的关键组件:
主节点:协调所有集群操作的集群管理器。可以提供多个主节点来实现高可用性。
从属节点(或节点):运行任务的集群成员。
框架:在集群中运行的实际任务。许多现有的框架允许将各种各样的应用程序和服务部署在 Mesos 集群管理器上。
请参阅 Mesos 架构 了解更多信息。
下一节将介绍如何使用 Marathon 框架将应用程序和服务部署在 Mesos 上。
可用性下表列出了针对 IBM PowerPC® Little Endian (ppc64le) 平台的相关包的位置:
Linux 发行版包位置
Red Hat Enterprise Linux (RHEL) 7.X
Unicamp
备注:对于 IBM Power® 上的其他发行版,您必须用源代码来构建包。
MarathonMarathon 是一个用于在 Mesos 上运行长应用或长服务的框架。这些应用程序具有高可用性需求,这意味着 Marathon 可以监视故障并在发生故障时自动重新启动应用程序实例,还能够灵活地扩展应用程序。Marathon 可运行其他框架(比如 Hadoop)和它自己的框架。典型的 Marathon 使用工作流是在集群内的某个地方运行一个应用程序的 N 个实例,每个应用程序实例需要一个处理器和 1 GB 内存。您可以向 Marathon 提交此请求来创建 N 个要在从属节点上运行的 Mesos 任务。
Marathon 提供了一个具象状态传输 (REST) API 来启动、停止和扩展服务。有一个基于浏览器的 GUI,也有一个命令行客户端。它可以通过运行多个 Marathon 实例在一种高度可用的模式下运行。
在本文中,您将看到如何通过 Marathon 部署服务,并在示例应用程序中使用该服务。这里提及的操作说明也适用于基于 Intel® 和 IBM Power 架构 (OpenPOWER) 的服务器。该服务是一个 MySQL 数据库服务。
下图大体演示了一个 Mesos/Marathon 集群:
图 1. Mesos/Marathon 集群服务介绍
服务是一个自成一体的、独立部署和管理的功能单元。面向服务的架构 (SOA) 和最近的微服务架构鼓励应用程序包含松散耦合的服务。更加现代的应用程序包含多个微服务,因为它们提供了一些优势,比如代码重用、31000 到 32000 的容易扩展的默认端口范围、容易理解、独立的故障、支持多个平台、部署灵活性和更高的敏捷性。
Mesos 处理批处理、实时和其他处理框架,通常需要更少的时间即可完成操作。企业基础架构运行大量应用程序和服务,它们需要更长时间才能处理完成,而且具有与数据处理框架不同的需求。这些长期运行的服务对业务至关重要,也会使用很大一部分基础架构资源。因此,在 Mesos 上运行服务的能力很重要。
要大规模运行服务,基础架构需要能够支持以下需求:
如果一个服务依赖于其他服务,而且对服务可部署到的地方存在限制,那么部署该服务可能很复杂。
配置管理和打包是为了确保服务的所有依赖关系都得到满足,而且在服务启动前已为服务正确配置了环境。
在运行着一个服务的多个实例时,服务发现和负载平衡会变得很重要。服务发现可以回答特定服务的实例在何处运行的问题,负载平衡旨在决定特定请求应发送到哪个实例。
部署服务后,对服务执行健康监视很重要。可利用健康监视信息采取进一步措施,比如扩展或精减服务,或者在发生故障时重新启动服务。
可用性需求要求在具有高负载和发生故障时,服务需要处于可用状态。
在运行 RHEL 的 OpenPOWER 服务器上设置 Mesos 和 Marathon 集群以下说明介绍了如何在 OpenPOWER 系统(比如运行 RHEL little endian (LE) 的 Tyan)上设置 Mesos/Marathon 集群。
安装和设置 Mesos 主节点和 Marathon执行以下步骤来安装和设置 Mesos 主节点和 Marathon。
添加 Unicamp 包存储库。确保以下存储库已添加到所有将包含在 Mesos 集群中的系统上(mesos-master 和 mesos-slaves):
1 2 3 4 5 6 7
# cat > /etc/yum.repos.d/unicamp-misc.repo <<EOF [unicamp-misc] name=Unicamp Repo for Misc Packages baseurl=http://ftp.unicamp.br/pub/ppc64el/rhel/7_1/misc_ppc64el/ enabled=1 gpgcheck=0 EOF
运行以下命令来安装所需的包:
1