diff --git a/pkg/controller/node/nodecontroller.go b/pkg/controller/node/nodecontroller.go index df3a41d3f40..e9099766e4b 100644 --- a/pkg/controller/node/nodecontroller.go +++ b/pkg/controller/node/nodecontroller.go @@ -479,26 +479,9 @@ func (nc *NodeController) monitorNodeStatus() error { continue } if remaining { - // Immediately evict pods (skip rate-limited evictor) + // queue eviction of the pods on the node glog.V(2).Infof("Deleting node %s is delayed while pods are evicted", node.Name) - go func(nodeName string) { - nc.evictorLock.Lock() - defer nc.evictorLock.Unlock() - remaining, err := nc.deletePods(nodeName) - if err != nil { - glog.Errorf("Unable to evict pods from node %s: %v", nodeName, err) - nc.podEvictor.Add(nodeName) - return - } - if !remaining { - return - } - // Immediately terminate pods. - if _, _, err := nc.terminatePods(nodeName, time.Now()); err != nil { - glog.Errorf("Unable to terminate pods on node %s: %v", nodeName, err) - nc.terminationEvictor.Add(nodeName) - } - }(node.Name) + nc.evictPods(node.Name) continue }