一、情况描述
近期有个项目的开发环境需要迁移nas挂载盘,需要把开发环境的服务停止,待迁移完成后重启服务。
该环境使用的docker-swarm启动服务,之前考虑的是swarm是docker原生支持的,启动方便,命令也较为简单,能够满足使用需求。待更换nas盘完成,通知我启动服务。
按照正常的启动脚本,启动我们的服务,会发现集群中有两个服务一直处于new
状态无法正常启动。
二、解决思路
使用获取服务日志命令和展示所有服务状态的命令,看到的均为空日志,说明该容器可能压根就没有分配到相应的启动资源。
docker stack ps xxx
docker service logs xxx
考虑到要快速恢复服务,首先想到的是重启docker的stack,重启之后,发现有更多的服务处于new状态无法启动,且在docker的stack中没有日志显示。
此时考虑从系统层面,直接拿docker的服务日志来分析
journalctl -f -u docker | grep error
发现在docker中有大量关于ingress无法分配新的vip的报错
解决方法:
1.1 重启docker能够临时解决;
1.2 停止已启动的docker容器, 然后删除ingress网络:docker network rm ingress,重新生成ingress网络:
docker network create --driver overlay --ingress --subnet=[10.0.0.0](https://wiki.datagrand.com/10.0.0.0)/16 --gateway=[10.0.0.1](https://wiki.datagrand.com/10.0.0.1) --opt com.docker.network.mtu=1400 ingress
三、学习感悟
无
标签:10.0,ingress,服务,启动,--,Swarm,New,Docker,docker From: https://www.cnblogs.com/chiyun/p/17653614.html