diff --git a/pkg/kubelet/lifecycle/predicate.go b/pkg/kubelet/lifecycle/predicate.go index df4a32d1ad..67fa7a796c 100644 --- a/pkg/kubelet/lifecycle/predicate.go +++ b/pkg/kubelet/lifecycle/predicate.go @@ -18,6 +18,7 @@ package lifecycle import ( "fmt" + "time" "k8s.io/klog" @@ -56,6 +57,19 @@ func NewPredicateAdmitHandler(getNodeAnyWayFunc getNodeAnyWayFuncType, admission } func (w *predicateAdmitHandler) Admit(attrs *PodAdmitAttributes) PodAdmitResult { + result := w.admit(attrs) + for i := 0; i < 10; i++ { + if result.Admit { + break + } + time.Sleep(time.Second) + result = w.admit(attrs) + } + + return result +} + +func (w *predicateAdmitHandler) admit(attrs *PodAdmitAttributes) PodAdmitResult { node, err := w.getNodeAnyWayFunc() if err != nil { klog.Errorf("Cannot get Node info: %v", err)