问题标签 [marathon]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
debugging - 如何使用 Marathon、Chronos 等调试部署在 mesos 上的应用程序
据我所知,使用 Marathon/Chronos 框架,可以将应用程序部署到满足其资源需求的从节点。但是我找不到任何有关这些应用程序是否因内部缺陷而失败的信息,那么应用程序开发人员或支持工程师是否可以登录节点进行诊断工作?收集日志文件等
mesos - 如何为在 Mesos 上运行的 Marathon 应用程序选择 CPU 参数?
我一直在玩 Mesos 集群,并考虑在我们的生产环境中使用 Mesos 集群。一个我似乎找不到答案的问题:如何正确安排长时间运行且负载不同的应用程序?
Marathon 具有“CPUs”属性,您可以在其中设置特定应用程序的 CPU 分配权重。(我计划运行 Docker 容器)但从我所读到的内容来看,它只是一个权重,而不是我为应用程序设置的保留、分配或限制。如果它是唯一正在运行的东西,它仍然可以使用服务器上 100% 的 CPU。问题在于,对于长时间运行的应用程序,资源需求会随着时间而变化。例如,Web 服务器与流量成正比。再加上 Mesos 将此设置视为“保留”,我在 2 个弊端之间进行选择:将其设置得太低,它可能会在同一主机上启动太多进程,并且所有进程都会受到影响,主机 CPU 会超过 100%。将它设置得太高,CPU 将闲置,因为预留(或 Mesos 认为),但没有什么
你如何解决这个问题?我在 Mesos 和 Marathon 如何处理资源方面遗漏了什么吗?
我正在考虑一种理想的方法:
- 为不同的应用程序指定 CPU 的权重(例如,0.1 到 1 的顺序),这样当事情变得艰难时,更高的优先级会得到更多(就像现在一样)
- 让 Mesos 从站报告“可用 LA”及其状态(例如,如果 10 分钟 LA 为 2,有 8 个 CPU 可用,则报告 6“可用 LA”)
- 将 Marathon 配置为需要从站上的“可用 LA”资源来安排任务(例如,如果可用 LA < 2,则不要在特定主机上启动)
- 当可用 LA 变为 0 时(由于流量涌入,同时一些作业在流入之前在同一台服务器上启动) - 让 Marathon 将作业移动到另一个从站,一个具有更多“可用 LA”的从站
有没有办法实现这一切?
到目前为止,我认为我可以编写一个将在从属设备上运行的自定义隔离器模块,并将这个自定义指标报告给主服务器。然后我可以在资源协商中使用它。这是真的?
如果某个节点超载,我无法找到有关 Marathon 在不同节点上重新安排任务的任何内容。有什么建议么?
node.js - 如何在 mesos 中聚合所有 docker 容器的日志
我有多个用节点编写的微服务,微服务安装到 docker 容器中,我们使用 Mesos+Marathon 进行集群。
如何聚合不同实例上所有容器(微服务)的日志。?
docker - 频繁重启 - marathon/mesos 中的 docker 容器
在完全将我的网络服务器应用程序 docker 化之前,我一直是成功的。现在我想通过 marathon 框架将它们直接部署到 mesos slave 来探索更多。我可以通过两种不同的方法将 docker 容器部署到马拉松中,命令行或马拉松 Web UI。两者都对我有用,但挑战是当我尝试部署我的 docker 映像时,马拉松经常重新启动作业,并且在 mesos UI 页面中,我可以看到同一个容器的许多已完成作业。每分钟接近 10 个任务。我相信这不是预期的。
我的 docker 文件如下所示:
现在我不知道如何解决这个问题,任何指导将不胜感激。谢谢
deployment - 如何更新 marathon UI 中的 CSS 和链接?
我在我的服务器基础设施中使用了 docker、Marathon 和 Mesos。我想更改 Marathon UI 中的一些内容。可能吗?如果是,那么我可以从哪里找到已安装的 Marathon UI 代码库。?
docker - 如何从马拉松 UI 中彻底销毁 docker 容器?
我有 docker 注册表,Mesos 从中提取容器。我的问题是,当我从 Marathon UI 销毁应用程序并再次调用 Marathon rest api 以使用相同版本的应用程序部署应用程序时,Mesos 没有从 Master Docker 注册表中提取图像它是从本地注册表或缓存中提取图像。我意识到这一点是因为 Mesos 在几秒钟内完成了任务,如果我更改版本,部署需要很长时间。
如果有人对此有解决方案(或与问题相关的困惑),请告诉我,因为我阅读了所有文件,但没有得到任何解决方案。
谢谢
docker - 马拉松码头工人工作在部署状态下挂起
嗨,到目前为止,我已经成功地完成了马拉松中的简单工作,但是当我尝试通过马拉松框架在 mesos 中部署 deocker 工作时,它卡住了。
我正在使用如下 json 文件来部署 docker 作业:
我的 pga docker 镜像在作为容器运行时没有问题,但是通过马拉松它只是不工作。它永远处于部署状态。
我正在使用以下命令行:
但是当我从马拉松 UI 运行相同的图像时,它就可以工作了。为了从马拉松开始,我在 UI 新作业页面的 cmd 字段中使用了“docker run --publish 6060:80 --name test --rm pga”。
有人知道为什么这会挂在命令行方法中吗?
docker - marathon 在销毁作业后不会删除 docker 容器
当我将 docker 容器作为马拉松作业运行时,它会在活动的 mesos 从属系统中创建一个 docker 容器。当暂停或销毁 docker 作业时,我希望马拉松应该删除不再需要的 docker 容器。但是容器不会被删除。每次马拉松重新启动 docker 容器作业时,我都必须手动删除它们。
有没有办法自动删除这些不需要的容器?
编辑: 添加 json 文件以启动马拉松作业
mesos - 迁移 Marathon 应用程序以实现 mesos-slave 正常关闭
我有一个小型 Mesos 集群,我使用 Marathon 来管理一组长时间运行的服务,每个服务的实例数量可变。
我希望能够根据业务需求启动新节点或终止其中一些节点。但是,当终止一个节点时,我意识到有一个潜在的问题:当我关闭一个 Mesos 从站时,某些服务的实例数会暂时低于定义的minimumHealthCapacity
. 例如,如果要停止的机器正在运行只有一个实例的服务,这可能会导致一些停机时间。
考虑下面的简化场景:节点 1 正在运行服务 A,节点 2 正在运行服务 B,节点 3 正在运行服务 C。minimumHealthCapacity
所有服务的值为 1。我想终止节点 1,只保留 2 和 3 运行。我不希望服务 A 出现任何停机时间。预期行为的一个示例是将服务 A 扩展到 2,然后安全地终止节点 1。
我可以做些什么来确保没有服务低于minimumHealthCapacity
?
理想情况下,我会有一个滚动更新启发的过程——替换是在不同的机器上启动的,然后在要关闭的机器上终止服务。我希望至少有一个自动化的过程来做到这一点,以便缩小规模是一个简单的脚本。我对执行此操作所需的时间没有要求,即只有在我确定 Marathon 迁移完成并成功后才能关闭 Mesos 从站。
java - 使用 Marathon 部署 Mesos 集群
我有三台机器 M1、M2 和 M3。我在 M1 上部署了 mesos-master、zookeeper 和 marathon,在 M2 和 M3 上部署了 mesos-slave。然而,在 Mesos Gui 上,显示了零奴隶。然后我运行命令mesos-resolvecat /etc/mesos/zk
来检查从站是否发现了正确的主站。但是不,它错误地将 127.0.0.1:5050 发现为主服务器。以下是上述命令的日志:
如日志所示,我在 M1/zookeeper 中查找了 /mesos/info_0000000001 的节点值。原来是这样的:
Mesos 主设置:cat /etc/mesos/zk
所以看起来,M1 的 mesos 主控如何不将其绝对 IP 存储在 Zookeeper 节点中。任何人都可以解释这种奇怪的行为。