用DCOS和marathon-lb实现服务发现和负载均衡:第一部分

【项目实战】Marathon-LB的入门介绍 Marathon-LB,英文Load Balancer for Marathon。Marathon-LB,基于HAProxy构建。Marathon-LB,是一个基于HAProxy的代理服务器和负载均衡器。Marathon-LB,支持TCP、HTTP、HTTPS请求。Marathon-LB,官方地址:https://github.com/mesosphere/marathon-lbMarathon-LB,是一个为Apache Mesos和Marathon设计的负载均衡解决方案。 阅读详情

最近在研究使用Mesos,对marathon-lb和mesos-dns等诸多工具,只是停留在知道和会用的阶段,特别是对于基于marathon-lb的HAProxy的应用分组和使用更是一头雾水。现在资料也少,看了官网上的这篇文章觉得讲得还算是全面。兄弟英文水平差,先用Google翻译了一下,然后再梳理整理,同时,加上了一些自己的理解的说明。因为每个人的经历和经验都不同,以下这些东西对于有些人可能很难对于有些人可能很简单,所以不当之处还请大家多多见谅。欢迎讨论和拍砖。


这是服务发现和负载均衡系列的第一部分,共两部分。

Mesosphere Datacenter Operating System (DCOS) 为服务发现和负载均衡提供了有用的工具。其中一个主要的工具就是marathon-lb,这将是本文的重点。

在启动了DCOS集群以后,通过使用Mesos-DNS可以发现所有的task。发现是通过DNS实现的,但是有一些限制,其中包括:
- DNS无法识别服务端口,除非使用SRV查询(SRV记录它是DNS服务器的数据库中支持的一种资源记录的类型,它记录了哪台计算机提供了哪个服务这么一个简单的信息);大多数应用程序都无法使用SRV记录“开箱即用”。
- DNS不具有快速故障转移能力。
- DNS记录有一个TTL(生存时间:time to live),同时Mesos-DNS使用轮询来创建DNS记录; 这可能会导致过时的记录。
- DNS记录不提供任何服务的健康数据。
- 一些应用程序和库不正确地处理多个A记录(handle multiple A records);在某些情况下,查询可能被缓存,并根据需要不正确地重新加载。

注:A记录也称为主机记录,是使用最广泛的DNS记录,A记录的基本作用就是说明一个域名对应的IP是多少,它是域名和IP地址的对应关系,表现形式为:www.xxx.com 192.168.1.1这就是一个A记录!A记录除了进行域名IP对应以外,还有一个高级用法,可以作为低成本的负载均衡的解决方案,比如说:www.xxx.com 可以创建多个A记录,对应多台物理服务器的IP地址,可以实现基本的流量均衡!

为了解决这个问题,我们为Marahon提供一个叫做Marathon Load Balancer的工具,简称marathon-lb.

注:这句话是否意味着:使用Mesos-DNS是有局限,而marathon-lb是可以起到与Mesos-DNS同样作用的,这样的话就不需要使用Mesos-DNS?

marathon-lb是基于HAProxy(一个快速的代理服务器和负载均衡器)的。HAProxy可以为基于TCP和HTTP协议的应用提供代理和负载均衡。支持如SSL,HTTP压缩,健康检查,Lua脚本等功能。marathon-lb会将事件提交至marathon事件总线,同时实时的对HAProxy的配置进行更新和修改。

你可以可以用多种拓扑结构配置marathon-lb。以下是如何使用的marathon-lb的一些例子:

  • 使用marathon-lb做为的边缘负载均衡器(edge load balancer
    LB)和服务发现机制。你可以运行在面向公众的节点marathon-lb路由入口流量。你可以使用的A记录面向公众的节点的IP地址,以供内部或外部DNS记录(根据您的使用情况)。

注:”edge load balancer”,我理解应该是顶级或者入口级的负载均

  • 使用marathon-lb作为内部(internal)LB和服务发现机制,有一个单独的HA负载均衡器作为公共的路由处理。例如,你可以使用预置的外部F5负载均衡器,或者在Amazon
    Web Services的弹性负载均衡。
  • 将marathon-lb严格的作为内部(internal)LB和服务发现机制。
  • 可能还需要使用内(internal)部和外部(external )的LB的组合,为不同的服务提供不同的负载均衡。

在本文中,我们将讨论上述第四个选项,以突出说明marathon-lb的特点。

