mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-30 23:15:14 +00:00
kubernetes/kubernetes#22625 Fix issue of out-of-date Terminating
mirror pod status
- During `kubelet` `syncPod`, check mirror pod `DeletionTimestamp` value to determine whether re-create mirror pod for running static pod.
This commit is contained in:
parent
fea6b0d50c
commit
e2eccddc6f
@ -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 {
|
||||
|
Loading…
Reference in New Issue
Block a user