2

3 台の CentOS6.5 マシンで構成される Mesos クラスターがあります。

ZooKeeper と Mesos-Master はいずれかのマシンで実行され、Mesos-Slave は各マシンで実行されます。

また、Marathon はマスターノードで実行されています。

次に、 Mesosphereのこの指示に従って、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

その後、Marathon Web UI で、Docker コンテナーが "デプロイ中" の状態になっていることを確認できます。

そして、Mesos-Master Web UI で、タスクが久しぶりに "STAGING" ステータスになっていることがわかります。

サンドボックス ペインで、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

stdout はこのようなものです。

Registered executor on master-hostname
10:19:49

しかし、コマンドの完了後にコンテナ(TASK)が終了することを期待しています。 出来ますか? 可能であれば、その方法は?

ありがとうございました。

4

2 に答える 2

5

The task will finish (you should be able to see in the Mesos completed tasks) but the container will be restarted by Marathon. Marathon is for long-running apps.

If you don't want your application to be running continuously, you should take a look at another framework like Chronos.

于 2015-04-16T10:45:19.123 に答える