这里写图片描述

为了演示marathon-lb,我们将启动一个部署在AWS上的DCOS集群,并运行一个内部和外部负载均衡器。外部负载均衡将用于分发由外部HTTP请求到集群,并且内部的LB将用于内部服务发现和负载平衡。由于我们是在AWS上实现,对外通讯将先做一个ELB配置用来对外暴露“public”代理节点。

如果想跟着一起操作,你可以在AWS上创建自己的集群。合在AWS上使用DCOS社区版Mesosphere不会收取任何费用,但你仍然必须支付的基本情况和相关的AWS费用。

marathon-lb提供可直接安装的包。要安装marathon-lb:

$ dcos package install marathon-lb

注:我是使用mesosphere提供的安装包,在centos7上搭建的mesos环境,然后使用marathon-lb的docker镜像。我觉得阅读本文主要是要了解marathon-lb的使用以及如何规划负载均衡,dcos的安装模式可以忽略。

要验证marathon-lb是否正常工作,根据你搭建的Mesos环境,用Mesos-slave主机的IP,访问http://:9090/haproxy?stats。你会看到这样的统计报表页面:

这里写图片描述

接下来,我们将建立我们的内部LB。要做到这一点,我们必须先指定marathon-lb中的一些配置选项。创建一个名为options.json包含以下内容:

{
  "marathon-lb":{
    "name":"marathon-lb-internal",
    "haproxy-group":"internal",
    "bind-http-https":false,
    "role":""
  }
}

在这个选项文件,我们需要修改 a)的应用实例的名称,b)HAProxy的组名,同时,我们停用HAProxy端口80和443的HTTP和HTTPS转发(因为它不需要)。

接下来,运行与我们的新选项安装命令:

$ dcos package install --options=options.json marathon-lb

注:在Mesos环境中,可以直接用命令执行,例如:curl -X POST http://mesos-master:8080/v2/apps -d @options.json -H “Content-type: application/json”

现在,我们将有2个负载均衡:一个外部LB和一个内部LB.让我们运行一个示例应用程序来演示功能。下面是我们的nginx的外部实例:

注:
1)以上内容中共安装了两个marathon-lb。第一个是上文中最早安装的,默认安装的marathon-lb,HAPROXY_GROUP值是external的,默认是绑定了80和443端口的。用上面的带options.json参数的命令,又安装了一个marathon-lb,这里面指定HAPROXY_GROUP为internal,同时取消对80和443的绑定。
2)这里的Nginx不是用于负载均衡,这里把Nginx当作一个服务或者一个微服务就行。可能是考虑nginx相对比较小,好配置,所以很多mesos的文章中都是用nginx做示例。

{
  "id": "nginx-external",
  "container": {
    "type": "DOCKER",
    "docker": {
      "image": "nginx:1.7.7",
      "network": "BRIDGE",
      "portMappings": [
        { "hostPort": 0, "containerPort": 80, "servicePort": 10000 }
      ],
      "forcePullImage":true
    }
  },
  "instances": 1,
  "cpus": 0.1,
  "mem": 65,
  "healthChecks": [{
      "protocol": "HTTP",
      "path": "/",
      "portIndex": 0,
      "timeoutSeconds": 10,
      "gracePeriodSeconds": 10,
      "intervalSeconds": 2,
      "maxConsecutiveFailures": 10
  }],
  "labels":{
    "HAPROXY_GROUP":"external"
  }
}

您可以通过粘贴上面的JSON到一个文件中(称为发动DCOS这个程序nginx-external.json),并运行:

$ dcos marathon app add nginx-external.json

注:与第一个json说明的运行方式相同,直接用curl来执行。

Application(执行json就会在marathon创建一个application)的定义中,包含了用HAPROXY_GROUP作为Key的特殊标签。这个标签告诉marathon-lb是否对外暴露该应用程序。外部marathon-lb运行时设置–group参数的值为external,这是默认值。你可以在这里检查代码,如果你愿意的话。

下面是我们的内部nginx的:

