测试部署
1) mesos-master 10.6.2.195
2) mesos-slave 10.6.2.195
3) marathon 10.6.2.195
现在需要在这个marathon上部署mesos-dns.
具体参考链接:
https://mesosphere.github.io/mesos-dns/docs/configuration-parameters.html
https://open.mesosphere.com/advanced-course/building-and-running-mesos-dns/
这个链接比较全面,
下载mesos-dns二进制包.
config的默认样板如下:
{
"zk": "zk://10.6.2.195:2181/mesos",
"masters": ["10.6.2.195:5050"],
"refreshSeconds": 60,
"ttl": 60,
"domain": "mesos",
"port": 53,
"resolvers": ["169.254.169.254"],
"timeout": 5,
"httpon": true,
"dnson": true,
"httpport": 8123,
"externalon": true,
"listener": "10.101.160.16",
"SOAMname": "ns1.mesos",
"SOARname": "root.ns1.mesos",
"SOARefresh": 60,
"SOARetry": 600,
"SOAExpire": 86400,
"SOAMinttl": 60,
"IPSources": ["netinfo", "mesos", "host"]
}
然后创建config.json文件
[root@centos7 mesos-dns]# cat config.json
{
"zk": "zk://10.6.2.195:2181/mesos",
"masters": ["10.6.2.195:5050"],
"refreshSeconds": 60,
"ttl": 60,
"domain": "mesos",
"ns": "ns1",
"port": 53,
"resolvers": ["8.8.8.8"],
"timeout": 5,
"listener": "0.0.0.0",
"SOAMname": "root.ns1.mesos",
"SOARname": "ns1.mesos",
"SOARefresh": 60,
"SOARetry": 600,
"SOAExpire": 86400,
"SOAMinttl": 60,
"dnson": true,
"httpon": true,
"httpport": 8123,
"externalon": true,
"recurseon": true
}
这个时候需要将mesos-dns使用marathon部署
这地方有坑,避免无法启动,需要注意
[root@centos7 mywork]# cat mesos-dns.json
{
"id": "mesos-dns",
"cpus": 0.3,
"mem": 120,
"instances": 1,
"constraints": hostname:CLUSTER:master1,
"cmd": "/usr/local/mesos-dns/mesos-dns -v=1 -config=/usr/local/mesos-dns/config.json "
}
注意的地方:
1) 可以修改id的名称,占用cpus,mem,instances,
2) 注意里面的"hostname"字符串别乱改,CLUSTER字符串别乱改,
3) 里面的master1可以修改,但是不可以随便修改,这个名字需要查看mesos-slave页签中的主机名称
里面的主机名使用圈住的,别乱改,不然你会死的很惨
4) 里面的"cmd"后面的命令,他妈的死活不知道为啥加上sudo就不行,(所以别加sudo!!!!!!!!!!)
"cmd": "sudo /usr/local/mesos-dns/mesos-dns -v=1 -config=/usr/local/mesos-dns/config.json "
把上面的sudo去掉.
接下来将mesos-dns部署到marathon中.
curl -X POST -H "Content-Type: application/json" http://10.6.2.195:8080/v2/apps -d@mesos-dns.json
最后终于搞定了.