中间层简介

什么是中间层

中间层是一个软件解决方案,它通过附加组件扩展了ApacheMesos的集群管理功能,以提供一种新的、新颖的方式来管理服务器基础设施。通过将几个组件与Mesos(如Marathon和Chronos)组合在一起,通过抽象许多与伸缩相关的挑战,从而实现了轻松伸缩应用程序的方法。

中间层提供应用调度、伸缩、容错、自愈等功能。它还提供应用服务发现、端口统一和终端灵活性。

为了更好地了解中间层如何提供上述功能,我们将从ApacheMesos开始,简要解释中间层的每个关键组件的作用,并展示如何在中间层的上下文中使用每个组件。

ApacheMesos基本概述

ApacheMesos是一个开源集群管理器,它简化了在可伸缩的服务器集群上运行应用程序,是中间层系统的核心。

Mesos提供了许多您期望从集群管理器获得的特性,例如:

  • 可扩展到超过10,000个节点
  • 通过Linux容器实现任务的资源隔离
  • 高效的CPU和内存感知资源调度
  • 通过Apache ZooKeeper提供高可用的master
  • 用于监视群集状态的Web UI

Mesos架构

Mesos的体系结构由主守护进程和从守护进程以及框架组成。以下是这些组件和一些相关术语的快速细分:

*Master daemon :运行在主节点上,管理从进程 *Slave daemon :运行在主节点上,运行属于框架的任务 *框架 :也称为Mesos应用程序,由一个_scheduler_和一个或多个_executors_组成,_scheduler_向主程序注册以接收resource offersexecutors_在从程序上启动_tasks。Mesos框架的例子包括Marathon、Chronos和Hadoop *Offer :从节点可用CPU和内存资源列表。所有从节点向主节点发送offer,主节点向注册的框架提供offer *任务 :框架调度的工作单元,在从节点上执行。任务可以是任何东西,从bash命令或脚本到SQL查询,再到Hadoop作业 *Apache ZooKeeper :用于协调主节点的软件

MESOS Architecture

注: ZK在图中表示动物园管理员。

这种体系结构允许MESOS在应用程序之间以高级别的粒度共享集群资源。提供给特定框架的资源量基于在主框架上设置的策略,框架调度器决定使用哪个提供。一旦框架调度器决定要使用哪个提供,它就会告诉Mesos应该执行哪些任务,然后Mesos在适当的从服务器上启动这些任务。在任务完成并释放所消耗的资源之后,资源提供周期重复,以便可以调度更多任务。

高可用

集群中的Mesos主服务器的高可用性是通过使用ApacheZooKeeper复制主服务器以形成a_quorum_来实现的。ZooKeeper还协调主领导者选举,并在包括从属和框架在内的Mesos组件中处理领导者检测。

高可用性配置至少需要三个主节点--三个主节点的设置允许在单个主节点出现故障的情况下维护仲裁--但对于弹性生产环境,建议使用五个主节点,允许在两个主节点离线的情况下维护仲裁。

有关阿帕奇·梅索斯的更多信息,请访问其官方文档page.

马拉松基本概况

Marathon是Mesos的一个框架,旨在启动长时间运行的应用程序,在Mesosphere中,它可以替代传统的init系统。它具有许多简化在集群环境中运行应用程序的功能,例如高可用性、节点约束、应用程序运行状况检查、用于脚本编写和服务发现的API以及易于使用的Web用户界面。它将其缩放和自我修复功能添加到Mesosphere功能集。

Marathon可以用来启动其他Mesos框架,它还可以启动任何可以在常规外壳中启动的进程。由于它是为长时间运行的应用程序设计的,它将确保它启动的应用程序继续运行,即使它们运行的从节点(S)出现故障。

有关Marathon的更多信息,请访问其GitHub页面

Chronos基本概述

Chronos是一个针对Mesos的框架,最初由Airbnb开发,作为cron的替代。因此,它是一个全功能、分布式和容错的Mesos调度器,可以简化作业的编排,作业是任务的集合。它包括一个允许编写调度作业脚本的API,以及一个易于使用的Web用户界面。

在中间层,Chronos称赞了Marathon,因为它提供了另一种运行应用程序的方式,可以根据时间表或其他条件,比如完成另一个作业。它还能够在多个Mesos从节点上调度作业,并提供作业失败和成功的统计数据。

有关Chronos的更多信息,请访问其GitHub页面.

HAProxy基本概述

HAProxy是一个流行的开源负载均衡器和反向代理解决方案。它可以在中间层中用于将网络流量从已知主机(通常是Mesos主机)路由到在Mesos从节点上运行的实际服务。可以使用Mesos的服务发现功能来动态配置HAProxy,以便将传入流量路由到适当的后端从节点。

有关HAProxy](https://andsky.com/tech/tutorials/an-introduction-to-haproxy-and-load-balancing-concepts).常规功能的更多信息,请查看我们的[HAProxy简介

结论

中间层采用了可能看起来不太熟悉的服务器基础架构范例,因为它的设计重点是集群和可伸缩性,但希望您现在已经很好地理解了它的工作原理。它所基于的每个组件都为处理集群和扩展服务器基础设施时常见的问题提供了解决方案,而Mesball的目标是为这些需求提供一个完整的解决方案。

现在您已经了解了中间层的基础知识,请查看本系列的下一个教程。它将教你如何在Ubuntu 14.04!上设置可投入生产的中间层集群

Published At
Categories with 技术
comments powered by Disqus