diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index f68f4549817..3bf944d43cc 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -1738,14 +1738,16 @@ func (kl *Kubelet) syncPod(pod *api.Pod, mirrorPod *api.Pod, podStatus *kubecont if kubepod.IsStaticPod(pod) { podFullName := kubecontainer.GetPodFullName(pod) deleted := false - if mirrorPod != nil && !kl.podManager.IsMirrorPodOf(mirrorPod, pod) { - // The mirror pod is semantically different from the static pod. Remove - // it. The mirror pod will get recreated later. - glog.Errorf("Deleting mirror pod %q because it is outdated", format.Pod(mirrorPod)) - if err := kl.podManager.DeleteMirrorPod(podFullName); err != nil { - glog.Errorf("Failed deleting mirror pod %q: %v", format.Pod(mirrorPod), err) - } else { - deleted = true + if mirrorPod != nil { + if mirrorPod.DeletionTimestamp != nil || !kl.podManager.IsMirrorPodOf(mirrorPod, pod) { + // The mirror pod is semantically different from the static pod. Remove + // it. The mirror pod will get recreated later. + glog.Errorf("Deleting mirror pod %q because it is outdated", format.Pod(mirrorPod)) + if err := kl.podManager.DeleteMirrorPod(podFullName); err != nil { + glog.Errorf("Failed deleting mirror pod %q: %v", format.Pod(mirrorPod), err) + } else { + deleted = true + } } } if mirrorPod == nil || deleted {