1.背景信息
本案例测试环境下发生。
本次问题环境比较复杂,只能说解决了问题,但是还没精准定位到是哪个原因导致,这里还是做一个记录。
接到web项目小伙的求助,说是访问域名网页空白,发现调试界面的url路由到了其它项目的地址,怀疑是ingress路由问题。
但是后端pod查看日志,日志正常,我看也没有什么异常问题出现。只有一个304的状态码。
但是网页访问空白,返回其它域名信息。比如原本访问www.baidu.com。结果百度的网页是一篇空白,使用浏览器调试,结果代码的index返回的却是www.google.com信息。
2.排错以及解决
这里也只能按照排错思路去解决问题。
第一步查看ingress,发现ingress又不正常,再次出现没有IP的情况,以为是改变了pod时间,还是以前的bug。(参考ingress nginx出现404错误)。但是这次也没出现404代码,但是,ingress显示没有IP分配,而日志可以正常捕获到。(之前出现404是没有请求到pod的)。
然后按照之前的思路,以为是ingress的bug,于是删除了ingress控制器pod,问题还是没有得到解决。
于是突然发现,这个小伙子从来不看告警,会不会集群状态出现了问题,便登录腾讯云tke,查看node信息,果然,cpu和内存基本满了。
于是扩容node节点以及同时删除了pod的ingress文件,重新apply,最后ip出现,访问也正常。
由于这个问题出现比较急,没有时间做更多的排查,是为了解决问题为主,所以具体什么原因导致尚不清楚,主要做了以下几部,这里做一个简单的记录,后期碰到了文档再次补充。
- 删除ingress 控制器pod。
- 删除pod的ingress文件。
- 扩容node节点。
3.2022年4月2日更新
问题得到解决,首先第一个问题是访问出现其他项目的网址,比如www.baidu.com,结果访问到了www.google.com,原因是负载均衡默认的80是www.google.com,443是www.baidu.com,访问的时候没有加https,一个大乌龙,麻了。
第二个问题就是网页还是会莫名其妙的报错,有的人报错,有的人不报错,报错的人访问的代码也是以前的,检查pod这回是绝对没有问题的,果然询问了研发,一天之内,频繁的更新cdn资源,缓存没有刷新,CDN手动刷新一次就好了。