如何使用马拉松健康检查命令模式?

Gau*_*nha 2 marathon mesos

我在 mesos/marathon 上运行 docker 容器。我想实现健康检查,基本上是想运行一个健康检查脚本。我的问题是,健康检查命令是在容器本身上运行还是在从站上运行?它可能是容器级别,因为这是每个应用程序运行状况检查,所以很明显,但我想确认一下。没有找到任何说明它在哪里运行的相关文档。

谢谢

我确实尝试通过命令对 /tmp/testfile 进行回显,我在从站上看到了该命令。这意味着它在奴隶上运行?只需要确认。任何更多信息都是有用的

小智 6

简短的回答是:这取决于。下面的长答案:)。

命令运行状况检查由任务容器中的 Mesos docker 执行程序通过docker exec. 如果您使用“统一容器化程序”运行您的容器,即在没有 docker 守护程序的 docker 容器的情况下,事情是相似的,不同之处在于没有docker exec,Mesos 执行器只是mnt在执行命令健康检查之前输入您的容器的命名空间(请参阅此文档)。HTTP 和 TCP 运行状况检查由 Marathon 调度程序运行,因此不一定在运行容器的节点上运行(除非您使用 Mesos 代理在同一节点上运行 Marathon,这可能是您不应该做的)。看看这个页面

现在从 Mesos 1.2.0 和 Marathon 1.3 开始,有可能运行所谓的Mesos 原生健康检查。在这种情况下,HTTP(S) 和 TCP 运行状况检查都在运行容器的代理上运行。为了确保可以访问容器网络,这些检查会输入net容器的命名空间。