mysql连接测试不成功的原因有哪些
651
2022-09-22
ingress nginx遇到502错误,connect() failed (113 Host is unreachable) while connecting to upstream
1.背景
之前碰到过ingress nginx遇到502错误,(113 No route to host) while connecting to upstream的问题,于是按照以上方式将ingress升级至1.30。
但是今天发现,发布容器后,老的报错没有碰上,这里出现一个相同的代码,但是不一样的报错提示。
出现的场景是,因为业务需要测试更改时间,时间更改后在使用ntp同步回去,pod就无法访问,出现connect() failed (113 Host is unreachable) while connecting to upstream报错。
升级至1.30之后。无法访问的情况还存在,只是nignx的报错日志内容有点小改变,但是网页的报错还是相同。
2.原因
以下描述一下整个排错的过程。
1.这里首先查看最后端pod的IP为以下:172.16.0.98
然后使用浏览器访问网址,结果为502
2.查看ingress日志的,发现ingress-nginx upstreamhost的IP为172.16.0.90,此IP为更新之前的pod IP。
3.查看ingress-nginx的连接,发现也是向老的pod发起的请求。该pod都已经不存在了。
到这里,问题定位到了,还是之前的bug,在更改pod时间后,然后将时间还原,然后发布版本后,老的pod消失,新的pod出现,ingress还是会将请求转发至老的pod,导致出现以上错误,网页返回502.
4.解决方式(临时)
上一篇案例中与腾讯云联调怀疑是ingress保存了已经不存在的pod连接,将请求转发到已经删除掉的pod上去,所以这次直接删除ingress然后自动拉起一个问题临时得到解决。
至于最终解决办法,还是没有改变。在删除ingress控制器之后,ingress-nginx控制器的日志正常。
后记:想过尝试重置pod的网卡或者清空TCP缓存,但是由于是pod,无法做到这些操作,至于最终解决方案,目前正在调研中。
作者:小家电维修
转世燕还故榻,为你衔来二月的花。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~