一种容器集群环境下构建云原生应用CICD流水线的方法技术

技术编号:35989185 阅读:17 留言:0更新日期:2022-12-17 23:03
本发明专利技术涉及容器编排技术领域,具体为一种容器集群环境下构建云原生应用CICD流水线的方法,包括以下步骤:通过GitLab进行代码管理及版本控制,并设置Tag推送事件触发Webhook,Webhook触发Jenkins流水线任务;在Jenkins中通过Configure Clouds配置容器集群,通过GitLab的Webhook请求触发,配置的容器集群可以自动按需创建Jenkins Agent流水线执行器,执行Jenkins流水线任务,流水线任务执行完毕后该执行器会自动销毁;有益效果为:本发明专利技术提出的容器集群环境下构建云原生应用CICD流水线的方法通过应用的容器集群化部署,实现了应用镜像的版本化管理、应用的自动化部署、应用的滚动升级、应用的灵活扩缩容。应用的灵活扩缩容。应用的灵活扩缩容。

【技术实现步骤摘要】
一种容器集群环境下构建云原生应用CICD流水线的方法


[0001]本专利技术涉及容器编排
,具体为一种容器集群环境下构建云原生应用CICD流水线的方法。

技术介绍

[0002]随着云计算产业的不断发展,云原生底层核心技术也开始趋于成熟,细分领域的衍生技术呈井喷式爆发。容器、微服务、DevOps三大云原生核心技术中,通用的容器与容器编排技术已进入技术成熟期、市场采纳度高,在深化应用中诞生的边缘容器、多集群管理和容器安全均处于技术发展爆发期;微服务
,服务注册发现与服务代理技术已进入技术成熟期,新一代微服务架构

服务网格也即将从技术爆发期进入整合期;DevOps处于技术整合期,市场采纳度初步攀升。
[0003]现有技术中,随着用户对云原生技术应用便捷化、免运维、一体化等需求增多,云原生中间件、无服务器架构的代表技术函数计算,以及云原生应用融合类技术如云原生AI、云原生区块链技术研究热度高涨,进入爆发期。云原生技术进入生产环境后,其安全性和稳定性成为应用关注的重点,系统稳定性、混沌工程、云原生安全技术等开始发展。
[0004]但是,随着数字化转型的推进,各行业头部企业都已经开始云上软件开发实践,并形成了良好的带头和示范作用。随着实践不断深入,云架构重塑了开发和运维模式、云测试打破了效能瓶颈进而提升软件质量、混沌工程保障了云上系统的稳定性。云软件工程正从技术架构升级、软件质量提升、系统稳定性保障三个维度打造云软件新格局。

技术实现思路

