我正在尝试使用mesos的httpapi。我尝试用下面的命令订阅已经运行的框架,但是它创建了另一个框架,而不是订阅现有的框架。另外,响应不包括mesos stream id,因此我不能在使用subscribe请求创建的框架上执行另一个命令,如teardown。
这是我用来订阅现有框架的命令。
curl -H "Host: 149.xxx.xxx.xx:5050" -H "Content-type: application/json" \
-H "Accept: application/json" -H "Connection: close" -X POST \
-d '{"type": "SUBSCRIBE","subscribe" : {"framework_info" :{"user" : "foo","name": "test", "framework_id": {"value" : "ab9cbd17-d7a4-4889-af39-1b372d16cf51-0000"}}, "force": true}}' \
149.xxx.xxx.xx:5050/api/v1/scheduler/
对上述命令的响应为;
423{“type”:“subscribed”,“subscribed”:{“framework\u id”:{“value”:“b3a72ba7-e233-45cb-92c5-bd98780e5517-0001”},“heartbeat\u interval\u seconds”:15.0,“master\u info”:{“id”:“b3a72ba7-e233-45cb-92c5-bd98780e5517”,“ip”:1368827285,“port”:5050,“pid”:master@149...xx:5050,“主机名”:“149...xx”,“版本”:“1.6.0”,“地址”:{“主机名”:“149...xx”,“ip”:“149...xx”,“port”:5050},“capabilities”:[{“type”:“agent\u update”}]}}}20{“type”:“heartbeat”}20{“type”:“heartbeat”}20
如您所见,响应具有不同的框架id,并且不包括mesos-stream-id。我可以从web面板中看到这个新框架实际上是创建的。
有什么主意吗?谢谢。
1条答案
按热度按时间rkue9o1l1#
我相信您混淆了操作符和框架(aka scheduler)api。作为操作员,您不能模拟框架并代表它终止其任务。作为一个操作员,没有简单的方法可以杀死任意任务,参见mesos-3220。
你可以做的是,询问你用来终止一个特定任务的框架。大多数通用的mesos框架,比如marathon,都可以做到这一点(仅供参考,使用前面提到的调度器api将kill请求转发给mesos)。