Mesos-DNS 可在 https://github.com/mesosphere/mesos-dns 网站上获得。它需要 Go 编译器,如果 Go 编译器可用,在任何平台上构建它都很简单。
源代码本身包含一个示例配置文件,该文件可在 https://github.com/mesosphere/mesos-dns/blob/master/config.json.sample 网站上找到。
以下是用于该设置的示例配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
{ "zk": "zk://192.168.122.48:2181/mesos", "masters": ["192.168.122.48:5050"], "refreshSeconds": 60, "ttl": 60, "domain": "mesos", "port": 53, "resolvers": ["8.8.8.8"], "timeout": 5, "listener": "0.0.0.0", "SOAMname": "ns1.mesos", "SOARname": "root.ns1.mesos", "SOARefresh": 60, "SOARetry": 600, "SOAExpire": 86400, "SOAMinttl": 60, "dnson": true, "httpon": true, "httpport": 8125, "externalon": true, "IPSources": ["netinfo", "mesos", "host"], "EnforceRFC952": false }
其中:
zk 是运行 ZooKeeper 的位置
masters 是运行主节点的位置
domain 是 Mesos 集群的域名
port 是 Mesos DNS 端口
listener 是绑定到 mesos-dns 的 IP
resolver 是外部 DNS 服务器
httpport:将运行 mesos-dns HTTP API 的端口
有关 mesos-DNS 配置参数的更多信息,请参阅 Mesos-DNS 配置参数 网站。
您可以在任何主机上运行 mesos-dns 目录或通过 Marathon 框架运行它。例如:
1
curl -X POST :8080/v2/apps -d @mesos-dns.json -H "Content-type: application/json"
这将通过 Marathon 启动 mesos-dns。
1
curl -X POST :8080/v2/apps -d @mesos-dns.json -H "Content-type: application/json"
这将通过 Marathon 启动 mesos-dns。
1 2 3 4 5 6 7 8
# cat mesos-dns.json { "cmd": "<path>/mesos-dns -config=<path>/config.json", "cpus": 1.0, "mem": 1024, "id": "mesos-dns", "instances": 1, }
使用以下命令直接在主机上运行 mesos-dns:
1
# mesos-dns -v=1 -config=<path_to_config_json>
使用以下格式对该服务命令:
1
<service-name>.<framework>.<domain-name>
因此,MySQL 服务 DNS 名称将是 mysql.marathon.mesos