{
  "id": "nginx-internal",
  "container": {
    "type": "DOCKER",
    "docker": {
      "image": "nginx:1.7.7",
      "network": "BRIDGE",
      "portMappings": [
        { "hostPort": 0, "containerPort": 80, "servicePort": 10001 }
      ],
      "forcePullImage":true
    }
  },
  "instances": 1,
  "cpus": 0.1,
  "mem": 65,
  "healthChecks": [{
      "protocol": "HTTP",
      "path": "/",
      "portIndex": 0,
      "timeoutSeconds": 10,
      "gracePeriodSeconds": 10,
      "intervalSeconds": 2,
      "maxConsecutiveFailures": 10
  }],
  "labels":{
    "HAPROXY_GROUP":"internal"
  }
}

请注意,我们指定一个servicePort参数。servicePort端口是该服务(本例中的Ninx)在marathon-lb中的端口。默认情况下,marathon-lb保留从10000至10100的端口,用于对外的服务使用,所以你应该从10000开始使用(如果你数一下,共计101服务端口可以使用)。您可能需要使用电子表格,来跟踪记录这些端口在marathon-lb中的分配和使用情况,以及每个端口是与哪组LB的服务对应。

让我们再添加一个Nginx实例:

{
  "id": "nginx-everywhere",
  "container": {
    "type": "DOCKER",
    "docker": {
      "image": "nginx:1.7.7",
      "network": "BRIDGE",
      "portMappings": [
        { "hostPort": 0, "containerPort": 80, "servicePort": 10002 }
      ],
      "forcePullImage":true
    }
  },
  "instances": 1,
  "cpus": 0.1,
  "mem": 65,
  "healthChecks": [{
      "protocol": "HTTP",
      "path": "/",
      "portIndex": 0,
      "timeoutSeconds": 10,
      "gracePeriodSeconds": 10,
      "intervalSeconds": 2,
      "maxConsecutiveFailures": 10
  }],
  "labels":{
    "HAPROXY_GROUP":"external,internal"
  }
}

内外部都可以方案该Nginx实例。请注意,我们已经改变了servicePort端口,因此不会与其他Nginx的情况下重叠。

可以通过使用端口映射来定义服务端口(如在上面的例子),或者在marathon application的定义中增加ports参数。

为了测试我们的配置,用SSH登录到集群中的实例(如主机)之一,并尝试curl-ing端点:

$ curl http://marathon-lb.marathon.mesos:10000/

$ curl http://marathon-lb-internal.marathon.mesos:10001/

$ curl http://marathon-lb.marathon.mesos:10002/

$ curl http://marathon-lb-internal.marathon.mesos:10002/

每一个地址都应该返回Nginx的“欢迎”页面,如下所示:

这里写图片描述

虚拟主机

marathon-lb的一个重要特点是支持虚拟主机。这可以使您将HTTP通路分发到多个主机(FQDN的),并且将请求路由到正确的endpoint。例如,你可以有两个不同的网络地址,ilovesteak.com和steaknow.com,同时这两个地址的DNS都通过相同的端口指向同一个LB,并且将HAProxy基于域名将通信路由到正确的endpoint。

要测试虚拟主机功能,切换到AWS控制台,查看您的punblic ELB。为了进行测试,我们将对public ELB进行两处修改。

首先,我们将修改健康检查,使用HAProxy的内置的健康检查:

这里写图片描述

其次,修改健康检查的路径/_haproxy_health_check,让它去ping主机的9090端口。现在,如果你浏览到实例选项卡,您应该看到界面列出状态为InService的实例,就像这样:

这里写图片描述

现在,我们的ELB能够将流量路由到HAProxy的。接下来,让我们修改nginx的应用程序来暴露我们的服务。要做到这一点,你需要从Description tab页面中找到ELB public DNS的名称。在这个例子中,我的public DNS名字是brenden-j-PublicSl-1LTLKZEH6B2G6-1145355943.us-west-2.elb.amazonaws.com。

现在我将修改外部nginx的应用是这样的:

{
  "id": "nginx-external",
  "container": {
    "type": "DOCKER",
    "docker": {
      "image": "nginx:1.7.7",
      "network": "BRIDGE",
      "portMappings": [
        { "hostPort": 0, "containerPort": 80, "servicePort": 10000 }
      ],
      "forcePullImage":true
    }
  },
  "instances": 1,
  "cpus": 0.1,
  "mem": 65,
  "healthChecks": [{
      "protocol": "HTTP",
      "path": "/",
      "portIndex": 0,
      "timeoutSeconds": 10,
      "gracePeriodSeconds": 10,
      "intervalSeconds": 2,
      "maxConsecutiveFailures": 10
  }],
  "labels":{
    "HAPROXY_GROUP":"external",
    "HAPROXY_0_VHOST":"brenden-j-PublicSl-1LTLKZEH6B2G6-1145355943.us-west-2.elb.amazonaws.com"
  }
}

