现在有一个springboot-web项目,引用了很多其他服务例如redis,rabbitmq,目前是使用docker-compose,每个服务最终会对应一个container,web项目的构建就是简单的将jar包COPY到容器中并启动。请问一下如何在生产环境中去使用呢?假如我想要升级服务(可能升级web项目,也可能升级redis版本等),我应该怎么去设计整个升级部署流程呢?
最笨的办法是去直接更新docker-compose.yaml文件,然后docker-compose up? 这似乎太挫了?
任何建议都非常感谢!!
如果要完整:
使用 CI/CD 加 k8s 集群配合私有镜像库.
我帮公司搭建的是:
用 Rancher 构建一个单节点 k8s 集群(实际上你不需要直接操作 k8s 集群),Rancher 自己有一个简单的 CI/CD,但是只支持 git,而且真的很 简 单.
你可以搭建 gitlab/jenkins/teamcity 之类的东西来处理自动打包镜像上传私有库 harbor 的事情.
升级的话只需要去 rancher 重新写一下使用的镜像版本号即可. (rancher 还支持不同的升级策略:先启动新的再关掉旧的、批量建新的(多个 POD)批量删旧的之类.
如果这套东西觉得太重,那么暂时只有 docker-compose 这种(或类似的)方案。