mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 05:27:21 +00:00
Merge pull request #21337 from vishh/ensure-runtime-cgroups
Auto commit by PR queue bot
This commit is contained in:
commit
2bca7c5287
@ -24,6 +24,7 @@ import (
|
|||||||
"os/exec"
|
"os/exec"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/golang/glog"
|
"github.com/golang/glog"
|
||||||
@ -74,11 +75,13 @@ func newSystemCgroups(containerName string) *systemContainer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type containerManagerImpl struct {
|
type containerManagerImpl struct {
|
||||||
|
sync.RWMutex
|
||||||
cadvisorInterface cadvisor.Interface
|
cadvisorInterface cadvisor.Interface
|
||||||
mountUtil mount.Interface
|
mountUtil mount.Interface
|
||||||
NodeConfig
|
NodeConfig
|
||||||
// External containers being managed.
|
// External containers being managed.
|
||||||
systemContainers []*systemContainer
|
systemContainers []*systemContainer
|
||||||
|
periodicTasks []func()
|
||||||
}
|
}
|
||||||
|
|
||||||
var _ ContainerManager = &containerManagerImpl{}
|
var _ ContainerManager = &containerManagerImpl{}
|
||||||
@ -225,12 +228,16 @@ func (cm *containerManagerImpl) setupNode() error {
|
|||||||
}
|
}
|
||||||
systemContainers = append(systemContainers, cont)
|
systemContainers = append(systemContainers, cont)
|
||||||
} else {
|
} else {
|
||||||
cont, err := getContainerNameForProcess("docker")
|
cm.periodicTasks = append(cm.periodicTasks, func() {
|
||||||
if err != nil {
|
cont, err := getContainerNameForProcess("docker")
|
||||||
glog.Error(err)
|
if err != nil {
|
||||||
} else {
|
glog.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
cm.Lock()
|
||||||
|
defer cm.Unlock()
|
||||||
cm.RuntimeCgroupsName = cont
|
cm.RuntimeCgroupsName = cont
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -267,12 +274,17 @@ func (cm *containerManagerImpl) setupNode() error {
|
|||||||
}
|
}
|
||||||
systemContainers = append(systemContainers, cont)
|
systemContainers = append(systemContainers, cont)
|
||||||
} else {
|
} else {
|
||||||
cont, err := getContainer(os.Getpid())
|
cm.periodicTasks = append(cm.periodicTasks, func() {
|
||||||
if err != nil {
|
cont, err := getContainer(os.Getpid())
|
||||||
glog.Error("failed to find cgroups of kubelet - %v", err)
|
if err != nil {
|
||||||
} else {
|
glog.Error("failed to find cgroups of kubelet - %v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
cm.Lock()
|
||||||
|
defer cm.Unlock()
|
||||||
|
|
||||||
cm.KubeletCgroupsName = cont
|
cm.KubeletCgroupsName = cont
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
cm.systemContainers = systemContainers
|
cm.systemContainers = systemContainers
|
||||||
@ -295,6 +307,8 @@ func getContainerNameForProcess(name string) (string, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (cm *containerManagerImpl) GetNodeConfig() NodeConfig {
|
func (cm *containerManagerImpl) GetNodeConfig() NodeConfig {
|
||||||
|
cm.RLock()
|
||||||
|
defer cm.RUnlock()
|
||||||
return cm.NodeConfig
|
return cm.NodeConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -325,6 +339,14 @@ func (cm *containerManagerImpl) Start() error {
|
|||||||
}
|
}
|
||||||
}, time.Minute, wait.NeverStop)
|
}, time.Minute, wait.NeverStop)
|
||||||
|
|
||||||
|
go wait.Until(func() {
|
||||||
|
for _, task := range cm.periodicTasks {
|
||||||
|
if task != nil {
|
||||||
|
task()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, 5*time.Minute, wait.NeverStop)
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user