一种基于Kubernetes的流水线自动化构建部署的方法及系统与流程

文档序号:25354582发布日期:2021-06-08 14:26阅读:283来源:国知局
一种基于Kubernetes的流水线自动化构建部署的方法及系统与流程
一种基于kubernetes的流水线自动化构建部署的方法及系统
技术领域
1.本发明涉及计算机软件开发应用技术领域,具体提供一种基于kubernetes的流水线自动化构建部署的方法及系统。


背景技术:

2.在软件开发过程中中经常需要频繁地升级、发布版本,发现问题时需要回滚进行修改,而在频繁的发布和回滚时,需要有一个体系去管理这些发布的流程,在发现问题时才可以回滚回来。
3.在近几年,kubernetes迅速成为了容器编排的事实上的开源标准。与虚拟机不同,kubernetes在抽象化基础架构的同时可靠地大规模编排容器,这可以帮助开发人员将工作负载与基础架构的复杂性分开。kubernetes是ci/cd自动化的理想选择,因为它提供了许多内置功能,这些功能使应用程序部署实现标准化和可重用,提高了开发人员的生产力,并加快了云原生应用程序的采用。在kubernetes频繁的发布和升级之间存在着构建应用的过程,如果人为参与其中会产生大量的工作量,并且由于人为干预的原因会出现各种各样的差异,这种差异会引起软件应用在使用工程中出现各种意外问题。在kubernetes中已经有了原生的机制,比如用service和deployment来完成这个功能,service可以提供一个对外访问的入口,自动做好负载均衡;deployment负责管理好这些副本。如果需要升级,通过滚动升级的方式去部署。


技术实现要素:

4.本发明的技术任务是针对上述存在的问题,提供一种能够实现简洁、高效、灵活、安全、统一应用构建部署流程,减少运维的工作量的基于kubernetes的流水线自动化构建部署的方法。
5.本发明进一步的技术任务是提供一种基于kubernetes的流水线自动化构建部署的系统。
6.为实现上述目的,本发明提供了如下技术方案:
7.一种基于kubernetes的流水线自动化构建部署的方法,该方法基于kubernetesy集成jenkins,通过脚本自动化构建打包应用并部署到docker容器中。
8.作为优选,该基于kubernetes的流水线自动化构建部署的方法具体包括以下步骤:
9.s1、编写代码;
10.s2、将代码推送到代码仓库中;
11.s3、webhook触发jenkins自动构建;
12.s4、jenkins流水线自动编译代码并打包成docker镜像;
13.s5、将docker镜像推送到harbor镜像仓库;
14.s6、连接到配置的kubernetes中,将生成的镜像部署到指定工作空间下。
15.作为优选,步骤s2中,将代码推送到git代码仓库中,git代码仓库中包含docker文件。
16.作为优选,步骤s4中,jenkins流水线中包括自定义脚本,根据准备好的kubernetes的yaml模板,将脚本中的变量替换成用户输入的选项,生成应用的kubernetes yaml配置文件。
17.作为优选,更新ingress的配置,根据新部署的应用的名称,jenkins调用kubernetes的api,部署应用到设定好的kubernetes环境中完成流水线自动构建部署流程。
18.一种基于kubernetes的流水线自动化构建部署的系统,包括代码编写模块、代码推送模块、jenkins自动构建模块、docker镜像打包模块、docker镜像推送模块和镜像部署模块;
19.代码编写模块用于编写代码;
20.代码推送模块用于将代码推送到代码仓库中;
21.jenkins自动构建模块用于webhook触发时,jenkins自动构建;
22.docker镜像打包模块用于jenkins流水线自动编译代码并打包成docker镜像;
23.docker镜像推送模块用于将docker镜像推送到harbor镜像仓库;
24.镜像部署模块用于在连接到配置的kubernetes中时,将生成的镜像部署到指定工作空间下。
25.作为优选,代码推送模块将代码推送到git代码仓库中,git代码仓库中包含docker文件。
26.作为优选,docker镜像打包模块中,jenkins流水线中包括自定义脚本,根据准备好的kubernetes的yaml模板,将脚本中的变量替换成用户输入的选项,生成应用的kubernetes yaml配置文件。
27.作为优选,docker镜像打包模块更新ingress的配置,根据新部署的应用的名称,jenkins调用kubernetes的api,部署应用到设定好的kubernetes环境中完成流水线自动构建部署流程。
28.与现有技术相比,本发明的基于kubernetes的流水线自动化构建部署的方法具有以下突出的有益效果:所述基于kubernetes的流水线自动化构建部署的方法能够可靠而有效地编译,构建并将其代码部署到环境中,完全替代了手动打包部署人为干预过程,完全实现全自动化构建部署,实现简洁、高效、灵活、安全、统一应用构建部署流程,减少了运维的工作量,具有良好的推广应用价值。
附图说明
29.图1是本发明所述基于kubernetes的流水线自动化构建部署的方法的流程图。
具体实施方式
30.下面将结合附图和实施例,对本发明的基于kubernetes的流水线自动化构建部署的方法及系统作进一步详细说明。
31.实施例
32.如图1所示,本发明的基于kubernetes的流水线自动化构建部署的方法,基于
kubernetesy集成jenkins,通过脚本自动化构建打包应用并部署到docker容器中。具体包括以下步骤:
33.s1、编写代码。
34.jenkins脚本完成应用构建查找基本参数,具体代码如下:
[0035][0036][0037]
s2、将代码推送到代码仓库中。
[0038]
将代码推送到git代码仓库中,git代码仓库中包含docker文件。
[0039]
s3、webhook触发jenkins自动构建。
[0040]
s4、jenkins流水线自动编译代码并打包成docker镜像。
[0041]
jenkins流水线中包括自定义脚本,根据准备好的kubernetes的yaml模板,将脚本中的变量替换成用户输入的选项,生成应用的kubernetes yaml配置文件。
[0042]
s5、将docker镜像推送到harbor镜像仓库。
[0043]
docker基础环境生成,拉取基础镜像成为底座,将代码进行编译,编译完成后将编译后的代码复制到镜像中的存储路径中,具体代码如下:
[0044]
from xx.xx.xx.xx/optimus/alpine

