У меня есть кластер серверов, на котором будет работать простой ruok
команда с фалловером. Команда будет простой, например curl -X POST http://foo.com/status
. В связи с тем, что у меня будет от 3 до 300 узлов в этом пуле, я хочу убедиться, что эта команда отправляется только раз в десять минут. Я столкнулся с проблемой, что я не могу просто добавить crontab на свои серверы, если я не хочу, чтобы все они отправлялись каждые X минут.
Я начал смотреть на использование HashiCorp Consul поскольку он довольно высокодоступен и кажется проще, чем etcd
или Zookeeper
. Я не знаю, как на самом деле создать что-то, что будет делать это.
Я буду использовать этот скрипт на всех серверах
#!/bin/bash
curl -i -H "Accept: application/json" \
-H "Content-Type:application/json" \
-X POST --data '{"status":"ruok"}' "https://foobar.com/status"
Итак, как мне написать Consul, чтобы запустить это один раз в пуле узлов?
Вы могли бы использовать этот.
Просто погуглил "распределенный cron с использованием консула".