[kata-dev] Namespaces in the host

Marco Vedovati mvedovati at suse.com
Fri Sep 28 10:18:37 UTC 2018


Hi Julio,

if you haven't already, you can take a look at what runc is doing.

It forks a child process that re-execute itself (exec /proc/self/exe). 
Only the child process joins the namespaces with `setns` called from C
code using cgo [1]. The child process is controlled from the parent
with commands over pipes.


Marco 

[1]: 
https://github.com/opencontainers/runc/tree/master/libcontainer/nsenter


On Thu, 2018-09-27 at 17:27 +0000, Montes, Julio wrote:
> Hi All
> 
> Currently Kata Containers only supports network namespaces in the host,
> other namespaces are not supported. This week I started to work on this
> but I faced some issues with the mount namespace in Go, the main issue
> is that a multithread process can't be reassociated with a new mount
> namespace [1] as it's reported here [2]. A solution for this might be
> to write a new binary in C to create and join namespaces and start the
> kata components (shim, qemu, etc) inside it, also this binary would be
> used to clean up (unmount, etc) the containers. Another solution might
> be to use a C constructor in Go (cgo) to create and join the namespace,
> but that means kata-runtime will run inside the namespace. 
> 
> If you are already working on this or know how to deal with this issue,
> please let me know. In the meantime I'll try to figure out how.
> 
> 
> Thank you!
> 
> --
> Julio
> 
> 
> [1] - http://man7.org/linux/man-pages/man2/setns.2.html
> [2] - https://github.com/golang/go/issues/8676
> _______________________________________________
> kata-dev mailing list
> kata-dev at lists.katacontainers.io
> http://lists.katacontainers.io/cgi-bin/mailman/listinfo/kata-dev




More information about the kata-dev mailing list