0

我有一个 mesos 和 chronos 环境,我想使用 chronos api 来监控作业状态,但是......

curl -L http://localhost:8080/leader

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/>
<title>Error 404 </title>
</head>
<body>
<h2>HTTP ERROR: 404</h2>
<p>Problem accessing /leader. Reason:
<pre>    Not Found</pre></p>
<hr /><a href="http://eclipse.org/jetty">Powered by Jetty:// 9.3.z-SNAPSHOT</a><hr/>
</body>
</html>

它返回404给我,任何人都可以有想法吗?其他功能工作正常。 网页界面作业状态 API URL 是:chronos REST API DOC

4

1 回答 1

0

您需要确保连接到集群上的正确主机。鉴于您没有收到响应,很可能无法通过 localhost 或 chronos-node 访问 chronos。

要确定 chronos 在哪里运行,请利用mesos dns

如果您的服务安装为chronos,请查找所有 TCP 端点的 SRV 记录,如下所示:

/# dig _chronos._tcp.marathon.mesos SRV

; <<>> DiG 9.12.1-P2 <<>> _chronos._tcp.marathon.mesos SRV
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39584
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; QUESTION SECTION:
;_chronos._tcp.marathon.mesos.  IN      SRV

;; ANSWER SECTION:
_chronos._tcp.marathon.mesos. 60 IN     SRV     0 0 9669 chronos-jjmux-s11.marathon.mesos.

;; ADDITIONAL SECTION:
chronos-jjmux-s11.marathon.mesos. 60 IN A       10.0.2.15

;; Query time: 1 msec
;; SERVER: 198.51.100.1#53(198.51.100.1)
;; WHEN: Tue Oct 02 22:48:02 UTC 2018
;; MSG SIZE  rcvd: 114

在上面的这种情况下,我通过 DC/OS Universe 安装,它通过主机网络驱动程序使用任何可用端口自动部署,但是我通过 DNS 查询看到端口 9669 上有一个 tcp 侦听器。从那里您可以通过 收到回复curl -L -X GET http://chronos.marathon.mesos:9669/scheduler/jobs。(注意:chronos 文档声明前缀为/v1,但在某些部署中,情况并非如此)。

最后,您可能不想每次都查找 SRV 记录。如果您通过 DC/OS Universe 安装,则通过 marathon 部署 chronos,但是 Universe 包隐藏了通过 DC/OS 界面定义 VIP 所需的所有配置选项。这可以通过手动转到原始 marathon 界面来解决,您可以在其中更改配置(或通过 marathon api)。

于 2018-10-02T23:03:41.510 回答