一.项目场景:
部署服务器时使用了双网络平面。
管理网段是千兆网,使用的ip段为192.168.100.*
数据网段是万兆网,使用的ip段为192.168.200.*
最初node1,node2通过100网段组建起docker swarm的集群。
后来node3,node4通过200网段连入网络。由于千兆交换机没口了,因此无法接入到100网段。
二.解决方案:
2.1 所有子节点leave
在node2,node3,node4上执行如下操作
docker swarm leave
2.2 主节点强制leave
docker swarm leave --force
#查看集群状态,是否所有的节点都解散了
docker node ls
2.3 重新初始化集群
sudo docker swarm init --advertise-addr 192.168.200.1
#portainer相关操作,如果仅部署了原生docker swarm,可以忽略下面的步骤
cd /opt/portainer-1.24.0/
docker stack deploy --compose-file=portainer-agent-stack.yml portainer
2.4 其他节点重新加入
在其他节点上执行
docker swarm join --token xxxx 192.168.200.1:2377
2.5 再重新deploy
docker stack deploy --compose-file=portainer-agent-stack.yml portainer