运行 Java Mesos 上的应用程序没有 Docker

Run Java app on Mesos without Docker

我只是弄清楚 Mesos 并在 vag运行t 节点上测试它。 在检查 mesos 的过程中,我的工作 运行 进入 Docker 问题中的 JVM 内存泄漏问题发布在这里 -> https://github.com/docker/docker/issues/15020

我想知道是否有一些提示或示例可以让我们在 Mesos 上测试容器化,以查看内存问题是否特定于 Docker 容器化程序。到目前为止,大多数示例都是针对 marathon 运行ning docker,但在非 docker Mesos 上的例子并不多。

  1. 我需要编写自己的 Mesos JVM Containerizer 隔离器吗?
  2. containerizer 是否只解析作业详细信息并执行脚本?
  3. 我可以将 Mesos containerizer a .war 和作业包传递给 运行 我的 Java 应用程序吗?
  4. 大型 github 项目中的任何简单示例或特定代码可以说明这一点?

我的工作是决定我们是否应该在没有容器化的情况下部署我们的 Java 应用程序,或者更改容器化解决方案是否有助于解决问题。

我可以查看有关如何在 Mesos Containerizers 上设置 Tomcat JVM 应用程序的任何提示或文档链接吗?我仍在学习 mesos 的工作原理,所以任何帮助!

所以让我退后一步:你没有 运行 Mesos 上的 Java 应用程序,你 运行 它在它的一个框架上,例如 Marathon(对于long-运行ning 任务,例如网络服务器)或 Chronos(用于计划的批处理作业)。将 Mesos 视为分布式操作系统的 Linux 内核,这可能会有所帮助。

回到你的问题,除非你打算 write your own framework (for example tobilg/mesos-js-framework),下面假设你使用 Marathon 启动 Tomcat(因为这是一个长期 运行ning 任务).

与大多数框架一样,Marathon 不执行繁重的工作,it leverages Mesos core features such as the Fetcher to pull resources necessary to execute an app进入 Mesos Agent 的沙箱。通过 uris,您可以指定 Marathon(通过 Mesos Fetcher)下载的 URL 列表,并且根据文件扩展名,在它启动通过 cmd.[= 的内容指定的应用程序之前提取。 14=]