我在mesos /马拉松上运行docker容器。我想实施运行状况检查,基本上是想运行运行状况检查脚本。我的问题是,运行状况检查命令将在容器本身上运行还是在从属服务器上运行?因为这是每个应用程序的运行状况检查,所以它可能是容器级别的,这很明显,但是我想确认一下。找不到任何相关文档说明运行的位置。
谢谢
我确实通过命令尝试了对/ tmp / testfile的回显,这在从站上可以看到。这意味着它在从站上运行?只需要确认即可。任何更多信息都是有用的
最佳答案
简短的答案是:这取决于。下面是长答案:)。
命令健康检查由Mesos泊坞窗执行程序通过docker exec
在您的任务容器中运行。如果使用“统一容器化器”运行容器,即,在没有docker daemon的docker容器的情况下,情况类似,不同之处在于没有docker exec
,Mesos执行程序在执行命令运行状况之前仅输入容器的mnt
命名空间检查(请参阅this doc)。 HTTP和TCP运行状况检查由Marathon调度程序运行,因此不一定在容器运行所在的节点上运行(除非您与Mesos代理在同一节点上运行Marathon,这可能不应该这样做)。 checkout this page。
现在从Mesos 1.2.0和Marathon 1.3开始,可以运行所谓的Mesos-native health checks。在这种情况下,HTTP(S)和TCP运行状况检查都在容器运行所在的代理上运行。为了确保可以访问容器网络,这些检查将输入容器的net
命名空间。
关于mesos - 如何使用Marathon Health Check命令模式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41069411/