为了能到远方,脚下的每一步都不能少.|

王寄鱼

园龄:4年3个月粉丝:5关注:1

Docker-Swarm启动服务一直处于New状态

一、情况描述

​ 近期有个项目的开发环境需要迁移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的报错

lQLPJxaayqdvii3NBrDNDviw2CcaNoBP79kC_q1HXMAzAA_3832_1712

解决方法:

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

三、学习感悟

本文作者:王寄鱼

本文链接:https://www.cnblogs.com/chiyun/p/17653614.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   王寄鱼  阅读(244)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起