我们已经添加了标签HAPROXY_0_VHOST,它告诉marathon-lb就用虚拟主机的外部负载均衡来暴露Nginx的访问。在labels中,包含0的Key与servicePort定义对应 ,从0开始。如果你有多个servicePort定义,你会遍历它们作为0,1,2,依此类推。

现在,如果你浏览到在浏览器中ELB的公共DNS地址,您应该看到以下内容:

这里写图片描述

当当!

注:原文是“Ta-da!”,语气词而已,不是当当网

在第二部分中,在这里我们谈论更多marathon-lb的高级功能,以及如何使用HAProxy的实现应用程序autoscaling。

总结

本文更多的是在讲解如何来使用marathon-lb,以及在marathon-lb中,如何对HAProxy进行分组。讲得还是比较浅,特别是没有说明marathon-lb自动增加节点进行负载均衡没有说明。我本人搭的环境中,marathon-lb是可以进行自动负载均衡的,例如:关闭一个Nginx容器,marathon-lb会根据scaling(就是下一部分要说的)的值,自动创建一个Nginx镜像。但是,组合internal和external的情况,还没有成功。等试验成功,再补充进来。


参考资料:
[1]: https://mesosphere.com/blog/2015/12/04/dcos-marathon-lb/
[2]: http://blog.chinaunix.net/uid-23241716-id-134106.html
[3]: http://bbs.51cto.com/thread-909189-1.html

marathon-lb:Marathon-lb是DCOS的服务发现和负载平衡工具 马拉松磅 Marathon-lb是通过使用应用程序状态来管理HAProxy的工具。 HAProxy是一种快速,高效,经过考验的高可用性负载均衡器,具有许多高级功能,可为许多备受瞩目的网站提供支持。 特征 无状态设计:不直接依赖任何第三方状态存储(如ZooKeeper或etcd)(通过Marathon除外) 幂等和确定性:水平缩放 高度可扩展:每个实例,多个实例提供容错和更高的吞吐量 通过进行实时LB更新 支持马拉松健康检查 多证书TLS / SSL支持 每个服务的HAProxy模板 DC / OS整合 自动化Docker映像构建( ) 可以在启动时提供的全局HAProxy模板 支持IP-per-task集成,例如 包括收割机 入门 看看的用法,模板等。 建筑学 marathon-lb脚本marathon_lb.py连接到marathon API以检索所有正在运行的应用程序,生成 立即下载

相关推荐

dcos之marathon技术文档

Marathon 是一个mesos 框架,能够支持运行长服务,比如web 应用 等。是集群的分布式Init.d,能够原样运行任何Linux 二进制发布版本, 如 Tomcat Play 等等,可以集群的多进程管理,实现服务的发现,为部 署提供提供REST API 服务,SSL 与基础认证、配臵约束,通过HAProxy、 DNS 实现服务发现和负载平衡,可定制化监控策略实现Task(一个App 对应多个Task)的自动扩缩

Marathon 服务发现及负载均衡 marathon-lb

1- 简介          从官网摘抄了Mesos-DNS的缺陷,也是选择使用marathon-lb做服务发现和负载均衡的原因。          DNS does not identify service ports, unless you use an SRV query; most apps are not able to use SRV records “out of the...

xiaomin1991222的专栏 984

从零到一:用Verilog和Quartus构建智能交通灯系统的实战指南

本文详细介绍了如何使用Verilog和Quartus Prime从零开始构建智能交通灯系统。通过分步指导,包括状态机设计、时序控制、数码管显示等核心模块实现,并结合ModelSim仿真验证,帮助FPGA初学者掌握数字电路设计的关键技术。文章还提供了实际部署到FPGA开发板的调试技巧和进阶优化方案。

weixin_29172201的博客 474

Marathon-lb 服务自动发现和负载均衡

Marathon-lb用途在使用Marathon+Mesos 的容器集群中,我们会构建很多个容器,这些容器在不同的slave上分配了不同的随机端口,这些Docker容器在HA模式下运行,如果任何slave节点故障导致容器实例意外退出,它将自动重新创建到健康的节点上。 所以我们不必担心高可用性问题,Marathon会自动帮我们处理这些问题。但是,当我们要使用这些容器处理我们的业...

