Re: preparing a host on task launch event

2015-02-22 Thread Adam Bordelon
Michael, check out https://issues.apache.org/jira/browse/MESOS-2060 for a
recent feature to provide task launch hooks like you're asking about,
although it acts as a master/slave-specific library rather than a
task-specific prep step, so you'll have to customize the behavior based on
some information about the task.
Alternatively, you could use the upcoming Persistent Volumes feature (
https://issues.apache.org/jira/browse/MESOS-1554) in such a way that you
first launch a task to prep the state in a volume, and after its completion
launch the long-running docker task that uses that volume.

On Thu, Feb 19, 2015 at 6:45 PM, Michael Neale michael.ne...@gmail.com
wrote:

 (in a vain help to try and clarify) - I started with a similar pattern to
 what I have seen with redis - people ensure there is a redis on each host
 listening on a known port so apps can use it (by setting a unique
 constraint on host name, and then making sure number of instances == size
 of cluster). I started doing the same thing with a service that provides
 the volume data - this works great - but has to prepare the data *before*
 the docker container launches - or perhaps just as it is launching (docker
 can't see host mounts in bind mounts after it has launched - for boring
 reasons...).

 On Fri Feb 20 2015 at 1:38:20 PM Michael Neale michael.ne...@gmail.com
 wrote:

 well not specifically talking about the mesos containerizer - it was just
 something I tried. The main aim is to deploy containers that can be bind
 mounted in a volume which is prepared on the host - the container apps
 (docker apps) being deployed don't particularly care how that was prepared
 - just that it was there. I was hoping for another task (or something) that
 had run before had prepared it (in some cases it may simply be rsyncing
 some data in place, in others, mounting a device - result is the same - a
 volume/path can be provided to the docker container).

 Does that make a little more sense ? (a bit hard to explain).

 On Fri Feb 20 2015 at 1:23:46 PM Tim Chen t...@mesosphere.io wrote:

 Hi Michael,

 Can you elaborate how you use the Mesos containerizer to you prepare
 your host?

 In general hooks are exactly for this purpose, which is underway right
 now for defining the hooks in Mesos and also allowing it to be customized.

 Tim

 On Thu, Feb 19, 2015 at 6:18 PM, Michael Neale michael.ne...@gmail.com
 wrote:

 I am currently using marathon and have a need to prepare the host in
 some cases (currently looking at mounting a volume that the task may need -
 how that device is created is out of band BTW).

 In theory this would be ideally done on some hook - but I am not sure
 where (the hook would be called before the task proper is launched) - it
 could be simply as part of a task launch script if a plain command.

 With the docker containerizer - I can actually use priv mode and
 control the host (if I want) - but then I would like to have this task run
 separately to the main marathon long running task (as it has extra access
 which normally apps don't need) - I could bind mount in the docker socket
 and launch a non priv container from within the mesos launched start
 container ...

 I can also use the default (?) mesos containerizer - which seems to let
 me run docker commands (ie bypassing the firstclass support in mesos for
 docker) but this feels like I am doing it wrong - is that wrong?

 So in summary: is there a concept of a pre-launch step, and should I be
 working around the docker containerizer by using the mesos default
 containerizer instead?

 pointers appreciated.





Re: Error when creating a new HA cluster on EC2

2015-02-22 Thread CCAAT

On 02/22/2015 06:35 AM, i...@roybos.nl wrote:


Last friday i put some Ansible scripts on github for provisoning a multi
AZ cluster on AWS.
You could have a look at it
https://github.com/roybos/aws-mesos-marathon-cluster and maybe it helps you.

It basically creates a VPC within an AWS region and setups 1 node in 3 AZ's.
All nodes are currently equal(mesos master and slave are on the same
machine) which is fine for smaller clusters for let's say 3 to 30 nodes.

Roy Bos


Very cool. I'm new to ansible, but I like what I've learns so far.
What would be cool is if some thing like this ansible example was for
just 3 (generic linux ) system that are installed  from sources. No
binaries, no distro specific packages, just pure, raw sources. That
way it would provide a baseline for installation on all sorts of linux
(embedded, vm, container, uncommon_distro, different architectures like 
arm64 etc etc) based systems.



Any ansible guides for generic mesos installs from sources would be
of keen interests to many folks.

After that in-house from sources methodology is viable, I'm quite 
certain companies will want to augment their local (in-house) cluster 
resources, with resources from vendors, particularly in a dynamic mode 
of utilization. Therefore, within the  in-house resources mixed 
(supplemented) with vendor resources is the future of cluster computing. 
ymmv.


Sadly, I see little progress on this open systems approach, and that 
concerns me greatly for the viability of the mesos cluster. Is it indeed 
going to be limited to large corporations trying to sell something 
nobody wants; or are there going to be open source methodologies 
developed that streamline the installation of mesos

inside of a medium size company with modest resources.

Ansible is the key technology here combined with building up a mesos
cluster FROM 100% SOURCES.


Put that in your presentation at mesos con(artists?)


James






Re: preparing a host on task launch event

2015-02-22 Thread Michael Neale
Hi Adam - yes the hooks one possibly fit the bill - not entirely clear how
to use it yet. The peristent one *should* work, but the problem for me
isn't so much the management of volume, but the preparation of it (I have
no need to make tasks sticky when the data can freely move around anyway).

On Sun Feb 22 2015 at 8:04:58 PM Adam Bordelon a...@mesosphere.io wrote:

 Michael, check out https://issues.apache.org/jira/browse/MESOS-2060 for a
 recent feature to provide task launch hooks like you're asking about,
 although it acts as a master/slave-specific library rather than a
 task-specific prep step, so you'll have to customize the behavior based on
 some information about the task.
 Alternatively, you could use the upcoming Persistent Volumes feature (
 https://issues.apache.org/jira/browse/MESOS-1554) in such a way that you
 first launch a task to prep the state in a volume, and after its completion
 launch the long-running docker task that uses that volume.

 On Thu, Feb 19, 2015 at 6:45 PM, Michael Neale michael.ne...@gmail.com
 wrote:

 (in a vain help to try and clarify) - I started with a similar pattern to
 what I have seen with redis - people ensure there is a redis on each host
 listening on a known port so apps can use it (by setting a unique
 constraint on host name, and then making sure number of instances == size
 of cluster). I started doing the same thing with a service that provides
 the volume data - this works great - but has to prepare the data *before*
 the docker container launches - or perhaps just as it is launching (docker
 can't see host mounts in bind mounts after it has launched - for boring
 reasons...).

 On Fri Feb 20 2015 at 1:38:20 PM Michael Neale michael.ne...@gmail.com
 wrote:

 well not specifically talking about the mesos containerizer - it was
 just something I tried. The main aim is to deploy containers that can be
 bind mounted in a volume which is prepared on the host - the container
 apps (docker apps) being deployed don't particularly care how that was
 prepared - just that it was there. I was hoping for another task (or
 something) that had run before had prepared it (in some cases it may simply
 be rsyncing some data in place, in others, mounting a device - result is
 the same - a volume/path can be provided to the docker container).

 Does that make a little more sense ? (a bit hard to explain).

 On Fri Feb 20 2015 at 1:23:46 PM Tim Chen t...@mesosphere.io wrote:

 Hi Michael,

 Can you elaborate how you use the Mesos containerizer to you prepare
 your host?

 In general hooks are exactly for this purpose, which is underway right
 now for defining the hooks in Mesos and also allowing it to be customized.

 Tim

 On Thu, Feb 19, 2015 at 6:18 PM, Michael Neale michael.ne...@gmail.com
  wrote:

 I am currently using marathon and have a need to prepare the host in
 some cases (currently looking at mounting a volume that the task may need 
 -
 how that device is created is out of band BTW).

 In theory this would be ideally done on some hook - but I am not sure
 where (the hook would be called before the task proper is launched) - it
 could be simply as part of a task launch script if a plain command.

 With the docker containerizer - I can actually use priv mode and
 control the host (if I want) - but then I would like to have this task run
 separately to the main marathon long running task (as it has extra access
 which normally apps don't need) - I could bind mount in the docker socket
 and launch a non priv container from within the mesos launched start
 container ...

 I can also use the default (?) mesos containerizer - which seems to
 let me run docker commands (ie bypassing the firstclass support in mesos
 for docker) but this feels like I am doing it wrong - is that wrong?

 So in summary: is there a concept of a pre-launch step, and should I
 be working around the docker containerizer by using the mesos default
 containerizer instead?

 pointers appreciated.