架构师进阶之三Zookeeper,Mesos以及Marathon
发布日期:2021-06-30 16:21:40 浏览次数:2 分类:技术文章

本文共 1443 字,大约阅读时间需要 4 分钟。

1.Mesos

Apache Mesos是一个集群管理器,可跨分布式应用程序或框架提供有效的资源隔离和共享。它位于应用程序层和操作系统之间,可以更加轻松地在大规模集群环境中更有效地部署和管理应用程序。它可以在动态共享节点池上运行许多应用程序

Apache Mesos将CPU,内存,存储和其他计算资源从机器(物理或虚拟)中抽象出来,使容错和弹性分布式系统能够轻松构建并有效运行。

ZookerKeeper:单独部署,集群模式,主要负责leader选举,在master down掉的时候选举新的master

 

配置举例如下:

master1 172.16.10.28
master2 172.16.10.44 jdk-8u144、mesos-1.6.1、zookeeper-3.4.12
master3 172.16.10.45 jdk-8u144、mesos-1.6.1、zookeeper-3.4.12
slave1 172.16.10.46 jdk-8u144、mesos-1.6.1、docker
slave1 172.16.10.47 jdk-8u144、mesos-1.6.1、docker

2 Marathon

Marathon是一个mesos框架,能够支持运行长服务,使用marathon向mesos发送任务(编写REST api部署新的任务)。

默认情况下,mesos marathon会把app发布到随机节点的随机端口上,当mesos slaves和app越来越多的时候,想查找某组app就变得困难

Marathon特性:

  • 高可用性。Marathon作为主动/被动群集运行,领导者选举可以实现100%的正常运行时间。
  • 多个容器运行时。Marathon拥有对Mesos容器(使用cgroups)和Docker的一流支持。
  • 有状态的应用。Marathon可以将持久存储卷绑定到您的应用程序。您可以运行MySQL和Postgres等数据库,并由Mesos占用存储空间。
  • 美丽而强大的UI。
  • 制约因素。这些允许例如每个机架,节点等仅放置应用程序的一个实例。
  • 服务发现和负载平衡。几种方法可用。
  • 健康检查。使用HTTP或TCP检查评估应用程序的运行状况。
  • 活动订阅。提供HTTP端点以接收通知 - 例如,与外部负载均衡器集成。
  • 指标。以JSON格式在/ metrics查询它们或将它们推送到诸如graphite,statsd和Datadog之类的系统。
  • 完整的REST API,易于集成和编写脚本

3 Marathon-lb

为了解决Marathon部署任务的时候,随机节点,随机端口的问题,官方建议使用两个工具:mesos-dns和marathon-lb。mesos-dns是一个服务发现工具,marathon-lb不仅是服务发现工具,还是负载均衡工具。

Marathon-lb既是一个服务发现工具,也是负载均衡工具,它集成了haproxy,自动获取各个app的信息,为每一组app生成haproxy配置,通过servicePort或者web虚拟主机提供服务。

要使用marathonn-lb,每组app必须设置HAPROXY_GROUP标签。

Marathon-lb运行时绑定在各组app定义的服务端口(servicePort,如果app不定义servicePort,marathon会随机分配端口号)上,可以通过marathon-lb所在节点的相关服务端口访问各组app。

转载地址:https://kerry.blog.csdn.net/article/details/87810992 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:软连接和硬链接
下一篇:架构师进阶之二函数式编程和面向对象编程

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月20日 07时10分00秒