From fc79ce347ef075b849daa9f27b430696c1160450 Mon Sep 17 00:00:00 2001 From: gmarek Date: Wed, 30 Sep 2015 12:55:37 +0200 Subject: [PATCH] Allow usining FakeOOMAdjuster in Kubelet --- cmd/kubelet/app/server.go | 8 ++++++-- contrib/mesos/pkg/executor/service/service.go | 1 + pkg/kubelet/kubelet.go | 4 ++-- pkg/util/oom/oom_fake.go | 1 + 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/cmd/kubelet/app/server.go b/cmd/kubelet/app/server.go index c2933034777..17d4d5099c4 100644 --- a/cmd/kubelet/app/server.go +++ b/cmd/kubelet/app/server.go @@ -381,6 +381,7 @@ func (s *KubeletServer) KubeletConfig() (*KubeletConfig, error) { NetworkPluginName: s.NetworkPluginName, NetworkPlugins: ProbeNetworkPlugins(s.NetworkPluginDir), NodeStatusUpdateFrequency: s.NodeStatusUpdateFrequency, + OOMAdjuster: oom.NewOOMAdjuster(), OSInterface: kubecontainer.RealOS{}, PodCIDR: s.PodCIDR, PodInfraContainerImage: s.PodInfraContainerImage, @@ -449,7 +450,7 @@ func (s *KubeletServer) Run(kcfg *KubeletConfig) error { glog.V(2).Infof("Using root directory: %v", s.RootDirectory) // TODO(vmarmol): Do this through container config. - oomAdjuster := oom.NewOOMAdjuster() + oomAdjuster := kcfg.OOMAdjuster if err := oomAdjuster.ApplyOOMScoreAdj(0, s.OOMScoreAdj); err != nil { glog.Warning(err) } @@ -639,6 +640,7 @@ func SimpleKubelet(client *client.Client, MinimumGCAge: minimumGCAge, Mounter: mount.New(), NodeStatusUpdateFrequency: nodeStatusUpdateFrequency, + OOMAdjuster: oom.NewFakeOOMAdjuster(), OSInterface: osInterface, PodInfraContainerImage: dockertools.PodInfraContainerImage, Port: port, @@ -819,6 +821,7 @@ type KubeletConfig struct { NetworkPlugins []network.NetworkPlugin NodeName string NodeStatusUpdateFrequency time.Duration + OOMAdjuster *oom.OOMAdjuster OSInterface kubecontainer.OSInterface PodCIDR string PodInfraContainerImage string @@ -910,7 +913,8 @@ func createAndInitKubelet(kc *KubeletConfig) (k KubeletBootstrap, pc *config.Pod kc.DockerExecHandler, kc.ResolverConfig, kc.CPUCFSQuota, - daemonEndpoints) + daemonEndpoints, + kc.OOMAdjuster) if err != nil { return nil, nil, err diff --git a/contrib/mesos/pkg/executor/service/service.go b/contrib/mesos/pkg/executor/service/service.go index 1862733a957..82591c8b7aa 100644 --- a/contrib/mesos/pkg/executor/service/service.go +++ b/contrib/mesos/pkg/executor/service/service.go @@ -346,6 +346,7 @@ func (ks *KubeletExecutorServer) createAndInitKubelet( &api.NodeDaemonEndpoints{ KubeletEndpoint: api.DaemonEndpoint{Port: int(kc.Port)}, }, + kc.OOMAdjuster, ) if err != nil { return nil, nil, err diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index e70443b1918..59e2fc8cd02 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -178,7 +178,8 @@ func NewMainKubelet( dockerExecHandler dockertools.ExecHandler, resolverConfig string, cpuCFSQuota bool, - daemonEndpoints *api.NodeDaemonEndpoints) (*Kubelet, error) { + daemonEndpoints *api.NodeDaemonEndpoints, + oomAdjuster *oom.OOMAdjuster) (*Kubelet, error) { if rootDirectory == "" { return nil, fmt.Errorf("invalid root directory %q", rootDirectory) } @@ -307,7 +308,6 @@ func NewMainKubelet( return nil, err } - oomAdjuster := oom.NewOOMAdjuster() procFs := procfs.NewProcFs() // Initialize the runtime. diff --git a/pkg/util/oom/oom_fake.go b/pkg/util/oom/oom_fake.go index 20c66436dc9..bd0bf6f4558 100644 --- a/pkg/util/oom/oom_fake.go +++ b/pkg/util/oom/oom_fake.go @@ -20,6 +20,7 @@ type FakeOOMAdjuster struct{} func NewFakeOOMAdjuster() *OOMAdjuster { return &OOMAdjuster{ + pidLister: func(cgroupName string) ([]int, error) { return make([]int, 0), nil }, ApplyOOMScoreAdj: fakeApplyOOMScoreAdj, ApplyOOMScoreAdjContainer: fakeApplyOOMScoreAdjContainer, }