mirror of https://github.com/k3s-io/k3s
Merge pull request #52977 from yanxuean/improvecgroup
Automatic merge from submit-queue (batch tested with PRs 54837, 55970, 55912, 55898, 52977). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. Improve kubelet cgroup **What this PR does / why we need it**: 1.Use arg cgroupRoot,not nodeConfig.CgroupRoot Using both arg cgroupRoot and nodeConfig.CgroupRoot is confused in function NewQOSContainerManager 2.improve cgroupmanager in qosContainerManager 3. improve arg "cgroupRoot" type in NewQOSContainerManager **Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes # **Special notes for your reviewer**: **Release note**: ```release-note ```pull/6/head
commit
c60b35bcd3
|
@ -113,7 +113,7 @@ type containerManagerImpl struct {
|
|||
qosContainers QOSContainersInfo
|
||||
// Tasks that are run periodically
|
||||
periodicTasks []func()
|
||||
// holds all the mounted cgroup subsystems
|
||||
// Holds all the mounted cgroup subsystems
|
||||
subsystems *CgroupSubsystems
|
||||
nodeInfo *v1.Node
|
||||
// Interface for cgroup management
|
||||
|
@ -245,7 +245,7 @@ func NewContainerManager(mountUtil mount.Interface, cadvisorInterface cadvisor.I
|
|||
}
|
||||
glog.Infof("Creating Container Manager object based on Node Config: %+v", nodeConfig)
|
||||
|
||||
qosContainerManager, err := NewQOSContainerManager(subsystems, cgroupRoot, nodeConfig)
|
||||
qosContainerManager, err := NewQOSContainerManager(subsystems, cgroupRoot, nodeConfig, cgroupManager)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
@ -56,21 +56,21 @@ type qosContainerManagerImpl struct {
|
|||
cgroupManager CgroupManager
|
||||
activePods ActivePodsFunc
|
||||
getNodeAllocatable func() v1.ResourceList
|
||||
cgroupRoot string
|
||||
cgroupRoot CgroupName
|
||||
qosReserved map[v1.ResourceName]int64
|
||||
}
|
||||
|
||||
func NewQOSContainerManager(subsystems *CgroupSubsystems, cgroupRoot string, nodeConfig NodeConfig) (QOSContainerManager, error) {
|
||||
func NewQOSContainerManager(subsystems *CgroupSubsystems, cgroupRoot string, nodeConfig NodeConfig, cgroupManager CgroupManager) (QOSContainerManager, error) {
|
||||
if !nodeConfig.CgroupsPerQOS {
|
||||
return &qosContainerManagerNoop{
|
||||
cgroupRoot: CgroupName(nodeConfig.CgroupRoot),
|
||||
cgroupRoot: CgroupName(cgroupRoot),
|
||||
}, nil
|
||||
}
|
||||
|
||||
return &qosContainerManagerImpl{
|
||||
subsystems: subsystems,
|
||||
cgroupManager: NewCgroupManager(subsystems, nodeConfig.CgroupDriver),
|
||||
cgroupRoot: cgroupRoot,
|
||||
cgroupManager: cgroupManager,
|
||||
cgroupRoot: CgroupName(cgroupRoot),
|
||||
qosReserved: nodeConfig.ExperimentalQOSReserved,
|
||||
}, nil
|
||||
}
|
||||
|
@ -81,7 +81,7 @@ func (m *qosContainerManagerImpl) GetQOSContainersInfo() QOSContainersInfo {
|
|||
|
||||
func (m *qosContainerManagerImpl) Start(getNodeAllocatable func() v1.ResourceList, activePods ActivePodsFunc) error {
|
||||
cm := m.cgroupManager
|
||||
rootContainer := m.cgroupRoot
|
||||
rootContainer := string(m.cgroupRoot)
|
||||
if !cm.Exists(CgroupName(rootContainer)) {
|
||||
return fmt.Errorf("root container %s doesn't exist", rootContainer)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue