If you are going to be pulling data down yourself it would be better to do it from marathon, than mesos-dns as you will have additional data about the tasks available.
On 2 August 2015 at 11:12, tommy xiao <[email protected]> wrote: > mesos-dns store the app's IP and ports. so you can query the mesos-dns to > setup a route rule to define the url. > > 2015-08-02 17:51 GMT+08:00 Ryan Thomas <[email protected]>: > >> Yes it appears that mesos-dns does use SRV records - I should really >> check it out :) >> >> On 2 August 2015 at 10:50, Ryan Thomas <[email protected]> wrote: >> >>> Hey Itamar, >>> >>> Using DNS to redirect to a port will only be possible if you're using >>> SRV records (I'm not sure what mesos-dns uses) but this doesn't really >>> matter as it won't be looked up by the browser. >>> >>> For this solution I have a small daemon written in go running on a >>> number of hosts (that aren't slaves), this locates the marathon master, and >>> pulls down my apps - I tag apps with a "Host" label (something like >>> foo.example.com) and then I create a haproxy config file with backends >>> directed by the host header. There's a few more smarts in it around only >>> pulling apps with a green healthcheck etc. >>> >>> This daemon manages the lifecycle of haproxy on the node - it uses a >>> polling model, not an event driven one from the marathon event stream. >>> >>> Another solution that uses the event-stream is this one >>> https://github.com/QubitProducts/bamboo - it's been a while since I >>> checked it out, but was functional back then. >>> >>> Hope that helps. >>> >>> ryan >>> >>> On 2 August 2015 at 07:10, Itamar Ostricher <[email protected]> wrote: >>> >>>> I use marathon to launch a nginx-docker-container named "my-app", and >>>> set up Mesos-DNS, such that "my-app.marathon.mesos" returns the IP of the >>>> slave running the container (e.g. 10.20.30.40). >>>> >>>> Now, "my-app" is running on some dynamically-allocated port (e.g. >>>> 31001), but I would like http://my-app.marathon.mesos/foo to hit my >>>> app at http://10.20.30.40:31001/foo >>>> >>>> Is there a "best practice" way to achieve this behavior? >>>> >>>> I was thinking about a proxy running on each slave, listening on port >>>> 80, redirecting incoming HTTP requests based on the request host to the >>>> correct port on localhost. The "correct port" can be determined by querying >>>> mesos-dns itself. >>>> >>>> This sounds like a pretty common use-case, so I wondered if anyone can >>>> point me at an existing solution for this. >>>> >>>> Thanks! >>>> - Itamar. >>>> >>> >>> >> > > > -- > Deshi Xiao > Twitter: xds2000 > E-mail: xiaods(AT)gmail.com >

