Рой сервис на каждом узле, кроме менеджера - PullRequest
0 голосов
/ 12 сентября 2018

У меня работает рой с одним менеджером и несколькими работниками.

Я хочу, чтобы конкретная служба развертывалась один (и только один раз) на узле, но только на рабочих.Менеджер по-прежнему запускает другие службы.

То, что я нашел, не соответствует моим потребностям:

  • mode: global делаю то, что я хочу, «один раз на контейнер», но это не такисключить менеджера.
  • mode: replicated replicas: 6 placement: constraints: - node.role == worker ограничение для рабочего, но с этим решением может быть более одной реплики на узле.И - max-replicas-per-node еще не существует.

  • docker node update --availability drain manager1 удаляет менеджера из рабочих, но это также невозможно, потому чтомой менеджер должен запустить другие службы.

1 Ответ

0 голосов
/ 15 сентября 2018

Вы можете объединить ваше первое решение со вторым.Что-то вроде этого хорошо работает для меня в моей среде:

mode: global placement: constraints: - node.role == worker

Единственная проблема заключается в том, что вам нужно назначить метку (worker) для каждого узла, который вам нужно запуститьуслуга включена.

...