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 "пропустил" ряд запланированных заданий, пока кластер не работал, и это превысило пороговое значение, при котором дальнейшие задания не будут запланированы.
Как я могу сбросить количество пропущенных запусков и снова запланировать эти задания (не планируя внезапный запуск всех пропущенных заданий?)
1 ответ
Согласно документации kubernetes Cronjob, похоже, нет способа решить эту проблему. Установка.spec.startingDeadlineSeconds
значение на большое число будет перепланировать все пропущенные вхождения, попадающие в увеличенное окно.
Мое решение было просто kubectl delete cronjob x-y-z
и воссоздайте его, который работал как хотите.