我正在尝试使用Mesos的HTTP API。 我试图使用以下命令订阅已经运行的框架,但是它创建了另一个框架,而不是订阅现有框架。另外,响应中不包含mesos-stream-id,因此我无法在通过订阅请求创建的框架上执行其他命令(如拆解)。
这是我用来订阅现有框架的命令。
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_id”:{“ value”:“ b3a72ba7-e233-45cb-92c5-bd98780e5517-0001”},“ heartbeat_interval_seconds”:15.0,“ master_info”:{“ id“:” b3a72ba7-e233-45cb-92c5-bd98780e5517“,” ip“:1368827285,”端口“:5050,” pid“:” master@149.xxx.xxx.xx:5050“,”主机名“:” 149.xxx.xxx.xx“,”版本“:” 1.6.0“,”地址“:{”主机名“:” 149.xxx.xxx.xx“,” ip“:” 149.xxx.xxx.xx “,”端口“:5050},”功能“:[{”类型“:” AGENT_UPDATE“}]}}}} 20 {“ type”:“ HEARTBEAT”} 20 {“ type”:“ HEARTBEAT”} 20
如您所见,响应具有不同的框架ID,并且不包含mesos-stream-id。我可以从Web面板上看到这个新框架实际上是创建的。
有什么想法吗?, 谢谢。
答案 0 :(得分:0)
我相信您会混淆operator和framework (aka scheduler) API。作为操作员,您无法模拟框架并代表它取消其任务。作为操作员,没有简单的方法可以杀死任意任务,请参见MESOS-3220。
您可以做的是询问您用来终止特定任务的框架。像Marathon这样的大多数通用Mesos框架都可以做到这一点(FYI,使用上述调度程序API将终止请求中继到Mesos)。