版本在运维的重要性
前两天遇到一个问题,就是部署在华为云的容器的某个应用,无论怎么更新似乎应用的版本都没有真正被更新。
这里有一个很有趣的问题:你怎么判断是应用没有更新问题,还是更新了没有解决问题?
这个问题,我们这么解决的:
在所有打包的java应用(包括前端web应用上面都标记了版本),因此,我查…com/app1/version/latest.json
发现git-sha是老的版本,编译时间也不对。
从上面发现版本是v1.0,编译时间为10点43分,git-sha1是d558049, 根据这个信息再去检查是否用了最新的代码。
再去看是否推送到华为云的镜像库,根据 digest id 是正确的。
最后发现,原来k8s 里面有一个image pull policy,用的 Ifnotpresent,即如果本地有,则不去拉取最新的镜像。
呃呃。。。
改为 always 正常了。
回到问题的初始: 你现在的运行应用,你知道它是那个git的分支,哪个commit 版本么?
不要跟小明一样,我要我认为。。。不要你认为。。。
对。