Ну, у меня для вас есть хорошие и плохие новости.
Я столкнулся с той же проблемой в 2016-2017 гг. При создании большой экспериментальной среды с док-роем. Мы строили многорегиональный док-рой кластер с балансировкой нагрузки DNS. Это был кластер из 50+ узлов.
Однажды наш кластер хранения ceph потерпел крах и унес с собой множество узлов роя. Когда все узлы вернулись в рабочее состояние, у меня возникли те же проблемы, которые вы описали.
Хорошие новости:
Для меня работало остановка службы докеров, перезагрузка, перезапуск докера. Все сервисы, работающие в кластере, волшебным образом появились снова, как будто ничего не произошло.
Плохие новости:
Это работало на большинстве узлов. Некоторые мастера роя так и не оправились. Эти узлы я просто уничтожил, и я просто раскрутил новые узлы, чтобы добавить в рой.
РЕДАКТИРОВАТЬ: Я выкопал несколько старых сценариев, которые я использовал для восстановления роя.
Чтобы восстановить сбойный менеджер роя, вы должны сначала сделать резервную копию конфигурации и запустить новый экземпляр.
mkdir /root/Backup
cp -rf /var/lib/docker/swarm /root/Backup
cp /root/Backup
tar -czvf swarm.tar.gz swarm/
scp -r user@new_host:/tmp
На новом хосте восстановить конфигурацию
cp swarm.tar /var/lib/docker
tar -xvf swarm.tar
Слить рабочие узлы
docker node update -availability drain [node]
Обновите все работающие службы
docker service update --force