Thanks! > You can mix containerizers, although they should not conflict with each > other.
How would I know whether they conflict? For example, the docker one and the default mesos one with certain configuration of isolators etc? Thanks, Alex Benjamin Mahler <benjamin.mah...@gmail.com> wrote on 10/10/2015 03:51:56 AM: > From: Benjamin Mahler <benjamin.mah...@gmail.com> > To: dev <dev@mesos.apache.org> > Date: 10/10/2015 03:52 AM > Subject: Re: custom(ized) conteinerization > > (1) is something that has come up before. The containerizer deals with a > variable sized container, the semantics of a task are defined by the > executor, there is no way for the containerizer to understand the meaning > of a task currently. Some tasks are "special" in that they don't have an > executor (e.g. command task, docker task, etc), and in this case they will > be isolated individually. The main approach that has been discussed to my > knowledge is to have the executor leverage the mesos containerizer to > create nested containers: https://issues.apache.org/jira/browse/MESOS-3333 > > For (2) you should implement a custom network _isolator_ that the mesos > containerizer can use. > > With respect to (3), for regular resources the policy used in Mesos is that > Mesos will never make decisions to kill things, it must be triggered by the > framework or an operator. So this requirement should be met already. For > revocable resources, Mesos may destroy containers, but the framework will > be aware of that when deciding to use them. If they are stateful, you > should use reservations and store the data in a volume. > > You can mix containerizers, although they should not conflict with each > other. > > On Fri, Oct 9, 2015 at 3:04 AM, Alex Glikson <glik...@il.ibm.com> wrote: > > > Triggered by the thread on potential deprecation of external > > containerizer, I wonder what would make sense to do to address the > > following set of requirements: > > 1. I need resource isolation for individual tasks (mainly for QoS > > reasons), so having container per task seems reasonable > > 2. I have rather advanced networking requirements, not easily addressable > > with default mesos containerizer or docker > > 3. Some of the tasks are stateful, so I would really prefer that Mesos > > doesn't kill them, pretty much ever (unless triggered by the framework) > > > > It seems that having my own containerizer would be a reasonable approach. > > But given some of the requirements above, I am trying to figure out > > whether I would at all need to implement "usage" and "update" (and maybe > > even 'destroy', unless it is invoked as part of killTask received from the > > framework?). > > > > Moreover, the isolation mechanism I have in mind does use the same Linux > > features as docker/mesos containerizers (cgroups, namespaces, etc), but in > > a somewhat different manner. So, I wonder whether I can use more than one > > containerizer on the same host -- e.g., to run tasks of my framework on > > the same host as tasks of , say, Marathon+docker (and if yes, how can I > > check whether they will work together). If mixing containerizers in the > > same host is not recommended, is there an easy way to dynamically decide > > which slaves are 'allocated' to which 'type' of resources (e.g., some sort > > of entire-host allocation policy)? > > > > Some thoughts/advice would be really helpful, before we actually spend > > time implementing a new containerizer, one way or another. > > > > Thanks! > > Alex > > > > P.S. Disclaimer: I am new to Mesos, so maybe some (or all) of the above > > doesn't make much sense, so bear with me.. > > > > > >