工作项目实战:go项目版本升级(gov1.14 -> v1.20.8)

942 阅读1分钟

背景

4年前的老项目,底层容器是1.18的版本,与当前k8s官方主流和最新的版本相差较大,近期底层需要做1.18 -> 1.28的升级,于是平台联动升级。经过调研,目前确定的升级内容是两部分

  1. go版本从1.14 -> 1.20.8
  2. k8s的api版本从1.18 -> 1.28.2

本篇文章主要讲go版本的升级过程以及遇到的问题,下一篇会介绍k8s api的升级过程和遇到的问题,敬请期待。

升级方案

  1. 下载和部署go1.20.8的环境 如下图,直接使用goland中下载对应版本的go环境即可。 goland下载go环境.png
  2. 修改项目中go mod中go版本 更新go mod.png
  3. 使用go mod tidy -v更新依赖
  4. 启动,解决启动中依赖问题

遇到的问题

  1. 遇到runtime报错 image.png 上边报错原因经过定位是因为原先的go mod中写死了x/sys的版本 golang.org/x/sys => golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a 删除该行,让go自己获取sys的对应包,问题得到解决

最终结果

项目的go版本顺利升级到v1.20.8,实现预期。