[ 
https://issues.apache.org/jira/browse/MESOS-349?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14646230#comment-14646230
 ] 

James DeFelice commented on MESOS-349:
--------------------------------------

I have a specific use case that doesn't appear to be solved by the file system 
translator. The kubernetes-mesos framework schedules a single 
"kubelet-executor" process that runs on a slave for all k8s-mesos tasks 
(currently uses mesos containerizer). This kubelet proc creates mounts in 
$sandbox/pods/volumes according to volumes delared in k8s pod specs. Many 
different types of mount-types are supported by k8s volume plugins (e.g. nfs, 
iscsi, bind, tmpfs). These mount points are passed to a 'docker run' invocation 
so that k8s pods can see data in these mounted volume directories.

Running the kubelet in an isolated filesystem breaks this model because the 
changes to the mount table of the kubelet-executor (running in an isolated 
mount-ns) are not visible in the hosts's mount-ns (where docker is looking when 
spinning up CT's).

There is no guaranteed way to clean up these mount points upon termination of 
the kubelet-executor if the process terminates abnormally in some way. The 
slave GC algorithm will remove the sandbox files but will not clean up the 
mount points.

I'd like to re-open this issue for discussion but JIRA won't let me.

> remove mounts when garbage collecting tasks
> -------------------------------------------
>
>                 Key: MESOS-349
>                 URL: https://issues.apache.org/jira/browse/MESOS-349
>             Project: Mesos
>          Issue Type: Improvement
>          Components: slave
>            Reporter: Jonathan Boulle
>            Priority: Minor
>
> It would be extremely helpful if the GC process on a slave (which is 
> currently effectively just an {{rm -rf}}) could also remove mounts within the 
> executor sandbox. 
> This would allow sandboxes to incorporate mounts from different filesystems, 
> for example, or to utilise chroots (which require various mounts to function 
> properly - e.g. {{/proc}} and {{/sys}} on Linux) - and still be cleaned up by 
> the mesos slave without any external intervention.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to