From c0c93f4a525dbd84679694f3d9488c4cc2a45cd2 Mon Sep 17 00:00:00 2001 From: Wei Huang Date: Mon, 18 Feb 2019 12:01:51 -0800 Subject: [PATCH] kubelet: return mirror pod in GetActivePods() --- pkg/kubelet/kubelet_pods.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/pkg/kubelet/kubelet_pods.go b/pkg/kubelet/kubelet_pods.go index 9d06d595eb..6efdcf1ba7 100644 --- a/pkg/kubelet/kubelet_pods.go +++ b/pkg/kubelet/kubelet_pods.go @@ -88,7 +88,19 @@ func (kl *Kubelet) listPodsFromDisk() ([]types.UID, error) { // GetActivePods returns non-terminal pods func (kl *Kubelet) GetActivePods() []*v1.Pod { - allPods := kl.podManager.GetPods() + allPods, mirrorPods := kl.podManager.GetPodsAndMirrorPods() + mirrorPodSet := make(map[string]*v1.Pod) + for _, p := range mirrorPods { + mirrorPodSet[kubecontainer.GetPodFullName(p)] = p + } + for i := range allPods { + podFullName := kubecontainer.GetPodFullName(allPods[i]) + // replace static pod with mirror pod as some info (e.g. spec.Priority) + // is needed to make further decisions (e.g. eviction) + if mirrorPod, ok := mirrorPodSet[podFullName]; ok { + allPods[i] = mirrorPod + } + } activePods := kl.filterOutTerminatedPods(allPods) return activePods }