diff --git a/pkg/kubelet/cm/cgroup_manager_linux.go b/pkg/kubelet/cm/cgroup_manager_linux.go index 8e9d3571549..d557265617e 100644 --- a/pkg/kubelet/cm/cgroup_manager_linux.go +++ b/pkg/kubelet/cm/cgroup_manager_linux.go @@ -34,6 +34,7 @@ import ( "k8s.io/klog/v2" v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper" + v1 "k8s.io/api/core/v1" utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/kubernetes/pkg/kubelet/metrics" @@ -255,6 +256,15 @@ func (m *cgroupCommon) Destroy(cgroupConfig *CgroupConfig) error { return nil } +func (m *cgroupCommon) SetCgroupConfig(name CgroupName, resource v1.ResourceName, resourceConfig *ResourceConfig) error { + containerConfig := &CgroupConfig{ + Name: name, + ResourceParameters: resourceConfig, + } + + return m.Update(containerConfig) +} + // getCPUWeight converts from the range [2, 262144] to [1, 10000] func getCPUWeight(cpuShares *uint64) uint64 { if cpuShares == nil { diff --git a/pkg/kubelet/cm/cgroup_v1_manager_linux.go b/pkg/kubelet/cm/cgroup_v1_manager_linux.go index 7325ba797c9..0f9d1ee1896 100644 --- a/pkg/kubelet/cm/cgroup_v1_manager_linux.go +++ b/pkg/kubelet/cm/cgroup_v1_manager_linux.go @@ -26,7 +26,6 @@ import ( libcontainercgroups "github.com/opencontainers/runc/libcontainer/cgroups" "github.com/opencontainers/runc/libcontainer/cgroups/fscommon" - v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/util/sets" ) @@ -123,22 +122,6 @@ func (c *cgroupV1impl) GetCgroupConfig(name CgroupName, resource v1.ResourceName return nil, fmt.Errorf("unsupported resource %v for cgroup %v", resource, name) } -// Set resource config for the specified resource type on the cgroup -func (c *cgroupV1impl) SetCgroupConfig(name CgroupName, resource v1.ResourceName, resourceConfig *ResourceConfig) error { - cgroupPaths := c.buildCgroupPaths(name) - cgroupResourcePath, found := cgroupPaths[string(resource)] - if !found { - return fmt.Errorf("failed to build %v cgroup fs path for cgroup %v", resource, name) - } - switch resource { - case v1.ResourceCPU: - return c.setCgroupCPUConfig(cgroupResourcePath, resourceConfig) - case v1.ResourceMemory: - return c.setCgroupMemoryConfig(cgroupResourcePath, resourceConfig) - } - return nil -} - func (c *cgroupV1impl) getCgroupCPUConfig(cgroupPath string) (*ResourceConfig, error) { cpuQuotaStr, errQ := fscommon.GetCgroupParamString(cgroupPath, "cpu.cfs_quota_us") if errQ != nil { diff --git a/pkg/kubelet/cm/cgroup_v2_manager_linux.go b/pkg/kubelet/cm/cgroup_v2_manager_linux.go index d8cf58d79cf..8cea1e2d0ac 100644 --- a/pkg/kubelet/cm/cgroup_v2_manager_linux.go +++ b/pkg/kubelet/cm/cgroup_v2_manager_linux.go @@ -98,22 +98,6 @@ func (c *cgroupV2impl) GetCgroupConfig(name CgroupName, resource v1.ResourceName return nil, fmt.Errorf("unsupported resource %v for cgroup %v", resource, name) } -// Set resource config for the specified resource type on the cgroup -func (c *cgroupV2impl) SetCgroupConfig(name CgroupName, resource v1.ResourceName, resourceConfig *ResourceConfig) error { - cgroupPaths := c.buildCgroupPaths(name) - cgroupResourcePath, found := cgroupPaths[string(resource)] - if !found { - return fmt.Errorf("failed to build %v cgroup fs path for cgroup %v", resource, name) - } - switch resource { - case v1.ResourceCPU: - return c.setCgroupCPUConfig(cgroupResourcePath, resourceConfig) - case v1.ResourceMemory: - return c.setCgroupMemoryConfig(cgroupResourcePath, resourceConfig) - } - return nil -} - func (c *cgroupV2impl) getCgroupCPUConfig(cgroupPath string) (*ResourceConfig, error) { var cpuLimitStr, cpuPeriodStr string cpuLimitAndPeriod, err := fscommon.GetCgroupParamString(cgroupPath, "cpu.max")