答案 0 :(得分:1)
根据我的理解,Mantl是一个工具/应用程序的集合,它们联系在一起以创建一个基于docker的紧密的应用程序平台。 Mantl理想地部署在虚拟化/云环境(AWS,OpenStack,GCE)上,但我最近才能在裸机上部署它。
Mantl的主要组件是Mesos,它管理泊坞窗,处理调度和任务隔离。 Marathon是一个mesos框架,用于管理长时间运行的任务,例如Web服务,这是大多数应用程序所在的位置。 mesos-marathon的组合处理应用程序的高可用性,弹性和负载平衡。将所有内容捆绑在一起的是consul,它处理服务发现。我使用consul为每个应用程序执行查找以相互通信。 Mantl还包括用于记录的ELK堆栈,但我还没有成功监控我的任何应用程序。还有Chronos,计划任务是处理ala cron。 Traefik充当反向代理,其中应用程序/服务端点映射到URL以供外部服务进行通信。
基本上,您的微服务应该在docker镜像中自包含,通过consul查找启动通信并登录到标准io。然后使用Marathon API部署应用程序,并在Marathon UI中对其进行监控。在部署dockerized-app时,马拉松将在领事中注册docker图像名称及其'暴露的港口。计划任务应该部署在Chronos中,您可以在其中监视正在运行的任务和待处理的计划任务。