pkill引起的一次事故
2019-10-26 本文已影响0人
PENG先森_晓宇
背景:在宿主机上安装了俩个haproxy容器,并使用keepalived达到高可用。
情景:宿主机上安装了keepalived,然后宿主机上启动的容器haproxy内也启动了keepalived。
操作:由于需要调试本地的keepalived,修改完keepalived配置后,需要杀死keeplaived进程,然后重启。所以使用pkill keepalived来杀死,然后在重启。
现象:发现此时的容器内的虚拟ip172.40.0.100已经ping不通了,也就是haproxy容器内的keepalived服务已经挂了。
误区:在宿主机上执行pkill keepalived,只会杀死宿主机的keepalived的服务
思考:很明显在宿主机上执行pkill keepalived后,将宿主机和所有docker内关于keepalived的服务都杀死了。说明在docker内的所有进程将会映射到宿主机上,而宿主机的进程并不会映射到docker内。
证明:在宿主机上使用ps aux | grep keepalived,果然发现并不是只有宿主机上keepalived的进程,还包括了俩haproxy内的keepalived进程(圈住的部分)
image