weixin_34234721的博客 351

本科双非的计算机考研择校注意点——经验贴

一战一志愿上岸某211的电子信息专硕。之前在某乎也发过帖子。但现在用优快云,所以把相关的心得再发出来仅供大家参考。 首先,我认为最重要的是你为什么要考研? 不管你是为了混一个文凭将来好进大厂,还是为了真正搞学术或者学知识,你要知道你自己的目标,只有坚定自己的目标,才有动力去走完这段复习的历程。真正的考研,是很苦的。如果你是为了逃避大四面临的就业才选择考研,并且还浑浑噩噩不当回事,那我劝你放弃,不如踏踏实实学点技术去找实习。那从我自己出发,我是认为自己本科双非院校且自己四年间没有学到什么专业方面的技能,

m0_56698268的博客 3164

ADS版图优化中的参数化设计技巧

本文详细介绍了在ADS中进行射频电路版图参数化设计的核心技巧。通过将版图关键尺寸定义为变量,并与电磁仿真及优化器联动,实现从手动修改到自动迭代的转变,极大提升了PA、LNA等电路的设计与优化效率。文章以阶梯阻抗变换器为例,阐述了变量创建、绑定及协同仿真的完整流程,并提供了避免网格冲突、变量混乱等常见问题的实用指南。

weixin_29296241的博客 405

marathon-lb使用实践

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34111790的博客 951

银河麒麟系统V10 sp1,安装wine 9.0

银河麒麟系统V10 sp1 x86_64,安装wine 9.0

daqinzl的专栏 1万+

【原创】大数据基础之Marathon(2)marathon-lb

marathon-lb 官方:https://github.com/mesosphere/marathon-lb 一 简介 Marathon load balancer (Marathon-LB) is a proxy server and load balancer for TCP, HTTP, and HTTPS requests based on HAProxy open-sou...

weixin_30651273的博客 378

iTunes登录协议全解析:从抓包到加密参数生成(含HTTPDebugger避坑指南)

本文深度解析iTunes登录协议,提供从环境搭建、绕过反调试机制到捕获网络流量的完整实战指南。重点剖析了如何利用HTTPDebugger等工具进行抓包,并详细解读了核心加密参数X-Apple-ActionSignature的生成逻辑,为网络安全研究员和协议分析工程师提供了一份详尽的逆向分析与协议复现教程。

weixin_28314575的博客 869

【WRF-Chem教程-附录 C】闪电-NOx 参数化方案详解

闪电-NOx 参数化方案详解

WW、forever的博客 974

用DCOS和marathon-lb实现服务发现和负载均衡:第二部分

最近在研究使用Mesos,对marathon-lb和mesos-dns等诸多工具,只是停留在知道和会用的阶段,特别是对于基于marathon-lb的HAProxy的应用分组和使用更是一头雾水。现在资料也少,看了官网上的这篇文章觉得讲得还算是全面。兄弟英文水平差,先用Google翻译了一下,然后再梳理整理,同时,加上了一些自己的理解的说明。因为每个人的经历和经验都不同,以下这些东西对于有些人可能很难对

适己而忘人者,人之所弃;克己而立人者,众之所戴。 3689

ESP32 双雷达融合盲区车辆接近预警系统设计与实现

/ 超声波传感器引脚// 触发引脚// 回声引脚// 预警模块引脚// 蜂鸣器引脚// LED引脚// 串口配置(毫米波雷达用UART2)#define BAUD_RATE 115200 // 雷达串口波特率(IWR6843默认配置)// 预警阈值(可根据实际需求调整)// 高危区阈值(3m)// 预警区阈值(10m)// 传感器数据存储// 毫米波雷达距离(m)// 毫米波雷达速度(km/h)// 超声波距离(m)// 融合后距离(m)

weixin_42300449的博客 745

dcos - marathon -lb 问题

marathon-lb的稳定性问题假设在内部, 程序A去调用程序B使用api api-b,一共三个节点,通过域名api-b.marathon.mesos, 解析出来的A记录有三个,当然,解析出来的都是lb的地址,如果lb有一个挂了会有啥结果。短时间内是不是会造成502.marathon-lb居然也有保留端口marathon-lb居然还保留了端口。By default, port 10000 thro

