Docker: запустить сервис на определенных узлах, используя --placement-pref - PullRequest
2 голосов
/ 20 марта 2019

Можете ли вы мне помочь, пожалуйста?

Я хочу обновить службу и запускать ее задачи на определенных узлах с place-pref .

На самом деле у меня есть 3 узла (имя хоста):

Менеджер : ip-172-31-16-167

Рабочий-1 : ip-172-31-30-215

Работник-2 : ip-172-31-24-172

И у меня есть служба развертывания "myapp_vote" с 2 задачами (репликами), которые работают на Manager и Worker-1 , я хочу запустить эти задачи на Worker-1 и Worker-2 , поэтому я выполняю следующие команды:

docker node update --label-add Vote=true ip-172-31-30-215

docker node update --label-add Vote=true ip-172-31-24-172

docker service update --placement-pref-add 'spread=node.labels.Vote' myapp_vote

Но ничего не произошло, 2 задачи продолжают выполняться на Manager и Worker-1 ...

Я попытался добавить ограничение с помощью следующей команды:

docker service update --constraint-add 'node.labels.Vote == true' myapp_vote

Это сработало, и 2 задачи начали работать на Worker-1 и Worker-2 .

Пожалуйста, возможно ли сделать то же самое, но с place-pref ?

...