From 47642a0badc714447b8a7d264b481e2a63e82243 Mon Sep 17 00:00:00 2001 From: "bingshen.wbs" Date: Wed, 6 Nov 2019 16:39:05 +0800 Subject: [PATCH] fix kubelet failed to start on setting hugetlb limits in non-exist cgroup dir cause by kubelet startup be interrupted on setting list of cgroups In the 'cgroupManagerImpl.Exists' not check&recreate the hugetlb cgroup dir. Then setting the limits in non-exist cgroup dir will cause kubelet start failed. Signed-off-by: bingshen.wbs --- pkg/kubelet/cm/cgroup_manager_linux.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkg/kubelet/cm/cgroup_manager_linux.go b/pkg/kubelet/cm/cgroup_manager_linux.go index 2e3968f4feb..96e3edcae49 100644 --- a/pkg/kubelet/cm/cgroup_manager_linux.go +++ b/pkg/kubelet/cm/cgroup_manager_linux.go @@ -257,6 +257,9 @@ func (m *cgroupManagerImpl) Exists(name CgroupName) bool { if utilfeature.DefaultFeatureGate.Enabled(kubefeatures.SupportPodPidsLimit) || utilfeature.DefaultFeatureGate.Enabled(kubefeatures.SupportNodePidsLimit) { whitelistControllers.Insert("pids") } + if _, ok := m.subsystems.MountPoints["hugetlb"]; ok { + whitelistControllers.Insert("hugetlb") + } var missingPaths []string // If even one cgroup path doesn't exist, then the cgroup doesn't exist. for controller, path := range cgroupPaths {