mesos-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Itamar Ostricher <ita...@yowza3d.com>
Subject Re: Mesos-DNS host based HTTP-redirection from slave to container
Date Wed, 05 Aug 2015 16:47:49 GMT
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 <slatif@apple.com> 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 <itamar@yowza3d.com> 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 <r.n.thomas@gmail.com> 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 <xiaods@gmail.com> 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 <r.n.thomas@gmail.com>:
>>>
>>>> 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 <r.n.thomas@gmail.com> 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 <itamar@yowza3d.com>
>>>>> 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
>>>
>>
>>

Mime
View raw message