Docker Marathon 上的容器未完成
Docker container on Marathon doesn't finish
我有 Mesos 集群,由 3 台 CentOS6.5 机器组成。
ZooKeeper 和 Mesos-Master 在其中一台机器上 运行ning,Mesos-Slave 在每台机器上 运行ning。
此外,Marathon 运行正在主节点上运行。
然后,我正在尝试 运行 docker 马拉松上的容器,跟随 Mesosphere this instruction。
job.json
如下,
{
"container": {
"type": "DOCKER",
"docker": {
"image": "libmesos/ubuntu"
}
},
"id": "ubuntu",
"instances": 1,
"cpus": 0.5,
"mem": 512,
"uris": [],
"cmd": "date -u +%T"
}
然后我运行下面的命令,
curl -X POST -H "Accept: application/json" -H "Content-Type: application/json" <master-hostname>:8080/v2/apps -d@job.json
然后在 Marathon Web UI 上,我可以看到 Docker 容器在很长时间后仍处于 "Deploying" 状态。
并且在 Mesos-Master Web UI 上,我可以看到任务在很长时间后处于 "STAGING" 状态。
在 Sandbox 窗格中,我可以看到 stdout 并且命令似乎已成功完成。没问题。
stderr是这样的,
I0416 19:19:49.254998 29178 exec.cpp:132] Version: 0.22.0
I0416 19:19:49.257824 29193 exec.cpp:206] Executor registered on slave 20150416-160950-109643786-5050-30728-S0
标准输出是这样的,
Registered executor on master-hostname
10:19:49
但我希望容器(TASK)在完成命令后完成。
可能吗?
如果可以的话,该怎么做?
谢谢。
任务将完成(您应该能够在 Mesos 中看到已完成的任务)但容器将由 Marathon 重新启动。 Marathon 适用于长运行 应用程序。
如果您不希望您的应用程序持续 运行,您应该看看另一个框架,例如 Chronos。
马拉松是漫长的运行过程。即使您删除容器,马拉松也会尝试重新启动这些容器。我观察到的另一件事是 Marathon 尝试启动容器并继续这样做,直到你没有记忆和 CPU。当您的资源不足时,您的任务将进入阶段状态。
我有 Mesos 集群,由 3 台 CentOS6.5 机器组成。
ZooKeeper 和 Mesos-Master 在其中一台机器上 运行ning,Mesos-Slave 在每台机器上 运行ning。
此外,Marathon 运行正在主节点上运行。
然后,我正在尝试 运行 docker 马拉松上的容器,跟随 Mesosphere this instruction。
job.json
如下,
{
"container": {
"type": "DOCKER",
"docker": {
"image": "libmesos/ubuntu"
}
},
"id": "ubuntu",
"instances": 1,
"cpus": 0.5,
"mem": 512,
"uris": [],
"cmd": "date -u +%T"
}
然后我运行下面的命令,
curl -X POST -H "Accept: application/json" -H "Content-Type: application/json" <master-hostname>:8080/v2/apps -d@job.json
然后在 Marathon Web UI 上,我可以看到 Docker 容器在很长时间后仍处于 "Deploying" 状态。
并且在 Mesos-Master Web UI 上,我可以看到任务在很长时间后处于 "STAGING" 状态。
在 Sandbox 窗格中,我可以看到 stdout 并且命令似乎已成功完成。没问题。
stderr是这样的,
I0416 19:19:49.254998 29178 exec.cpp:132] Version: 0.22.0
I0416 19:19:49.257824 29193 exec.cpp:206] Executor registered on slave 20150416-160950-109643786-5050-30728-S0
标准输出是这样的,
Registered executor on master-hostname
10:19:49
但我希望容器(TASK)在完成命令后完成。 可能吗? 如果可以的话,该怎么做?
谢谢。
任务将完成(您应该能够在 Mesos 中看到已完成的任务)但容器将由 Marathon 重新启动。 Marathon 适用于长运行 应用程序。
如果您不希望您的应用程序持续 运行,您应该看看另一个框架,例如 Chronos。
马拉松是漫长的运行过程。即使您删除容器,马拉松也会尝试重新启动这些容器。我观察到的另一件事是 Marathon 尝试启动容器并继续这样做,直到你没有记忆和 CPU。当您的资源不足时,您的任务将进入阶段状态。