你能帮帮我吗?
我希望用placement-pref.更新一个服务,并在特定的节点上运行它的任务。
实际上,我有3个节点(主机名):
管理器:ip-172-31-16-167
工人-1:ip-172-31-30-215
工人-2:ip-172-31-24-172
我已经将服务"myapp_vote"与运行在Manager和Worker-1上的2任务(副本)一起部署,我希望在Worker-1和Worker-2E 221上运行这些任务,因此我执行以下命令:
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但什么也没发生,两个任务继续在经理和工人身上运行。
我尝试使用以下命令添加约束:
docker service update --constraint-add 'node.labels.Vote == true' myapp_vote它成功了,这两个任务开始在Worker上运行--1和Worker-2。
除了placement-pref,还能做同样的事情吗?
发布于 2020-05-25 12:47:44
这是不可能这样做的唯一的布局-pref 因为。
缺少用于传播的标签的节点仍然接收任务分配。作为一个组,这些节点接收任务的比例与由特定标签值标识的任何其他组相同。从某种意义上说,缺少的标签与带有空值的标签是一样的。如果服务应该只在节点上运行,而标签用于扩展首选项,则应该将该首选项与约束结合起来。
https://stackoverflow.com/questions/55262862
复制相似问题