在kubernetes中使用kubectl set image命令使用CI(Jenkins)创建部署的行业标准解决方案是什么?

当前,我正在使用Jenkins和kubernetes进行CI / CD管道的实现演示。我创建了一个Jenkins管道作业,并在Jenkinsfile中添加了每一步。对于kubernetes,我为Kubernetes资源创建了部署和服务YAML文件。

正在部署的映像版本管理

对于SVN存储库中的每次提交,我都通过通过Jenkins环境变量将标记添加为内部版本号来创建docker映像。

image:1
image:2
.
.
image:n

困惑

如果我在Jenkinsfile部署阶段使用kubectl set image命令更新我的部署,那么它对第一次提交有效吗?

我感到很困惑,因为命令说如果YAML文件中定义的映像发生更改,它是用于更新部署。因此,如果我要根据内部版本号(image-name:buildnumber)更改每个提交的映像,那么如果没有部署出口,它将在第一次运行?

fangquans 回答:在kubernetes中使用kubectl set image命令使用CI(Jenkins)创建部署的行业标准解决方案是什么?

因此,我可以想到多种方式,一种有点怪异,而另一种是我喜欢的。您可以根据最适合自己的情况来决定。

解决方案1 ​​-您可以在Jenkins中添加一个简单的有条件检入,如果不存在部署,则首次创建它并将其设置为第一个映像。从第二次提交开始更新。

OR

解决方案2 -将其视为每个存储库或服务都应具有自己的deployment.yml。因此,当首次签入代码时,您可以使用该yml来检查部署是否已经存在?如果它不只是使用kubectl apply myapp.yml创建开发,并且第二次提交kubectl set image将起作用。

本文链接:https://www.f2er.com/3146943.html

大家都在问