十五年测试老手,长期负责WEB\APP 项目测试,目前主要负责团队管理工作。
如何删除Docker Swarm中的Node
上一篇 /
下一篇 2018-09-23 17:08:33
/ 个人分类:docker
step1: 如果是master, docker node demote {node-id} 51Testing软件测试网1g5AX
w9C^-\m7P
step2: docker node rm -f {node-id}
0o$xX2j1J
_b0Docker的Cli给出了三个和删除Node有关的命令:
r-r!t\Y'Tp0docker node rm
m)j)Q&]Q0docker node demote
!h,wbe.e,i q
Tx0docker swarm leave51Testing软件测试网Blvr}A(Z0w
这三个命令分别代表着什么?
qJ3dJN$h&S:pl0
Docker node rm
本质是调用SwarmKit(Swarmkit在Docker1.12后会打包在docker的发行版里,会启动一个swarmkit的daemon进程监听主机上的2377端口)的RemoveNode接口,swarmkit会在其raft store删除这个Node的数据51Testing软件测试网}&B'fd0KD$B
Docker node demote
本质是调用SwarmKit的UpdateNode接口,把role从master改成worker51Testing软件测试网Q\+Gl-iI.\
C9y
Docker swarm leave
(?eD2t*x(z051Testing软件测试网L9S^0`&rkf"z#?
判断还剩下的master数量是否是安全的,如果不是会报错51Testing软件测试网5J
m:k y/lua
z?#^i
把当前的swarm node停止51Testing软件测试网(y}*bs/[%E.I%w
xG
把当前node上所有的swarm mode启动的container停止
y5w2ys)J0清除掉swarm保存在机器上的log文件
mIs&[ XH2T0把daemon设置成非swarm mode,并把attachment上的network删掉51Testing软件测试网Tpv]6h&|;{e^
从实现原理来看,swarm leave== node demote + node rm
S/C.q4kbWJu,U0
5u"Wm~[(Tz azQ0
但是从测试结果发现,swarm leave后这个node就变成unreachable的状态了。。。并不会从node列表中消失,因此,正确的删除姿势就是node demote -> node rm,虽然docker有的文档中提到了swarm leave,但其实并不正确51Testing软件测试网JODL\Z#On6{s
51Testing软件测试网6i$qT8x2?p.G
相关阅读:
- 关于Docker这个问题,你可能不知道? (资深梦游, 2018-5-11)
- Docker 生态概览 (资深梦游, 2018-5-16)
- Docker——我们的硬盘空间去哪了? (资深梦游, 2018-5-21)
- Docker跨主机通信解决方案探讨 (资深梦游, 2018-5-24)
- 基于 Docker 搭建 MySQL 主从复制 (资深梦游, 2018-5-28)
- 理解Docker跨多主机容器网络 (资深梦游, 2018-5-29)
- 微服务之基于Docker的分布式企业级实践 (资深梦游, 2018-6-13)
- Docker移除17个暗藏挖矿程序的镜像, 超过五百万次下载 (资深梦游, 2018-6-19)
- Docker入门 (msnshow, 2018-7-29)
- Docker网络代理设置 (msnshow, 2018-8-05)
收藏
举报
TAG:
Docker
docker