vbaspdelphi的专栏 1792

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

dcos - marathon - internal小点

dcos 作为运行docker的底层支撑平台, 是我们的工作量减少不少,但是由于docker数量众多,即使有了overlay的网络,可是ip地址呀端口号呀那么多,我们可如何是好呢?对喽,这个时候 marathon-lb就出现了,大致过程如下: 1. 我们运行docker, 打出一个随机端口A,而且告知zk我们希望我们拥有哪个端口B可以被别人访问 2. marathon-lb 会去zk找这个端口B

vbaspdelphi的专栏 597

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

用DCOS和marathon-lb实现服务发现和负载均衡

[url]http://m.blog.youkuaiyun.com/article/details?id=52936235[/url] DCOS到底是啥?看完这篇你就懂了 [url]http://www.c114.net/cloud/4049/a933242.html[/url]

RodJohnson_523391的专栏 335

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

mesos-dns & marathon-lb

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33757609的博客 137

引入Marathon-lb时,官方阐述了Mesos-DNS的几个缺陷

Mesos-DNS确实缺陷和能力不足,也是DC/OS偏向使用marathon-lb做服务发现和负载均衡的原因。

Mesos的专栏 1435

[经验交流] Mesos-dns 和 Marathon-lb 简要使用方法

Mesos-dns 和 Marathon-lb 是mesosphere 官网提供的两种服务发现和负载均衡工具。官方的文档主要针对DCOS,针对其它系统的相关中文文档不多,下面是我在Centos7上的安装说明和使用总结。 1. Mesos服务发现与负载均衡 默认情况下,mesos marathon会把app发布到随机节点的随机端口上,当mesos slaves和app越来越多的时候,想查找某组a...

weixin_34356138的博客 268

【云计算】mesos+marathon 服务发现、负载均衡、监控告警方案

Mesos-dns 和 Marathon-lb 是mesosphere 官网提供的两种服务发现和负载均衡工具。官方的文档主要针对DCOS,针对其它系统的相关中文文档不多,下面是我在Centos7上的安装说明和使用总结。 1. Mesos服务发现与负载均衡 默认情况下,mesos marathon会把app发布到随机节点的随机端口上,当mesos slaves和app越来越多的时候,想查找某组a...

weixin_33919950的博客 403

marathon的高可用服务自动发现和负载均衡

上一篇我们说谈了docker+zookeeper+mesos+marathon集群,本篇我们来谈谈marathon的集群和自动发现服务。 marathon的服务自动发现和负载均衡有两种,1是mesos-dns,2是marathon-lb,他们是mesosphere 官网提供的两种服务发现和负载均衡工具。官方的文档主要针对DCOS,针对其它系统的相关中文文档不多,下面是我在Centos7上的...

weixin_30788731的博客 206

基于DCOS容器化的微服务多层架构部署方案

如今,越来越多的企业信息化系统,转向Docker虚拟化部署。本文基于DC/OS简要总结项目中业务微服务的多层部署架构。 一般企业信息化系统均会存在公众互联网入口、企业内部私网入口、系统对外开放能力接口。为保证企业数据安全,会通过网络防火墙技术将信息化系统入口隔离为具有不同访问策略的多个网络入口,好像地面通向地下的多个“管道”。 而从系统微服务架构上,还要考虑负载均衡、请求流量...

1013

Mesosphere实战指南:Mesos内核与Marathon/Chronos调度深度解析

Mesosphere是一套面向大规模容器化应用的生产级分布式调度系统,其核心是基于Mesos内核的资源抽象与任务调度能力。不同于Kubernetes的声明式编排范式,Mesos采用类操作系统内核的设计,通过Offer机制实现去中心化资源分发,保障超大规模场景下的高可用与低延迟响应。Marathon作为服务型负载调度器,专注长周期、高可用微服务的滚动更新与健康治理;Chronos则以分布式Cron形态支撑批处理DAG依赖调度。二者协同HAProxy构成服务发现、流量治理与弹性伸缩的闭环链路。本文聚焦Mesos

weixin_34387468的博客 404
上一篇: 一个题目包括70种网页制作常用技巧
下一篇: 用DCOS和marathon-lb实现服务发现和负载均衡:第二部分
码匠君
博客等级 码龄22年 153粉丝 42原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值