Mesos DNS API

使用 Mesos DNA API 发现 IP 地址和端口

您可以使用 Mesos DNS API 发现其他应用程序的 IP 地址和端口。

路由

访问 Mesos DNS API 是通过每个节点上使用以下路由的 Admin Router 代理的:

访问代理节点的 Mesos DNS API 也是通过管理节点代理的:

格式

Mesos DNS API 的请求和响应主体被编排成 JSON 格式。

请求必须包含接受标题:

  1. Accept: application/json

响应将包括内容类型标题:

  1. Content-Type: application/json

授权 Enterprise

所有 Mesos DNS API 路由需要认证才能使用。

Mesos DNS API 还需要通过以下权限授权:

用户也可以通过 dcos:superuser 权限获得所有路由。

要为您的帐户分配权限,请参阅 .

资源

Mesos-DNS 实现了一个简单的 REST API,用于通过 HTTP 进行服务发现。这些示例假设您具有 与节点的 SSH 连接.

以 JSON 格式列出 Mesos-DNS 版本和源代码 URL。

输出应类似于:

  1. {
  2. "Service": "Mesos-DNS",
  3. "URL": "https://github.com/mesosphere/mesos-dns",
  4. "Version": "dev"
  5. }

以 JSON 格式列出 Mesos-DNS 配置参数。

  1. curl -H "Authorization: token=<auth-token>" http://<public-master-ip>/mesos_dns/v1/config
  1. {
  2. "RefreshSeconds": 30,
  3. "Port": 61053,
  4. "Timeout": 5,
  5. "StateTimeoutSeconds": 300,
  6. "HttpPort": 8123,
  7. "TTL": 60,
  8. "SOARefresh": 60,
  9. "SOARetry": 600,
  10. "SOAExpire": 86400,
  11. "SOAMinttl": 60,
  12. "SOAMname": "ns1.mesos.",
  13. "SOARname": "root.ns1.mesos.",
  14. "Masters": null,
  15. "ZoneResolvers": {},
  16. "Resolvers": [
  17. "169.254.169.253"
  18. ],
  19. "IPSources": [
  20. "host",
  21. "netinfo"
  22. ],
  23. "Zk": "zk://zk-1.zk:2181,zk-2.zk:2181,zk-3.zk:2181,zk-4.zk:2181,zk-5.zk:2181/mesos",
  24. "Domain": "mesos",
  25. "File": "/opt/mesosphere/etc/mesos-dns.json",
  26. "Listener": "0.0.0.0",
  27. "HTTPListener": "0.0.0.0",
  28. "HttpOn": true,
  29. "ExternalOn": true,
  30. "EnforceRFC952": false,
  31. "SetTruncateBit": false,
  32. "EnumerationOn": true,
  33. "MesosHTTPSOn": false,
  34. "CACertFile": "",
  35. "CertFile": "",
  36. "KeyFile": "",
  37. "MesosCredentials": {
  38. "Principal": "",
  39. "Secret": ""
  40. },
  41. "IAMConfigFile": "",
  42. "MesosAuthentication": ""
  43. }

Entperise DC/OS 的输出应该类似于:

以 JSON 格式列出与主机名对应的 IP 地址。它与 DNS A 记录查找相同。

注意:HTTP 界面仅解析 Mesos 域中的主机名。

  1. curl -H "Authorization: token=<auth-token>" http://<public-master-ip>/mesos_dns/v1/hosts/nginx.marathon.mesos

输出应类似于:

  1. [
  2. {"host":"nginx.marathon.mesos.","ip":"10.249.219.155"},
  3. {"host":"nginx.marathon.mesos.","ip":"10.190.238.173"},
  4. {"host":"nginx.marathon.mesos.","ip":"10.156.230.230"}

以 JSON 格式列出与主机名对应的主机名、IP 地址和端口。它与 DNS SRV 记录查找相同。

注意:HTTP 界面仅解析 Mesos 域中的主机名。

    输出应类似于: