summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwackxu <xushiwei5@huawei.com>2022-08-17 11:53:44 +0800
committerwackxu <xushiwei5@huawei.com>2022-09-22 10:44:09 +0800
commit4d5bfd6fb01fc4ca24e29e48c7f3a42a4468d7d3 (patch)
treea2c74d6e32d40bcd36d966dd8213fbbc231e0ea8
parentMerge pull request #4204 from vincentgoat/automated-cherry-pick-of-#3807-upst... (diff)
downloadkubeedge-4d5bfd6fb01fc4ca24e29e48c7f3a42a4468d7d3.tar.gz
fix delete pod terminating stuck when pod is create and quick delete
Signed-off-by: wackxu <xushiwei5@huawei.com>
-rw-r--r--edge/pkg/edged/status/status_manager.go21
1 files changed, 17 insertions, 4 deletions
diff --git a/edge/pkg/edged/status/status_manager.go b/edge/pkg/edged/status/status_manager.go
index ea4a49efb..ff2554e2b 100644
--- a/edge/pkg/edged/status/status_manager.go
+++ b/edge/pkg/edged/status/status_manager.go
@@ -35,6 +35,7 @@ import (
kubepod "k8s.io/kubernetes/pkg/kubelet/pod"
kubestatus "k8s.io/kubernetes/pkg/kubelet/status"
kubetypes "k8s.io/kubernetes/pkg/kubelet/types"
+ "k8s.io/kubernetes/pkg/kubelet/util/format"
edgeapi "github.com/kubeedge/kubeedge/common/types"
"github.com/kubeedge/kubeedge/edge/pkg/metamanager/client"
@@ -549,10 +550,22 @@ func (m *manager) syncBatch() {
}
}
- for uid, status := range m.podStatuses {
- syncedUID := kubetypes.MirrorPodUID(uid)
- if m.needsUpdate(types.UID(syncedUID), status) {
- updatedStatuses = append(updatedStatuses, podStatusSyncRequest{uid, status})
+ for _, pod := range m.podManager.GetPods() {
+ podStatus, ok := m.podStatuses[pod.UID]
+ if !ok {
+ if m.canBeDeleted(pod, podStatus.status) {
+ err := m.metaClient.Pods(pod.Namespace).Delete(pod.Name, string(pod.UID))
+ if err != nil {
+ klog.Errorf("Failed to delete the pod %q: %v", format.Pod(pod), err)
+ } else {
+ klog.V(2).Infof("Successfully sent delete event to cloud for pod: %s", format.Pod(pod))
+ }
+ }
+ continue
+ }
+
+ if m.needsUpdate(pod.UID, podStatus) {
+ updatedStatuses = append(updatedStatuses, podStatusSyncRequest{pod.UID, podStatus})
}
}
}()