Получу ли я одновременные запуски моего CronJob в Kubernetes из-за задокументированных ограничений

Согласно этой странице в K8S, «... возможно создание двух рабочих мест ...».

Если я установлю для своего concurrencyPolicy значение «Запретить» - буду ли я по-прежнему получать необязательные одновременные запуски из-за планировщика, или я получу одновременные вызовы, которые будут выполняться, но будут заблокированы?

Я также открыл проблему на сайте Документов: https://github.com/kubernetes/website/issues/18655


person Shachar Silbert    schedule 13.01.2020    source источник


Ответы (1)


Установка concurrencyPolicy на «Forbid» сделает так, что если к тому времени, когда появится следующее запланированное задание, предыдущее задание все еще будет выполняться, cron не будет запускать другое задание и будет считаться пропущенным заданием. Если для него установлено значение «Разрешить», эти задания будут выполняться хотя бы один раз по расписанию.

Существует только вероятность того, что два задания или ни одно задание не будет запущено в одно запланированное время, поскольку K8S не полностью предотвращает это.

person Nicholas Elkaim    schedule 13.01.2020
comment
Так я этого и опасался? Запрет не предотвратит двойное выполнение задания, даже если это вся идея? А у вас есть ссылка или что-то я могу почитать об этом подробнее? - person Shachar Silbert; 14.01.2020
comment
Это просто выходит из этого документа: kubernetes.io / docs / concept / workloads / controllers / cron-jobs / Вот почему K8S настоятельно рекомендует, чтобы ваши задания были идемпотентными. Это означает, что они не пострадают, если в то же время будет запущен другой. - person Nicholas Elkaim; 14.01.2020