Hi,
I can’t access my application using mesos-dns. Neither port 8123 nor 8080
responding. I think I miss something in configuration but can’t find problem
myself.
I have a very basic java application that listen on port 8080. I have created
docker image and deployed this application to marathon.
My deployment configuration is following:
$ cat app-slick.json
{
"container": {
"type": "DOCKER",
"docker": {
"image": "edvorkin/slick-swagger:1",
"network": "BRIDGE",
"portMappings": [
{ "containerPort": 8080, "hostPort": 0, "servicePort": 9000,
"protocol": "tcp" }
]
}
},
"cmd": "java -jar /tmp/spray-slick-swagger-assembly-0.0.2.jar Boot",
"id": "slick-swagger-demo",
"instances": 1,
"cpus": 0.1,
"mem": 256,
"constraints": [
["hostname", "UNIQUE"]
]
}
Application successfully deployed to 2 nodes and assigned random port of 31990
and 31000 on each node.
Now I installed and configured Mesos-DNS with config.json
{
"zk": "zk://172.31.50.58:2181,172.31.50.59:2181,172.31.50.60:2181/mesos",
"refreshSeconds": 60,
"ttl": 60,
"domain": "mesos",
"port": 53,
"resolvers": ["172.31.0.2"],
"timeout": 5,
"email": "root.mesos-dns.mesos"
}
and I got following:
$ dig slick-swagger-demo.marathon.mesos
; <<>> DiG 9.9.4-RedHat-9.9.4-18.el7_1.1 <<>> slick-swagger-demo.marathon.mesos
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20376
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;slick-swagger-demo.marathon.mesos. IN A
;; ANSWER SECTION:
slick-swagger-demo.marathon.mesos. 60 IN A 172.31.11.202
slick-swagger-demo.marathon.mesos. 60 IN A 172.31.11.203
;; Query time: 1 msec
;; SERVER: 54.86.164.193#53(54.86.164.193)
;; WHEN: Thu Jul 16 15:23:04 UTC 2015
;; MSG SIZE rcvd: 83
curl http://localhost:8123/v1/services/_slick-swagger-demo._tcp.marathon.mesos
|python -m json.tool
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 289 100 289 0 0 1916 0 --:--:-- --:--:-- --:--:-- 1926
[
{
"host": "slick-swagger-demo-15491-s42.marathon.mesos.",
"ip": "172.31.11.203",
"port": "31990",
"service": "_slick-swagger-demo._tcp.marathon.mesos"
},
{
"host": "slick-swagger-demo-20495-s43.marathon.mesos.",
"ip": "172.31.11.202",
"port": "31000",
"service": "_slick-swagger-demo._tcp.marathon.mesos"
}
]
But when I try to access my application using dns name, I can’t get get
response.
curl http://slick-swagger-demo.marathon.mesos:8080
curl: (7) Failed connect to slick-swagger-demo.marathon.mesos:8080; Connection
refused
curl slick-swagger-demo.marathon.mesos:8123
404: Page Not Found
curl slick-swagger-demo.marathon.mesos:31990 – produce desired results, but
that binded to a random port.
How do I configure mapping between random ports and my service?
I would like to be able to access my server on port 80 for example
Curl http://slick-swagger-demo.marathon.mesos
Thanks
Eugene
----------------------------------------------------------------------
This message and any attachments are intended only for the use of the addressee
and may contain information that is privileged and confidential. If the reader
of the message is not the intended recipient or an authorized representative of
the intended recipient, you are hereby notified that any dissemination of this
communication is strictly prohibited. If you have received this communication
in error, notify the sender immediately by return email and delete the message
and any attachments from your system.