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]> 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 >

