作者回复: 总体的思考原则是,QA 测试的困难不能影响业务架构的升级和迁移,迁移的好处远远大于给测试带来的影响。 这种测试场景本身就比较复杂,我比较建议一并把这个测试流程改造成自动化测试进行,把复杂度内聚到测试程序里面。另一个解决思路是把定时器解耦到外部服务,而不依赖于容器的时间。 至于修改时间的问题,确实会有你提到的种种困难,不过也并不是没有解决方案,你可以看这个项目:https://github.com/wolfcw/libfaketime。它可以实现在单个容器里伪造任何你想要的时间,不过操作起来比较复杂,所以最好让 QA 把这部分测试逻辑改造成自动化。
作者回复: 可以换成 dockerhub 的 golang 镜像,只要有编译环境即可。
作者回复: 生产环境是需要杜绝直连 K8s 集群的。开发环境为了提高开发效率可以考虑开放,并通过 IP 白名单的方式兼顾安全性。
作者回复: 你可以简单的把 Pod 理解为虚拟机就可以了,虚拟机怎么改时区和时间,在 Pod 里就怎么改。 比如,如果你的基础镜像是 Debian 或 CentOS,那么可以通过设置 TZ 环境变量来改时区,例如:TZ=Asia/Shanghai。 其次,还可以在构建容器镜像的时候通过修改 Dockerfile 也可以修改时区和时间,参考这个链接:https://dev.to/0xbf/set-timezone-in-your-docker-image-d22。
作者回复: 可能是 Nocalhost 本身的问题,IDEA 插件占用内存过高,VSCODE 插件性能会更好。
作者回复: 已回复~