runc/libcontainer/cgroups/fs2
Kir Kolyshkin 108ee85b82 libct/cgroups: add SkipDevices to Resources
The kubelet uses libct/cgroups code to set up cgroups. It creates a
parent cgroup (kubepods) to put the containers into.

The problem (for cgroupv2 that uses eBPF for device configuration) is
the hard requirement to have devices cgroup configured results in
leaking an eBPF program upon every kubelet restart.  program. If kubelet
is restarted 64+ times, the cgroup can't be configured anymore.

Work around this by adding a SkipDevices flag to Resources.

A check was added so that if SkipDevices is set, such a "container"
can't be started (to make sure it is only used for non-containers).

Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
2020-07-02 15:19:31 -07:00
..
cpu.go cgroups: remove cgroup.Resources.CpuMax 2020-06-09 17:15:38 -07:00
cpuset.go CreateCgroupPath: only enable needed controllers 2020-04-19 16:27:40 -07:00
create.go Revert "CreateCgroupPath: only enable needed controllers" 2020-05-21 12:17:46 +08:00
defaultpath.go cgroups/fs2: don't always parse /proc/self/cgroup 2020-04-28 22:16:36 -07:00
defaultpath_test.go cgroups/fs2: don't always parse /proc/self/cgroup 2020-04-28 22:16:36 -07:00
devices.go libct/cgroups: add SkipDevices to Resources 2020-07-02 15:19:31 -07:00
freezer.go cgroups: add GetFreezerState() helper to Manager 2020-05-13 17:38:45 +10:00
fs2.go fix path error in systemd when stopped 2020-06-02 18:17:43 +08:00
hugetlb.go CreateCgroupPath: only enable needed controllers 2020-04-19 16:27:40 -07:00
io.go CreateCgroupPath: only enable needed controllers 2020-04-19 16:27:40 -07:00
memory.go never write empty string to memory.swap.max 2020-05-16 06:52:14 +08:00
pids.go CreateCgroupPath: only enable needed controllers 2020-04-19 16:27:40 -07:00