关于docker容器机制下LB和目标应用容器的访问问题
起因:初步推测是esm不当操作导致服务访问失败。
现象:使用http://test.esm.zte.com.cn/module/
http://10.5.16.156/module/都无法访问接口,但是http://10.5.16.156/mdm8可以进入主数据入口。
am12:00之前,主要排除问题点,1,域名访问;
2,微服务版本;
获取以下信息: 备注,BDA在szxl下面的租户有如下三台:
1,结合昨晚126报错过,在启动项里面将esm启动宿主机器指定为127,启动成功,并且成功访问-->126机器访问出现问题;
2,具体问题集中到126上:
通过esm看容器log,没有什么问题,日志正常;
然后再到宿主机: 使用docker ps查看启动中的容器,并且根据 docker log 容器ID来查询容器里面的日志,日志依然正常;-->锁定问题出在LB->126上;
这个时候遇到问题是,如何确定LB->容器(物理机为126)是不通的!
提供一个方法:
登录esm,进入LB的微服务,进入LB微服务本身控制台。通过使用:
curl http://localhost/module/info
curl http://localhost/mdmclean/info
curl http://localhost/mdmcode/info
三个入口都无法正常返回 ,报错503(同样的方法访问curl http://localhost/mdm/info可以连通,所以更能确定127访问是有效的)
重启LB,故障依旧;
然后提供了一个万能方法,重启126(主机重启后docker进程会自动起来的,然后rancher集群的编排系统会根据编排文件compose.yml起动容器)
再次访问curl,接口连通。访问test.emdm.zte.com.cn/module,网页返回正常。
-----------------------------------
常用docker调优命令
1,docker查看当前生存的容器
docker ps,从中捞取container id
2,根据容器id,可以看日志
docker log 容器id
或者:在docker容器宿主机上查看日志
docker logs -f -t --since="2020-03-25" --tail=/usr/bin/docker-containerd-shim-current acada8d36d28ad6c0b629563df750d7d5fb3df0edc405d30c1647f1982c8bc2e
3,进入容器
docker attach 容器id