我正在尝试使用Jenkins,Kubernetes和我的SVN存储库来实现用于部署Spring Boot微服务的CI / CD管道。在我探索时,我发现在Jenkins + Kubernetes部署中,Docker镜像正在从图像注册表中拉出来。当我探索示例实现时,我发现了在Jenkins中自动构建图像的选项以及用于定义代码存储库的选项,如GitHub / SVN。
关于詹金斯工作流程,我感到怀疑并在此处添加,
1。如果Docker镜像是从某些图像注册表中提取出来以便使用Jenkins和Kubernetes进行部署,那么为什么我们再次在Jenkins中定义代码存储库源链接(GitHub / SVN)?
怀疑的理由 - 我在想,Kubernetes和Jenkins只是依赖图片注册表进行图片处理。所以我怀疑为什么我们在Jenkins中定义我们的GitHub存储库链接。这只是怀疑的原因。如果我在错误的方向思考,请纠正我。
2。当我正在探索时,我发现Jenkins中的自动Docker图像构建选项使用了一些脚本(我不知道正确的工作,我发现你管视频)。因此,如果我们从图像注册表中提取图像,那么为什么我们再次在Jenkins中使用自动Docker镜像?如果这是另一种选择,詹金斯的图像提取和自动图像构建之间有什么区别?这些都是按照我们的要求吗?或者这背后有其他概念吗?
答案 0 :(得分:2)
对不起,但我没有完全理解你的问题。我试着解释我们的CI / CD工作流程。也许这有帮助。
使用不同的开关/构建参数,开发人员可以决定构建仅为开发人员部署到特定快照注册表的SNAPSHOT构建,或构建实际版本。
开发人员还可以决定将Docker镜像部署到int或prod系统。在这种情况下,Kubernetes从注册表(Jenkins之前在那里部署)中提取图像。
答案 1 :(得分:1)
我们正在开发名为Jenkins X的开源项目,该项目是Jenkins基金会的一个拟议子项目,旨在使用Jenkins和GitOps进行促销,自动化Kubernetes上的CI / CD。
当您将更改合并到主分支时,Jenkins X会为您的应用创建一个新的语义版本分发(pom.xml,jar,docker image,helm chart)。然后,管道自动生成Pull请求,以通过GitOps在所有环境中推广您的应用程序。
这里a demo of how to automate CI/CD with multiple environments on Kubernetes using GitOps用于在环境和拉动请求预览环境之间进行推广 - 使用Spring Boot和nodejs应用程序(但我们支持多种语言+框架)。
请注意,Jenkins X现在只支持git。