[0005]本专利技术的目的在于提供一种容器集群环境下构建云原生应用CICD流水线的方法,以解决上述
技术介绍
中提出的问题。
[0006]为实现上述目的,本专利技术提供如下技术方案:一种容器集群环境下构建云原生应用CICD流水线的方法,所述该方法包括:
[0007]通过GitLab进行代码管理及版本控制,并设置Tag推送事件触发Webhook,Webhook触发Jenkins流水线任务;
[0008]在Jenkins中通过Configure Clouds配置容器集群,通过GitLab的Webhook请求触发,配置的容器集群可以自动按需创建Jenkins Agent流水线执行器,执行Jenkins流水线任务,流水线任务执行完毕后该执行器会自动销毁;
[0009]自定义Jenkins Pipeline流水线,拉取GitLab中的业务代码并进行代码打包,并将打包后的Jar包发布到Maven仓库、归档到Jenkins服务器;
[0010]自定义Jenkins Pipeline流水线,自动生成打包“制品发布唯一编号”,将归档到Jenkins服务器中的制品发布到GitLab仓库版本页,以供后期下载使用;
[0011]自定义Jenkins Pipeline流水线,拉取GitLab中的Docker镜像构建配置代码,通过“制品发布唯一编号”作为镜像Tag,通过Kaniko进行Docker镜像构建,并将构建的镜像推
送到本地Harbor仓库;
[0012]根据Harbor的多种镜像分发能力,实现镜像在不同仓库间的分发与同步;
[0013]自定义Jenkins Pipeline流水线,拉取GitLab中容器集群Manifest或Helm Chart配置文件,将配置文件中的Docker镜像Tag修改为本次构建镜像的最新Tag,并推送回GitLab仓库的固定分支;
[0014]GitLab仓库通过固定分支的Push事件触发Webhook,Webhook触发ArgoCD部署任务;
[0015]ArgoCD自动同步GitLab中最新的容器集群Manifest或Helm Chart配置文件,并根据其中配置的最新Docker镜像Tag,在本地Docker仓库拉取镜像,并根据Mainfest或Chart的配置进行应用的自动部署。
[0016]优选的,自动化部署任务触发方式,进一步包括:
[0017]通过GitLab仓库进行代码管理及版本控制;
[0018]代码管理及版本控制就是通过GitLab仓库进行业务代码、Docker镜像构建配置、容器集群Manifest部署配置的代码管理及版本控制;
[0019]通过提交代码,添加并推送Tag实现流水线任务触发。
[0020]优选的,Jenkins Pipeline流水线的执行步骤,进一步包括:
[0021]在Jenkins配置中通过Configure Clouds进行容器集群配置;
[0022]详细的,配置容器集群的名称、API Server地址、API Server登录凭证、执行器自动创建所在命名空间、执行器启动最大数量、Pod选择器标签、Pod的执行超时时间等信息。
[0023]优选的,Python脚本实现GitLab版本发布操作,进一步包括:
[0024]在Jenkins中自定义的Pipeline流水线中增加步骤,通过Python脚本自动生成“制品发布唯一编号”,通过Python的GitLab版本发布脚本将归档到本地Jenkins中的制品发布到GitLab仓库版本页,以供他人下载使用。
[0025]优选的,Python脚本实现Docker镜像打包名称及Tag组织操作,进一步包括:
[0026]在Jenkins中自定义的Pipeline流水线中增加步骤,拉取GitLab中容器集群Manifest或Helm Chart配置文件,通过Python脚本自动将配置文件中的Docker镜像Tag修改为本次构建的最新Tag,并推送回GitLab仓库的固定分支。
[0027]优选的,ArgoCD的Webhook触发,进一步包括:
[0028]Jenkins Pipeline流水线修改镜像最新Tag并提交GitLab后,GitLab仓库通过配置固定分支的Push事件触发Webhook,Webhook触发ArgoCD部署任务。
[0029]优选的,GitLab Webhook触发自动部署任务后,ArgoCD自动同步并拉取GitLab中最新的容器集群Manifest或Helm Chart配置文件,并根据Jenkins Pipeline流水线中修改的最新Docker镜像Tag,在本地Docker仓库拉取镜像,并根据Mainfest或Chart配置进行应用自动部署。
[0030]优选的,本地Docker仓库拉取镜像,需要通过Jenkins Pipeline流水线构建镜像时将镜像直接推送的本地仓库,或是通过Harbor镜像分发同步机制分发。
[0031]优选的,ArgoCD自动部署,需要ArgoCD中配置需部署的目的容器集群的API Server连接信息。
[0032]与现有技术相比,本专利技术的有益效果是:
[0033]本专利技术提出的容器集群环境下构建云原生应用CICD流水线的方法通过应用的容器集群化部署,实现了应用镜像的版本化管理、应用的自动化部署、应用的滚动升级、本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种容器集群环境下构建云原生应用CICD流水线的方法,其特征在于:所述该方法包括:通过GitLab进行代码管理及版本控制,并设置Tag推送事件触发Webhook,Webhook触发Jenkins流水线任务;在Jenkins中通过Configure Clouds配置容器集群,通过GitLab的Webhook请求触发,配置的容器集群可以自动按需创建Jenkins Agent流水线执行器,执行Jenkins流水线任务,流水线任务执行完毕后该执行器会自动销毁;自定义Jenkins Pipeline流水线,拉取GitLab中的业务代码并进行代码打包,并将打包后的Jar包发布到Maven仓库、归档到Jenkins服务器;自定义Jenkins Pipeline流水线,自动生成打包“制品发布唯一编号”,将归档到Jenkins服务器中的制品发布到GitLab仓库版本页,以供后期下载使用;自定义Jenkins Pipeline流水线,拉取GitLab中的Docker镜像构建配置代码,通过“制品发布唯一编号”作为镜像Tag,通过Kaniko进行Docker镜像构建,并将构建的镜像推送到本地Harbor仓库;根据Harbor的多种镜像分发能力,实现镜像在不同仓库间的分发与同步;自定义Jenkins Pipeline流水线,拉取GitLab中容器集群Manifest或Helm Chart配置文件,将配置文件中的Docker镜像Tag修改为本次构建镜像的最新Tag,并推送回GitLab仓库的固定分支;GitLab仓库通过固定分支的Push事件触发Webhook,Webhook触发ArgoCD部署任务;ArgoCD自动同步GitLab中最新的容器集群Manifest或Helm Chart配置文件,并根据其中配置的最新Docker镜像Tag,在本地Docker仓库拉取镜像,并根据Mainfest或Chart的配置进行应用的自动部署。2.根据权利要求1所述的一种容器集群环境下构建云原生应用CICD流水线的方法,其特征在于:自动化部署任务触发方式,进一步包括:通过GitLab仓库进行代码管理及版本控制;代码管理及版本控制就是通过GitLab仓库进行业务代码、Docker镜像构建配置、容器集群Manifest部署配置的代码管理及版本控制;通过提交代码,添加并推送Tag实现流水线任务触发。3.根据权利要求2所述的一种容器集群环境下构建云原生应用CICD流水线的方法,其特征在于:Jenkins Pipeline流水线的执行步骤,进一步包括:在Jenkins配置中通过Configure Clo...

【专利技术属性】
技术研发人员:王超颜亮祝乃国
申请(专利权)人:上海浪潮云计算服务有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1