目前,我正在使用Jenkins和kubernetes处理CI/CD管道的实现演示。我创建了一个Jenkins管道作业,并在Jenkinsfile中添加了每一步。对于kubernetes,我为Kubernetes资源创建了部署和服务YAML文件。
部署中的图像版本管理
对于SVN存储库中的每个提交,我通过Jenkins环境变量将标记添加为build来创建docker映像。
image:1
image:2
.
.
image:n困惑
如果我在Jenkinsfile部署阶段使用kubectl set image命令更新我的部署,那么它将适用于第一次提交吗?
我感觉到了这种混乱,因为命令说,如果YAML文件中定义的映像发生了更改,它是用于更新部署的。因此,如果我根据构建号(映像名称:buildnumber)更改每个提交的映像,那么如果没有部署退出,它将第一次工作吗?
发布于 2019-11-07 07:36:45
所以我可以想出多种方法,一种是讨厌的,另一种是我喜欢的。你可以根据你最适合自己的情况来决定。
解决方案1 --您可以在Jenkins中添加一个简单的条件签入,如果部署不存在,则第一次创建它并将其设置为第一个映像。并从第二次提交更新开始。
或
解决方案2 --把它看作每个存储库或服务都应该在其中有自己的deployment.yml。那么,当第一次签入代码时,您可以使用那个yml来检查部署是否已经存在?如果它不只是使用kubectl apply myapp.yml创建开发,第二种情况下,kubectl set image将工作。
https://stackoverflow.com/questions/58743466
复制相似问题