双机服务堆栈只能在一台机器下启动

问题:双机启动有数时,只能在一台机器上启动服务

解决:

首先确认两台服务器的磁盘空间是否够

然后确认两台机器的SELINUX已经关闭(/etc/selinux/config中SELINUX=disabled),没有关闭的话置为 disabled 后重启服务器。

在两台机器中执行 docker network ls ,确认ingress和ydswarm_youdata的标识是否一致。

若不一致请重启从机docker,然后重新建立swarm网络。一般情况下,出现这种情况往往是Swarm网络脑裂的可能性比较大。

补充:

建议每次执行 docker stack rm 时,请等待片刻,待dp无容器后再执行dsd。

频繁执行删除堆栈及dsd,可能导致从机旧的ydswarm_youdata网络无法删除,导致后续一系列网络问题。要删除旧的网络,只能通过root重启docker,清空元信息缓存,通过 docker network rm 都是无法删除的。