2016-02-10 3 views
0

Распределенный CRON в Kubernetes все еще находится в процессе разработки (https://github.com/kubernetes/kubernetes/issues/2156).Распределенный CRON в Кубернете

Что вы используете для рабочих мест CRON в Кубернете сегодня?

Вы рекомендуете какое-либо решение, которое хорошо работает с сервисами на основе Spring/JVM? Время запуска Spring/JVM довольно велико, и если планировщик CRON запустил новую JVM для каждого задания, время запуска может быть намного выше, чем время фактической работы - есть ли какое-либо решение, которое могло бы запускать работу в существующей JVM?

Спасибо, Якуб

ответ

2

Я написал небольшой Go app, который функционирует как cron, но записывает информацию журнала в stdout (без электронной почты!) И может быть встроен в статический двоичный код для легкой контейнерной обработки.

Я построил kubectl из источника как статический двоичный файл и включил его в образ (он может быть статическим двоичным кодом в последних выпусках). Kubectl автоматически ищет токен/сертификаты учетной записи службы в /var/run/secrets/kubernetes.io/serviceaccount/, поэтому вам должно быть хорошо идти, если вы не используете учетную запись службы по умолчанию.

Затем я установил crontab, чтобы запустить kubectl, чтобы создать job в тот период, который я хотел. Файлы crontab и yaml для заданий могут быть установлены как секрет. Вы можете использовать conf2kube или какой-либо другой способ генерации секретов. Я написал простой python script.

Это полностью обходное решение, пока не будет надлежащей поддержки, но я надеюсь, что это поможет.

Смежные вопросы