diff --git a/pkg/kubelet/cm/container_manager_linux.go b/pkg/kubelet/cm/container_manager_linux.go index 7220d04faa4..9ef4472d5ed 100644 --- a/pkg/kubelet/cm/container_manager_linux.go +++ b/pkg/kubelet/cm/container_manager_linux.go @@ -324,28 +324,29 @@ func (cm *containerManagerImpl) Start() error { numEnsureStateFuncs++ } } - if numEnsureStateFuncs == 0 { - return nil + if numEnsureStateFuncs >= 0 { + go wait.Until(func() { + for _, cont := range cm.systemContainers { + if cont.ensureStateFunc != nil { + if err := cont.ensureStateFunc(cont.manager); err != nil { + glog.Warningf("[ContainerManager] Failed to ensure state of %q: %v", cont.name, err) + } + } + } + }, time.Minute, wait.NeverStop) + } // Run ensure state functions every minute. - go wait.Until(func() { - for _, cont := range cm.systemContainers { - if cont.ensureStateFunc != nil { - if err := cont.ensureStateFunc(cont.manager); err != nil { - glog.Warningf("[ContainerManager] Failed to ensure state of %q: %v", cont.name, err) + if len(cm.periodicTasks) > 0 { + go wait.Until(func() { + for _, task := range cm.periodicTasks { + if task != nil { + task() } } - } - }, time.Minute, wait.NeverStop) - - go wait.Until(func() { - for _, task := range cm.periodicTasks { - if task != nil { - task() - } - } - }, 5*time.Minute, wait.NeverStop) + }, 5*time.Minute, wait.NeverStop) + } return nil } diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index 49a9b8458ef..597b6349845 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -18,7 +18,6 @@ package kubelet import ( "bytes" - "errors" "fmt" "io" "io/ioutil" @@ -929,7 +928,7 @@ func (kl *Kubelet) listPodsFromDisk() ([]types.UID, error) { func (kl *Kubelet) GetNode() (*api.Node, error) { if kl.standaloneMode { - return nil, errors.New("no node entry for kubelet in standalone mode") + return kl.initialNodeStatus() } return kl.nodeInfo.GetNodeInfo(kl.nodeName) } diff --git a/test/e2e_node/kubelet_test.go b/test/e2e_node/kubelet_test.go index 26fcd57e5ff..1fd2b942669 100644 --- a/test/e2e_node/kubelet_test.go +++ b/test/e2e_node/kubelet_test.go @@ -198,16 +198,16 @@ var _ = Describe("Kubelet", func() { Expect(summary.Node.Fs.UsedBytes).NotTo(BeNil()) Expect(*summary.Node.Fs.UsedBytes).NotTo(BeZero()) - // TODO: Enable this test when #22198 is resolved. - // By("Having resources for kubelet and runtime system containers") - // sysContainers := map[string]stats.ContainerStats{} - // sysContainersList := []string{} - // for _, container := range summary.Node.SystemContainers { - // sysContainers[container.Name] = container - // sysContainersList = append(sysContainersList, container.Name) - // ExpectContainerStatsNotEmpty(&container) - // } - // Expect(sysContainersList).To(ConsistOf("kubelet", "runtime")) + By("Having resources for kubelet and runtime system containers") + sysContainers := map[string]stats.ContainerStats{} + sysContainersList := []string{} + for _, container := range summary.Node.SystemContainers { + sysContainers[container.Name] = container + sysContainersList = append(sysContainersList, container.Name) + ExpectContainerStatsNotEmpty(&container) + } + Expect(sysContainersList).To(ContainElement("kubelet")) + Expect(sysContainersList).To(ContainElement("runtime")) // Verify Pods Stats are present podsList := []string{}