在创建Docker Service的时候,如果不想在管理节点上运行副本,可以执行docker node update --availability drain <NODE-ID>,但是如果我有多个管理节点的话,难道要执行多次吗?有没有更好的办法?谢谢!
如果把所有manager节点都drain,集群就挂掉了
执行docker node update --availability drain <NODE-ID>
是将节点的availability由Active改成drain,阻止该节点从群管理器接收新任务,也就是不在运行副本,如果所有的管理节点都去执行这个操作的话,Swarm集群不会挂点。亲测过
@毕殿卿: 那试试下面的命令
docker node update --availability drain $(docker node ls --format '{{.ID}}')
@毕殿卿: 如果上面的命令无效,试试下面的命令
docker node ls --format '{{.ID}}' | xargs -L1 docker node update --availability drain
@dudu: 两个命令都无效
@毕殿卿: 我这里实测有效
$ docker node ls --format '{{.ID}}' | xargs -L1 docker node update --availability drain
zeiolgp0vcui2slhpsectc9jf
xwiv6nljo24nynm8n0byyqu82
bueuex4a7u6bjjjilntl0ft6s
@dudu: 非常感谢 dudu 我是在https://labs.play-with-docker.com 搭建的Swarm集群,回头我再试试,非常感谢!