Use cases for multiple uid mapping?

Christian Brauner christian.brauner at ubuntu.com
Fri Sep 25 08:13:07 UTC 2020


On Thu, Sep 24, 2020 at 07:09:21PM +0200, Alban Crequy wrote:
> On Tue, 1 Sep 2020 at 16:53, Eric W. Biederman <ebiederm at xmission.com> wrote:
> >
> > "Serge E. Hallyn" <serge at hallyn.com> writes:
> >
> > > On Fri, Aug 28, 2020 at 10:17:16AM -0500, Eric W. Biederman wrote:
> > >>
> > >> We had a discussion in the hackroom at LPC talking about use cases for
> > >> a shiftfs style setup where there are different mappings of uids to
> > >> disk.
> > >>
> > >> In the discussion we had a couple of ideas of kernel developments
> > >> we should look at that address some of these.
> > >>
> > >> - Fix rlimits in user namespaces (This potentially allows multiple
> > >>   containers to run with the same userids simplifying the mapping
> > >>   problem).
> > >>
> > >> - Look at extending kuid_t to 64bits and using the highbits to
> > >>   implement uids that are private to user namespaces and don't
> > >>   map out.
> > >>
> > >> - Look at ways for allowing setgroups unprivileged.
> > >>
> > >>
> > >> Together this has the potential that the existing uid & gid mappings
> > >> will be able to function the same as the proposed fusid mappings. Fingers crossed.
> > >>
> > >>
> > >> I had some problems with audio and a lot of people were talking
> > >> quickly.  So I did not manage to capture everyone's use cases.   And I
> > >> definitely was not able to see how everyone's use cases interacted with
> > >> the changes we are looking at.
> > >>
> > >> I know for certain I missed Serge's usecase (apologies).
> > >>
> > >> Can people follow up to this and report their use cases?
> > >
> > > Sorry - I'll do so later this week.
> >
> > Thank you.
> >
> > I know we have the OCI use case of overlayfs and sharing storage
> > between containers.
> 
> Is there a description of this use case, and ideas of possible solutions?
> 
> There was a use case that was brought to a recent Kubernetes sig-node
> meeting, but I am not sure it is the same one, so I'll describe this
> one.
> 
> We're working to enable user namespaces in Kubernetes with two possible setups:
> 1. Each Kubernetes pod has its own userns but with the same user id
> mapping (to make it easy to manage shared volumes)
> 2. Each Kubernetes pod has its own userns with non-overlapping user id
> mapping (providing additional isolation between pods)
> 
> Pods could be executed with a Kubernetes sidecar such as Envoy,
> meaning that if there are 'n' pods running on a node, there will be
> 'n' containers running the Envoy container image. In the second setup,
> each Envoy container will have a different user id mapping.
> 
> The Envoy container image will be snapshotted in as many copies, and
> each copy will be chown'ed appropriately for each non-overlapping user
> id mapping. Each copy will then be used as the lowerdir for the
> overlayfs rootfs of the container.
> 
> This results in a waste of disk space. Without user namespaces, we
> don't have this problem, since the same directory can be used as
> lowerdir for each container's overlayfs rootfs.
> 
> This is not specific to sidecars, but they exacerbate the problem.
> 
> I was not present in the Plumbers discussions, so I don't know if
> possible solutions were discussed. For example: could overlayfs get a

Hey Alban,

Tycho, Aleksa, Serge and I are collaborating on a patchset that intends
to cover all of these use-cases and that we hope to have ready for
review early after the next merge window.

Christian


More information about the Containers mailing list