java:1.0.0#引用基础镜像
[0045]
arg new_filed2
[0046]
arg port1
[0047]
arg port2
[0048]
maintainer chenm@inspur.com
[0049]
volume/tmp
[0050]
arg dependency=target/dependency#定义存储路径
[0051]
copy${dependency}/meta

inf/opt/optimus/app/meta

inf
[0052]
copy${dependency}/jsp/opt/optimus/app/jsp
[0053]
copy${dependency}/skins/opt/optimus/app/skins
[0054]
#将解压后的文件复制进定义好的路径中
[0055]
workdir/opt/optimus
[0056]
expose$port_bpm1$port_bpm2
[0057]
entrypoint["java","

server","

xms1024m","

xmx1024m","

xx:metaspacesize=256m","

xx:maxmetaspacesize=256m","

xss1024k","

dspring.backgroundpreinitializer.ignore=true",
[0058]
"

djava.security.egd=file:/dev/./urandom","

cp","app/web

inf/classes:app/web

inf/lib/*","org.loushang.loushangapp"]
[0059]
#镜像启动命令。
[0060]
将构建完的应用编排进镜像中,生成docker制品,完成构建后将文件进行编排,生成docker镜像制品平推送到harbor仓库中。具体代码如下:
[0061][0062][0063]
s6、连接到配置的kubernetes中,将生成的镜像部署到指定工作空间下,具体代码如下:
[0064][0065]
本发明的一种基于kubernetes的流水线自动化构建部署的系统包括代码编写模块、代码推送模块、jenkins自动构建模块、docker镜像打包模块、docker镜像推送模块和镜像部署模块。
[0066]
代码编写模块用于编写代码。代码推送模块用于将代码推送到代码仓库中。
[0067]
代码推送模块将代码推送到git代码仓库中,git代码仓库中包含docker文件。
[0068]
jenkins自动构建模块用于webhook触发时,jenkins自动构建。
[0069]
docker镜像打包模块用于jenkins流水线自动编译代码并打包成docker镜像。
[0070]
docker镜像打包模块中,jenkins流水线中包括自定义脚本,根据准备好的kubernetes的yaml模板,将脚本中的变量替换成用户输入的选项,生成应用的kubernetes yaml配置文件。更新ingress的配置,根据新部署的应用的名称,jenkins调用kubernetes的api,部署应用到设定好的kubernetes环境中完成流水线自动构建部署流程。
[0071]
docker镜像推送模块用于将docker镜像推送到harbor镜像仓库。
[0072]
镜像部署模块用于在连接到配置的kubernetes中时,将生成的镜像部署到指定工作空间下。
[0073]
以上所述的实施例,只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1