Comments 2
А для чего на практике может пригодиться это решение?
Допустим, мне нужно запустить несколько приложений-шедулеров отказоустойчиво, чтобы суммарно они выполняли свою работу ровно раз в день, вне зависимости от того, сколько их запущено и упал ли кто-то. Может ли etcd-await-election
закрыть эту потребность? Или он для чего-то другого?
Да, примерно для такого кейса и создавалось.
Например у вас есть три машины, и на них равёрнут etcd кластер.
Тогда вы можете описать systemd unit, который будет запускать произвольный процесс с помощью etcd-await-election.
Если вы запустите три таких процесса в рамках одного lock name, только один из них возьмёт lease и будет выполняться, оставльные будут ждать смерти первого.
Как только первый умрёт, лок возьмёт кто-то другой и запустит ваш процесс уже на новой ноде.
Представляем Open Source-инструмент etcd-await-election для leader-election на нескольких нодах