有正在从事web测试和APP测试工作或想从事此行业的测友们,欢迎与我联系,相互交流! 长期招聘不同级别测试工程师(WEB\APP\性能)有意者请与本人联系!

如何删除Docker Swarm中的Node

上一篇 / 下一篇  2018-09-23 17:08:33 / 个人分类:docker

文章来源
  • 文章来源:【转载】

step1: 如果是master, docker node demote {node-id} 
7C M7ug(Z+W0step2: docker node rm -f {node-id}

Nr,^FP0

Docker的Cli给出了三个和删除Node有关的命令: 
tUTEw1l0E0docker node rm  51Testing软件测试网:z\{9}.Y)R
docker node demote 
S&wa,E"T(D2V0docker swarm leave51Testing软件测试网oBg8f$V i,l S;R;_!N

这三个命令分别代表着什么?51Testing软件测试网&T#X/a8Pg} @ ]


Docker node rm

本质是调用SwarmKit(Swarmkit在Docker1.12后会打包在docker的发行版里,会启动一个swarmkit的daemon进程监听主机上的2377端口)的RemoveNode接口,swarmkit会在其raft store删除这个Node的数据51Testing软件测试网 }rbj~'y%M

Docker node demote

本质是调用SwarmKit的UpdateNode接口,把role从master改成worker

/G B!Uy0yK0

Docker swarm leave

  • 51Testing软件测试网J R J O Rx
    51Testing软件测试网9`pahT[(Y

  • 判断还剩下的master数量是否是安全的,如果不是会报错

    4CNUSHEsE s0
  • 把当前的swarm node停止

    2QK q$qD lY%a0v$m0
  • 把当前node上所有的swarm mode启动的container停止51Testing软件测试网Q;hca:R3S

  • 清除掉swarm保存在机器上的log文件

    xCp'I'^,T3[0
  • 把daemon设置成非swarm mode,并把attachment上的network删掉

    Y R;|M7G.oI~W0

    从实现原理来看,swarm leave== node demote + node rm 
    3^j yS@'j W0

    v;q;_P9A\C0~0

但是从测试结果发现,swarm leave后这个node就变成unreachable的状态了。。。并不会从node列表中消失,因此,正确的删除姿势就是node demote -> node rm,虽然docker有的文档中提到了swarm leave,但其实并不正确

:r%ZpegCw0
51Testing软件测试网RP2B!b~wSa

TAG: Docker docker

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar