kubelet: new kubelet config option for disabling group oom kill

Signed-off-by: utam0k <k0ma@utam0k.jp>
This commit is contained in:
utam0k
2024-10-14 14:46:28 +09:00
parent 3036d107a0
commit 4f909c14a0
25 changed files with 253 additions and 45 deletions

View File

@@ -24,13 +24,19 @@ import (
libcontainercgroups "github.com/opencontainers/runc/libcontainer/cgroups"
kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config"
"k8s.io/utils/ptr"
)
// validateKubeletOSConfiguration validates os specific kubelet configuration and returns an error if it is invalid.
func validateKubeletOSConfiguration(kc *kubeletconfig.KubeletConfiguration) error {
if kc.FailCgroupV1 && !libcontainercgroups.IsCgroup2UnifiedMode() {
isCgroup1 := !libcontainercgroups.IsCgroup2UnifiedMode()
if kc.FailCgroupV1 && isCgroup1 {
return fmt.Errorf("kubelet is configured to not run on a host using cgroup v1. cgroup v1 support is in maintenance mode")
}
if isCgroup1 && kc.SingleProcessOOMKill != nil && !ptr.Deref(kc.SingleProcessOOMKill, true) {
return fmt.Errorf("invalid configuration: singleProcessOOMKill must not be explicitly set to false when using cgroup v1")
}
return nil
}