You don't really want the scheduler to schedule another pod. Doing that would lead to a resource leak as mentioned explained in Infinite ImagePullBackOff CronJob results in resource leak, which @VonC mentioned in his answer.
Instead you should focus on fixing the root cause to why the pod is in ImagePullBackOff
. Once that is done Kubernetes will automatically pull the image, run the pod and a new one will be scheduled once the cron schedule is fullfilled.
ImagePullBackoff
means that the container could not start because the image could not be retrieved. The reason could be for example an invalid image id or tag, a missing or invalid imagePullSecret
or network connectivity issues.
When a pod is in ImagePullBackoff
kubernetes will periodically retry to pull the image, and once the image is successfully pulled the pod starts.
The delay between pull attempts will increase with each attempt (a BackOff), as explained in the docs
Kubernetes raises the delay between each attempt until it reaches a compiled-in limit, which is 300 seconds (5 minutes).