首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

在 RHEL 7.1 little endian 上设置 Mesos/Marathon 集群-1

在 RHEL 7.1 little endian 上设置 Mesos/Marathon 集群-1

Mesos 和 MarathonMesos 是一个分布式集群管理器,旨在通过在多个任务之间动态共享资源来改善资源使用。Mesos 提供了所有集群节点上的资源的统一视图,支持无缝地访问这些资源,访问方式与操作系统内核访问单个计算机的资源的方式类似。因此,Mesos 也被称为数据中心的内核。通过使用 Mesos,您可以掌握构建数据中心应用程序的核心要点,Mesos 的主要组件是一个可扩展的 2 阶段调度程序。
以下是 Mesos 集群管理器的关键组件:
  • 主节点:协调所有集群操作的集群管理器。可以提供多个主节点来实现高可用性。
  • 从属节点(或节点):运行任务的集群成员。
  • 框架:在集群中运行的实际任务。许多现有的框架允许将各种各样的应用程序和服务部署在 Mesos 集群管理器上。
请参阅  了解更多信息。
下一节将介绍如何使用 Marathon 框架将应用程序和服务部署在 Mesos 上。
可用性下表列出了针对 IBM PowerPC® Little Endian (ppc64le) 平台的相关包的位置:
Linux 发行版包位置Red Hat Enterprise Linux (RHEL) 7.XUnicamp
请参阅 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
    # yum install mesos python-mesos zookeeper marathon




  • 配置 Mesos 主节点。编辑 /etc/sysconfig/mesos-master 文件并添加以下信息:
    1
    2
    3
    MESOS_ip=MESOS_MASTER_IP
    MESOS_ZK=zk://localhost:2181/mesos
    MESOS_QUORUM=1




    如果 mesos-master 的 IP 地址为 192.168.122.31,完整的配置文件如以下代码所示:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    # This file contains environment variables that are passed to mesos-master.
    # To get a description of all options run mesos-master --help; any option
    # supported as a command-line option is also supported as an environment
    # variable.
    # Some options you're likely to want to set:
    MESOS_log_dir=/var/log/mesos
    MESOS_work_dir=/var/run/mesos
    MESOS_port=5050

    # For isolated sandbox testing
    #MESOS_ip=127.0.0.1
    MESOS_ip=192.168.122.31
    MESOS_ZK=zk://localhost:2181/mesos
    MESOS_QUORUM=1




  • 运行以下命令来重新启动 ZooKeeper 和 mesos-master 服务:
    1
    2
    # service zookeeper start
    # service mesos-master start




  • 打开网络端口。默认情况下,mesos-master 在端口 5050 上通信。在下一节中,将了解如何部署才能不被本地防火墙拦截。如果使用了防火墙,可以运行以下命令来打开一个针对公共区域的 TCP 端口:
    1
    2
    # firewall-cmd --zone=public --add-port=5050/tcp --permanent
    # firewall-cmd –reload




  • 在系统上运行 Mesos 集群来配置 Marathon。
    1
    2
    3
    4
    5
    6
    7
    # cat >/etc/sysconfig/marathon<<EOF
    MARATHON_MASTER=zk://localhost:2181/mesos
    MARATHON_ZK=zk://localhost:2181/marathon
    MARATHON_TASK_LAUNCH_TIMEOUT=600000
    MESOS_NATIVE_JAVA_LIBRARY=/usr/lib64/libmesos.so.22
    MESOS_NATIVE_LIBRARY=/usr/lib64/libmesos.so.22
    EOF




  • 运行以下命令来启动 marathon 服务:
    1
    # service marathon start




返回列表