Только с одним менеджером у вас нет HA, и когда он не работает, ничего не будет перенесено. Вам нужно как минимум 3 менеджера для поддержки сценария с одним менеджером. Когда один менеджер перезапускается, это условие гонки между планировщиком, назначающим рабочую нагрузку, и существующим узлом, повторно соединяющимся, что рабочий узел вряд ли победит.
Режим Swarm не будет активно перемасштабировать перепланирование рабочих нагрузок: ни при добавлении новых узлов в кластер, ни при простом перезапуске нижнего узла существующие задачи будут продолжать выполняться на своем текущем узле, пока не произойдет изменение, которое заставит их перенести свое расписание. Это изменение может быть неработающим узлом или обновлением службы. Это улучшает HA, поскольку новый узел может быть нестабильным / колеблющимся.
Чтобы принудительно включить режим роя, чтобы сбалансировать службу, вы можете запустить:
docker service update --force $service_name
Это приведет к обновлению без каких-либо других изменений этой службы. (Замените $service_name
названием или идентификатором вашей службы.)