马拉松上的码头集装箱还没完工

omjgkv6w  于 2021-06-21  发布在  Mesos
关注(0)|答案(2)|浏览(255)

我有一个由3个centos6.5机器组成的mesos集群。
zookeeper和mesos master在其中一台机器上运行,mesos slave在每台机器上运行。
此外,marathon正在主节点上运行。
然后,我尝试在马拉松上运行docker容器,遵循中间层的指示。 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

然后在MarathonWebUI上,我可以看到docker容器在很长时间后仍处于“部署”状态。
而在mesos master web ui上,我可以看到任务经过很长时间后处于“暂存”状态。
在sandbox面板上,我可以看到stdout,命令似乎已经成功完成。没问题。
斯特德尔是这样的,

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

但是我希望容器(任务)在完成命令之后完成。这可能吗?如果可能,怎么做?
谢谢您。

2q5ifsrm

2q5ifsrm1#

任务将完成(您应该能够在mesos中看到已完成的任务),但是容器将在marathon之前重新启动。marathon适用于长时间运行的应用程序。
如果您不想让应用程序连续运行,那么应该看看chronos之类的另一个框架。

5vf7fwbs

5vf7fwbs2#

marathon适用于长时间运行的进程。即使您移除容器,马拉松也会尝试重新启动这些容器。我观察到的另一件事是,marathon尝试启动容器并继续这样做,直到您没有内存和cpu为止。当您的资源不足时,您的任务将进入阶段状态。

相关问题