Hi, I am also facing similar problems with service discovery and load balancing. It would be great if mesos-dns could resolve _task._protocol.framework.domain queries to round-robin IP:PORT combinations. I am not an expert in DNS protocols and probably this functionality would breach it but even so it would help a lot. If for some reason the community would prefer this behaviour out of the core implementation of mesos-dns, we could solve it by implementing ways to extend it with plugins. This way we could extend mesos-dns to work with other frameworks and have extra functionalities such as implementing different load-balancing patterns.
What do you think of it? I haven’t done anything in GO but would be willing to contribute to this if you all agree. > On 30 Jun 2015, at 03:06, James DeFelice <[email protected]> wrote: > > Can you go with option 1, using the http api of mesos-dns to pull a json > srv-ish record, parse it with jq, and configure your app accordingly? > > On Jun 29, 2015 3:24 PM, "Andras Kerekes" <[email protected] > <mailto:[email protected]>> wrote: > Hi, > > > > Is there a preferred way to do service discovery in Mesos via mesos-dns > running on CoreOS? I’m trying to implement a simple app which consists of two > docker containers and one of them (A) depends on the other (B). What I’d like > to do is to tell container A to use a fix dns name (containerB.marathon.mesos > in case of mesos-dns) to find the other service. There are at least 3 > different ways I think it can be done, but the 3 I found all have some > shortcomings. > > > > 1. Use SRV records to get the port along with the IP. Con: I’d prefer > not to build the logic of handling SRV records into the app, it can be a > legacy app that is difficult to modify > > 2. Use haproxy on slaves and connect via a well-known port on > localhost. Cons: the Marathon provided script does not run on CoreOS, also I > don’t know how to run haproxy on CoreOS outside of a docker container. If it > is running in a docker container, then how can it dynamically allocate ports > on localhost if a new service is discovered in Marathon/Mesos? > > 3. Use dedicated port to bind the containers to. Con: I can have only > as many instances of a service as many slaves I have because they bind to the > same port. > > > > What other alternatives are there? > > > > Thanks, > > Andras >

