mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 03:41:45 +00:00
Calling Unreserve plugin before recordSchedulingFailure in case of binding failure
Calling recordSchedulingFailure puts the pod back to scheduling queue in another goroutine so pod may get a chance to be bond again before unreseve plugin cleaning state about it.
This commit is contained in:
parent
3f1cb97f9a
commit
1f3bc52eab
@ -443,8 +443,6 @@ func (sched *Scheduler) bind(assumed *v1.Pod, targetNode string, pluginContext *
|
||||
if err := sched.config.SchedulerCache.ForgetPod(assumed); err != nil {
|
||||
klog.Errorf("scheduler cache ForgetPod failed: %v", err)
|
||||
}
|
||||
sched.recordSchedulingFailure(assumed, err, SchedulerError,
|
||||
fmt.Sprintf("Binding rejected: %v", err))
|
||||
return err
|
||||
}
|
||||
|
||||
@ -601,6 +599,7 @@ func (sched *Scheduler) scheduleOne() {
|
||||
metrics.PodScheduleErrors.Inc()
|
||||
// trigger un-reserve plugins to clean up state associated with the reserved Pod
|
||||
fwk.RunUnreservePlugins(pluginContext, assumedPod, scheduleResult.SuggestedHost)
|
||||
sched.recordSchedulingFailure(assumedPod, err, SchedulerError, fmt.Sprintf("Binding rejected: %v", err))
|
||||
} else {
|
||||
klog.V(2).Infof("pod %v/%v is bound successfully on node %v, %d nodes evaluated, %d nodes were found feasible", assumedPod.Namespace, assumedPod.Name, scheduleResult.SuggestedHost, scheduleResult.EvaluatedNodes, scheduleResult.FeasibleNodes)
|
||||
metrics.PodScheduleSuccesses.Inc()
|
||||
|
Loading…
Reference in New Issue
Block a user