Running services on all slaves

2015-01-06 Thread Itamar Ostricher
Hi, I was wondering if the best approach to do what I want is to use mesos itself, or other Linux system tools. There are a bunch of services that our framework assumes are running on all participating slaves (e.g. logging service, data-bridge service, etc.). One approach to do that is in the inf

Re: Running services on all slaves

2015-01-06 Thread David Greenberg
We've been experimenting with using Marathon to do this. We've found a couple issues in making in smooth, but those bugs are all in the process of being fixed. Within the next few weeks, I think that Marathon will be a solid choice for this use case. On Tue, Jan 6, 2015 at 4:05 AM, Itamar Ostriche

Re: Running services on all slaves

2015-01-06 Thread Tom Arnfeld
I'm not sure if I'm fully aware of the use case but if you use a different framework (aka Marathon) to launch these services, should the service die and need to be re-launched (or even the slave restarts) could you not be in a position where another framework has consumed all resources on that s

Re: Running services on all slaves

2015-01-06 Thread David Greenberg
Tom is absolutely correct--you also need to ensure that your "special tasks" run as a user which is assigned a role w/ a special reservation to ensure they can always launch. On Tue, Jan 6, 2015 at 2:38 PM, Tom Arnfeld wrote: > I'm not sure if I'm fully aware of the use case but if you use a dif

Re: Running services on all slaves

2015-01-06 Thread Charles Baker
It seems like an 'anti-pattern' (for lack of a better term) to attempt to force locality on a bunch of dependency services launched through Marathon. I thought the whole idea of Mesos (and Marathon) was to treat the data center as one giant computer in which it fundamentally should not matter where

Re: Running services on all slaves

2015-01-06 Thread Tom Arnfeld
I completely agree with Charles, though I think I can appreciate what you're trying to do here. Take the log aggregation service as an example, you want that on every slave to aggregate logs, but want to avoid using yet another layer of configuration management to deploy it. I'm of the opini

Re: Running services on all slaves

2015-01-07 Thread Itamar Ostricher
Thanks everybody for all your insights! I totally agree with the last response from Tom. The per-node services definitely belong to the level that provisions the machine and the mesos-slave service itself (in our case, pre-configured GCE images). So I guess the problem I wanted to solve is more g

Re: Running services on all slaves

2015-01-08 Thread Tim Chen
Hi Itamar, You can pass the amount of CPU and memory that the slave is advertising to the master for scheduling as part of the resources slave flag. So you can only schedule 12 cpus and leave 4 for your services if you want. That said, there are discussions about launching multiple tasks co-locat

Re: Running services on all slaves

2015-01-08 Thread Tom Arnfeld
That's a great point Itamar, and something we discussed quite some time ago here but never implemented. These are the first two options that spring to mind that I can remember... - Are you using docker containers for your tasks? Why not use containers pre-configured on the box for these serv

Re: Running services on all slaves

2015-01-08 Thread Itamar Ostricher
Thanks again! We're not (yet) using docker (or any other form of containerization for that matter). I think in the meantime the approach of sub-advertising resources should work for us. As we're spinning clusters up and down on demand on GCE, I can probably do this pretty easily by adding these l