前言
今天老板催发布新版本,然后就兴致冲冲去准备发版本,检查下springboot的正式环境的配置配好没有啊之类的,然后准备build个镜像推到私有仓库,然后准备登陆到harbor,当我发现怎么登陆都账号密码都错误的时候,我渐渐意识到问题的严重性了
一系列骚操作
马上看看是不是什么东西挂了,看到core可能因为资源被驱赶了,但是贴心暖男k哥(k8s哥)马上给我安排了,重启了那个core。
然后马上就去查看数据库是不是密码被改了,发现并没有修改?难道服务器被黑了被改密码了?但是我想了想密码其实也不复杂,是那个神经病这么有空啊!!这都要改!
先不管了,登陆进去比较重要,别的我也不懂了,上线要紧。
本来想直接在数据库改密码,但是发现是加盐加密后的密码,然后网上查了查,发现有这么个东西,就去找了半年没联系写py的同学,让他帮我跑一跑这代码。
好了,拿到盐跟加密后的密码了,直接改了下数据库,心里想”估计这次稳了” 满怀欣喜地输入账号密码,结果。我特发!!
不要慌,问题不大 (老板在旁边提着刀问着能上线没有)
然后我在寻思是不是这个加密方法过时了?跑到测试环境,在测试环境用webui改好密码,再把密码盐复制到正是环境,我可太机智了
WDNMD 为什么
!
咦,怎么感觉测试环境登陆跟正式环境的手感怪怪的呢(本来想录歌gif的有点麻烦算了),正式环境的返回居然那么快,真么回事,F12一按,我人都傻了,500??怎么回事!
马不停蹄去看下日志,我特发?少了个字段?
破案
此时我觉得我心里有数了,还记得一开始的图吗,当时就应该多输出点东西看的
发现这个pod被摞地了,跑到别的节点上了。
然后马上看看镜像!emm,
这不是我部署的,这锅我不背
马不停蹄地去github,搜到登陆的代码
看到这个16days ago我有点不淡定了,旁边的commit id 我点爆
WDNMD
好的,到这里我也破案结束了。
总结
好了,所以原因就是,负责部署这个harbor的人的锅,偷懒没去选一个稳定的版本号或者tag,直接用了dev,导致core代码更新并且发布到dockerhub上了。而由于k8s上是根据资源调度pod的,因为本来的节点资源不足被调度到别的节点上,而那个节点本地又没那个docker image,所以就去dockerhub上拉了最新的,由于core更新了,database的并没有更新到,导致不兼容出错了。
所以,一定要指定docker image的版本或者tag,当然不排除只有我可能有时候为了省事,就直接docker pull xxx:latest
了。
好了,水了篇没什么水平的文章,该下班了,明天再上线好了哈哈