问题形容
在最新的 docker 集群上搭建 docker swarm 集群之后,每个节点的 docker 服务都呈现了找不到内核参数 net.ipv4.vs.expire_nodest_conn
的谬误。
在任意节点上,应用 service docker status -l
或systemctl status docker -l
或cat /var/log/message | grep dockerd | grep error
,能够看到以下谬误:
... level=error msg="error reading the kernel parameter net.ipv4.vs.expire_nodest_conn" error="open /proc/sys/net/ipv4/vs/expire_nodest_conn: no such file or directory"
环境如下:
- 3 台 CentOS7 节点,OS 版本:
CentOS Linux release 7.4.1708 (Core)
,内核版本:3.10.0-693.el7.x86_64
- docker 版本:
19.03.12
以前老点的 docker 版本仿佛不会报这个错。。。
解决办法
呈现这个起因是因为宿主机没有加载 ip_vs 模块。在各个节点加载 ip_vs 模块后重启 docker 即可。
modprobe ip_vs
service docker restart
再次查看 docker 日志service docker status -l
,发现错误曾经隐没。