Customized framework with Mesos persistent volumn can come to your desired feature, IMO. Which will recover the volumn after framework deregistered.
> 在 2015年11月10日,23:43,Aaron Carey <[email protected]> 写道: > > Yeah.. it'd be nice to do it natively though :) > > From: Plotka, Bartlomiej [[email protected]] > Sent: 10 November 2015 15:38 > To: [email protected] > Subject: RE: Custom python executor with Docker > > This is somehow possible using Kubernetes over Mesos: > https://github.com/kubernetes/kubernetes/blob/master/docs/getting-started-guides/mesos.md > > Kind Regards, > Bartek Plotka > > From: Aaron Carey [mailto:[email protected]] > Sent: Tuesday, November 10, 2015 4:33 PM > To: [email protected] > Subject: RE: Custom python executor with Docker > > We would also be interested in some sort of standardised DockerExecutor which > would allow us to add pre and post launch steps. > > Also having the ability to run two containers together as one task would be > very useful (ie on the same host and linked together) > > From: Tom Fordon [[email protected]] > Sent: 12 August 2015 00:28 > To: [email protected] > Subject: Re: Custom python executor with Docker > > We ended up implementing a solution where we did the pre/post steps as > separate mesos tasks and adding logic to our scheduler to ensure they were > run on the same machine. If anybody knows of a standard / openly available > DockerExecutor like what is described below, my team would be greatly > interested. > > On Fri, Aug 7, 2015 at 4:01 AM, Kapil Malik <[email protected]> wrote: > Hi, > > We have a similar usecase while running multi-user workloads on mesos. Users > provide docker images encapsulating application logic, which we (we = say > some “Central API”) schedule on Chronos / Marathon. However, we need to run > some standard pre / post steps for every docker submitted by users. We have > following options – > > 1. Ask every user to embed their logic inside a pre-defined docker > template which will perform pre/post steps. > è This is error prone, makes us dependent on whether the users followed > template, and not very popular with users either. > > 2. Extend every user docker (FROM <>) and find a way to add pre-post > steps in our docker. Refer this docker when scheduling on chronos / marathon. > è Building new dockers does not scale as users and applications grow > > 3. Write a custom executor which will perform the pre-post steps and > manage the user docker lifetime. > è Deals with user docker lifetime and is obviously complex. > > Is there a standard / openly available DockerExecutor which manages the > docker lifetime and which I can extend to build my custom executor? This way > I will be concerned only with my custom logic (pre/post steps) and still get > benefits of a standard way to manage docker containers. > > Btw, thanks for the meaningful discussion below, it is very helpful. > > Thanks and regards, > > Kapil Malik | [email protected] | 33430 / 8800836581 > > From: James DeFelice [mailto:[email protected]] > Sent: 09 April 2015 18:12 > To: [email protected] > Subject: Re: Custom python executor with Docker > > If you can run the pre/post steps in a container then I'd recommend building > a Docker image that includes your pre/post step scripting + your algorithm > and launching it using the built-in mesos Docker containerizer. It's much > simpler than managing the lifetime of the Docker container yourself. > > On Thu, Apr 9, 2015 at 8:29 AM, Tom Fordon <[email protected]> wrote: > Thanks for all the responses, I really appreciate the help. Let me try to > state my problem more clearly > > Our project is performing file-based data processing. I would like to keep > the actual algorithm as contained as possible since we are in an R&D setting > and will be getting untested code. We have some pre/post steps that need to > be run on the same box as the actual algorithm: downloading/uploading files > and database calls. > > We can run the pre/post steps and algorithm within the same container. The > algorithm will be a little less contained, but it will work. > > Docker letting you specify a cgroup parent is really exciting. If I invoke a > docker container with the executor as the cgroup-parent are there any other > steps I need to perform? Would I need to do anything special to make mesos > aware of the resource usage, or is that handled since the docker process > would be in the executors cgroup? > > Thanks again, > Tom > > On Tue, Apr 7, 2015 at 8:10 PM, Timothy Chen <[email protected]> wrote: > Hi Tom(s), > > Tom Arnfeld is right, if you want to launch your own docker container > in your custom executor you will have to handle all the issues > yourself and not able to use the Docker containerizer at all. > > Alternatively, you can actually launch your custom executor in a > Docker container by Mesos, by specifying the ContainerInfo in the > ExecutorInfo. > What this means is that your custom executor is already running in a > docker container, and you can do your custom logic afterwards. This > does means you can simply just launch multiple containers in the > executor anymore. > > If there is something you want to do and doesnt' fit these let us know > what you're trying to achieve and we can see what we can do. > > Tim > > On Tue, Apr 7, 2015 at 4:15 PM, Tom Arnfeld <[email protected]> wrote: > > It's not possible to invoke the docker containerizer from outside of Mesos, > > as far as I know. > > > > If you persue this route, you can run into issues with orphaned containers > > as your executor may die for some unknown reason, and the container is still > > running. Recovering from this can be tricky business, so it's better if you > > can adapt your framework design to fit within the Mesos Task/Executor > > pattern. > > > > -- > > > > Tom Arnfeld > > Developer // DueDil > > > > (+44) 7525940046 > > 25 Christopher Street, London, EC2A 2BS > > > > > > On Mon, Apr 6, 2015 at 7:00 PM, Vinod Kone <[email protected]> wrote: > >> > >> Tim, do you want answer this? > >> > >> On Wed, Apr 1, 2015 at 7:27 AM, Tom Fordon <[email protected]> wrote: > >>> > >>> Hi. I'm trying to understand using docker within a custom executor. For > >>> each of my tasks, I would like to perform some steps on the node before > >>> launching a docker container. I was planning on writing a custom python > >>> executor for this, but I wasn't sure how to launch docker from within this > >>> executor. > >>> > >>> Can I just call docker in a subprocess using the ContainerInfo from the > >>> Task? If I do this, how does the Containerizer fit in? > >>> > >>> Thank you, > >>> Tom Fordon > >> > >> > > > > > > > -- > James DeFelice > 585.241.9488 (voice) > 650.649.6071 (fax) > > --------------------------------------------------------------------- > Intel Technology Poland sp. z o.o. > ul. Słowackiego 173 | 80-298 Gdańsk | Sąd Rejonowy Gdańsk Północ | VII > Wydział Gospodarczy Krajowego Rejestru Sądowego - KRS 101882 | NIP > 957-07-52-316 | Kapitał zakładowy 200.000 PLN. > Ta wiadomość wraz z załącznikami jest przeznaczona dla określonego adresata i > może zawierać informacje poufne. W razie przypadkowego otrzymania tej > wiadomości, prosimy o powiadomienie nadawcy oraz trwałe jej usunięcie; > jakiekolwiek przeglądanie lub rozpowszechnianie jest zabronione. > This e-mail and any attachments may contain confidential material for the > sole use of the intended recipient(s). If you are not the intended recipient, > please contact the sender and delete all copies; any review or distribution > by others is strictly prohibited.

