what do you mean "only scales to one host"? I have multiple slaves, and I plan to run it on every slave as a service (just like the mesos slave service itself), probably outside of marathon.
On Wed, Aug 5, 2015 at 7:26 PM Shafay Latif <[email protected]> wrote: > But this nginx reverse proxy for docker only scales to one host. Can > someone confirm if it has worked for multiple slaves? > > What is the most common engine everyone uses for load balancing an app > with multiple tasks/docker containers? > > > Shafay Latif > > On Aug 3, 2015, at 9:44 AM, Itamar Ostricher <[email protected]> wrote: > > Thanks! > I also found this automated nginx reverse proxy for docker - > http://jasonwilder.com/blog/2014/03/25/automated-nginx-reverse-proxy-for-docker/ > Looks like a very similar process, that takes advantage of the docker > events API. > I think I was able to get it working. > Ryan, how does this approach compares to bamboo? > Thanks a lot! > > On Sun, Aug 2, 2015 at 1:21 PM Ryan Thomas <[email protected]> wrote: > >> 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 >>> >> >>

