From 79be8be10edba1c33d8a0419f10ac6ba90e34e0e Mon Sep 17 00:00:00 2001 From: Giuseppe Scrivano Date: Mon, 13 Jul 2020 09:40:44 +0200 Subject: [PATCH] kubelet, cgroupv2: make hugetlb optional make the hugetlb controller optional when cgroup v2 is used. Closes: https://github.com/kubernetes/kubernetes/issues/92933 Signed-off-by: Giuseppe Scrivano --- pkg/kubelet/cm/cgroup_manager_linux.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkg/kubelet/cm/cgroup_manager_linux.go b/pkg/kubelet/cm/cgroup_manager_linux.go index b0986bd3767..8c671d30a65 100644 --- a/pkg/kubelet/cm/cgroup_manager_linux.go +++ b/pkg/kubelet/cm/cgroup_manager_linux.go @@ -497,6 +497,14 @@ func setResourcesV2(cgroupConfig *libcontainerconfigs.Cgroup) error { } cgroupConfig.Resources.SkipDevices = true + // if the hugetlb controller is missing + supportedControllers := getSupportedUnifiedControllers() + if !supportedControllers.Has("hugetlb") { + cgroupConfig.Resources.HugetlbLimit = nil + // the cgroup is not present, but its not required so skip it + klog.V(6).Infof("Optional subsystem not supported: hugetlb") + } + manager, err := cgroupfs2.NewManager(cgroupConfig, cgroupConfig.Path, false) if err != nil { return fmt.Errorf("failed to create cgroup v2 manager: %v", err)