docker 群集节点状态已关闭,但节点应处于就绪状态

jjjwad0x  于 2023-06-21  发布在  Docker
关注(0)|答案(4)|浏览(152)

我试图在由三个乌藨子PI组成的群上运行服务。
我有一个管理者和两个工作者节点。
问题是,有时工作节点的状态是“关闭”,即使节点被正确地打开并连接到网络。
我刚开始使用Docker,所以我可能做错了什么,但一切似乎都设置正确。
你怎么避免这种“低落”状态

z9smfwbn

z9smfwbn1#

我以前也遇到过同样的问题。您可以通过清理有问题的节点上的/var/lib/docker/swarm/来修复它,然后将其重新连接到swarm。

1) on problem node 

sudo systemctl stop docker
sudo rm -rf /var/lib/docker/swarm

2) on swarm manager 

docker node rm <problem-node-name>
docker swarm join-token worker
    docker swarm join --token <token> <manager_ip>:2377

3) on problem node 

sudo systemctl start docker
enter code here
docker swarm join --token <token> <manager_ip>:2377
h4cxqtbf

h4cxqtbf2#

这可能取决于您的docker的确切版本,但您的问题是在this thread中发现的。
一个可能的解决方案是做一个docker ps,这似乎有助于节点加入群。

roejwanj

roejwanj3#

在我的例子中,docker节点的默认路由无效,DNS不起作用。无论如何,我可以通过ip地址在机器上使用ssh。我先测试了一下:

ping google.com

但没有成功。然后我更改了默认路由:

route -n
route add default gw 10.1.2.3
route del default gw 10.1.2.1 (offending gateway)

最后将DNS服务器从:

/etc/resolv.conf

然后节点自动出现了。

oewdyzsn

oewdyzsn4#

在我的情况下,(虚拟)网络设备发生了变化。刚刚调整了设置,为每个有问题的节点做了docker swarm leavedocker swarm join,然后从管理器中删除了(docker node rm ...)它们。从那以后就没有问题了。
另一个原因似乎与Ubuntu中的ufw有关(由一些系统故障引起)。如果你使用Ubuntu execute:ufw disable,然后ufw enable,节点将再次自动加入。如果你没有使用Ubuntu,请暂时禁用防火墙,以检查是否与此相关。

相关问题