Kubernetes Cronjob: сбросить пропущенное время запуска после восстановления кластера

У меня есть кластер, который включает Cronjob, запуск которого запланирован каждые 5 минут.

Недавно мы столкнулись с проблемой, которая привела к простою и потребовала ручного восстановления кластера. Хотя теперь он снова исправен, это конкретное задание cron не запускается со следующей ошибкой:

Cannot determine if job needs to be started: Too many missed start time (> 100). Set or decrease .spec.startingDeadlineSeconds or check clock skew.

Я понимаю, что Cronjob «пропустил» ряд запланированных заданий, пока кластер был отключен, и это превысило порог, при котором дальнейшие задания не будут запланированы.

Как сбросить количество пропущенных запусков и снова запланировать эти задания (без планирования внезапного запуска всех пропущенных заданий?)


person duncanhall    schedule 14.08.2020    source источник


Ответы (1)


Согласно документам Kubernetes Cronjob, кажется, нет способа чтобы чисто решить это. Установка большого числа для .spec.startingDeadlineSeconds приведет к перепланированию всех пропущенных вхождений, попадающих в увеличенное окно.

Мое решение состояло в том, чтобы просто kubectl delete cronjob x-y-z и воссоздать его, что сработало, как хотелось бы.

person duncanhall    schedule 14.08.2020