Коллеги,рассматриваем софт опенсорсный для распределенного cron ,однако:
В текущей версии Dkron работает как консул образца 17-18 годов: https://github.com/hashicorp/consul/issues/1580
Dkron для имплементации raft протокола использует IP-шники,
что в целом неприемлемо для сред типа k8s, где ip меняется регулярно.
И тут проблема при деплое в k8s:
она заключается в том, что при рестарте/смерти несколько подов (> чем число подов, необходимых для консенсуса) кластер разваливается и не может пересобраться, потому что в нодах сохранены старый айпишники при рестарте несколько подов (< чем число подов, необходимых для консенсуса) кластер продолжит работать без ошибок.
Для воспроизведения:
Так как нода переходит в healthy до момента, когда она присоединяется к кластеру, соответственно, при рестарте statefulset’следующая нода убивается до того, как предыдущая войдет в кластер и начнет работать (aka нода будет знать лидера)
Посоветуйте как решить ?
dkron, kubernetes, альтернатива