diff --git a/pkg/kubelet/prober/worker.go b/pkg/kubelet/prober/worker.go index 1faed009bbc..d96365a2edc 100644 --- a/pkg/kubelet/prober/worker.go +++ b/pkg/kubelet/prober/worker.go @@ -99,6 +99,11 @@ func newWorker( // run periodically probes the container. func (w *worker) run() { probeTickerPeriod := time.Duration(w.spec.PeriodSeconds) * time.Second + + // If kubelet restarted the probes could be started in rapid succession. + // Let the worker wait for a random portion of tickerPeriod before probing. + time.Sleep(time.Duration(rand.Float64() * float64(probeTickerPeriod))) + probeTicker := time.NewTicker(probeTickerPeriod) defer func() { @@ -111,10 +116,6 @@ func (w *worker) run() { w.probeManager.removeWorker(w.pod.UID, w.container.Name, w.probeType) }() - // If kubelet restarted the probes could be started in rapid succession. - // Let the worker wait for a random portion of tickerPeriod before probing. - time.Sleep(time.Duration(rand.Float64() * float64(probeTickerPeriod))) - probeLoop: for w.doProbe() { // Wait for next probe tick.