<p>Considering that kubelet failed to perform some action - for instance pulling an image, the pod will go into a back-off state, for instance <code>ImagePullBackOff</code>, how do I determine when will it be retried? I understand that the back-off uses increasing time intervals for retrying. End it may eventually give up. Is there a clear algorithm so I can figure out the time to next attempt?</p>
<p>Apart from curiosity and ops convenience, it would help assess the self-healing recovery time needed.</p>

Robert Cutajar
<p>At any point, the maximum delay is 300s, that's a compiled-in constant.</p>
<p>See the <a href="https://kubernetes.io/docs/concepts/containers/images/#imagepullbackoff" rel="nofollow noreferrer">common info about ImagePullBackOff</a>:</p>
<blockquote>
<p>The BackOff part indicates that Kubernetes will keep trying to pull
the image, with an increasing back-off delay.</p>
<p>Kubernetes raises the delay between each attempt until it reaches a
compiled-in limit, which is 300 seconds (5 minutes)</p>
</blockquote>
<p>and the <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy" rel="nofollow noreferrer">restart policy</a>:</p>
<blockquote>
<p>After containers in a Pod exit, the kubelet restarts them with an
exponential back-off delay (10s, 20s, 40s, …), that is capped at five
minutes. Once a container has executed for 10 minutes without any
problems, the kubelet resets the restart backoff timer for that
container</p>
</blockquote>
<p>I can't tell you more than in official documentation.</p>
