Nothing Special   »   [go: up one dir, main page]

CN112925610A - 一种基于Kubernetes的流水线自动化构建部署的方法及系统 - Google Patents

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

Info

Publication number
CN112925610A
CN112925610A CN202110238369.6A CN202110238369A CN112925610A CN 112925610 A CN112925610 A CN 112925610A CN 202110238369 A CN202110238369 A CN 202110238369A CN 112925610 A CN112925610 A CN 112925610A
Authority
CN
China
Prior art keywords
module
mirror image
jenkins
kubernetes
deployment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110238369.6A
Other languages
English (en)
Inventor
孙正均
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Cloud Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Cloud Information Technology Co Ltd filed Critical Inspur Cloud Information Technology Co Ltd
Priority to CN202110238369.6A priority Critical patent/CN112925610A/zh
Publication of CN112925610A publication Critical patent/CN112925610A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)

Abstract

本发明公开了一种基于Kubernetes的流水线自动化构建部署的方法及系统,属于计算机软件开发应用技术领域。本发明的基于Kubernetes的流水线自动化构建部署的方法基于Kubernetesy集成Jenkins,通过脚本自动化构建打包应用并部署到docker容器中。该发明的基于Kubernetes的流水线自动化构建部署的方法能够实现简洁、高效、灵活、安全、统一应用构建部署流程,减少运维的工作量,具有很好的推广应用价值。

Description

一种基于Kubernetes的流水线自动化构建部署的方法及系统
技术领域
本发明涉及计算机软件开发应用技术领域,具体提供一种基于Kubernetes的流水线自动化构建部署的方法及系统。
背景技术
在软件开发过程中中经常需要频繁地升级、发布版本,发现问题时需要回滚进行修改,而在频繁的发布和回滚时,需要有一个体系去管理这些发布的流程,在发现问题时才可以回滚回来。
在近几年,Kubernetes迅速成为了容器编排的事实上的开源标准。与虚拟机不同,Kubernetes在抽象化基础架构的同时可靠地大规模编排容器,这可以帮助开发人员将工作负载与基础架构的复杂性分开。Kubernetes是CI/CD自动化的理想选择,因为它提供了许多内置功能,这些功能使应用程序部署实现标准化和可重用,提高了开发人员的生产力,并加快了云原生应用程序的采用。在Kubernetes频繁的发布和升级之间存在着构建应用的过程,如果人为参与其中会产生大量的工作量,并且由于人为干预的原因会出现各种各样的差异,这种差异会引起软件应用在使用工程中出现各种意外问题。在Kubernetes中已经有了原生的机制,比如用Service和Deployment来完成这个功能,Service可以提供一个对外访问的入口,自动做好负载均衡;Deployment负责管理好这些副本。如果需要升级,通过滚动升级的方式去部署。
发明内容
本发明的技术任务是针对上述存在的问题,提供一种能够实现简洁、高效、灵活、安全、统一应用构建部署流程,减少运维的工作量的基于Kubernetes的流水线自动化构建部署的方法。
本发明进一步的技术任务是提供一种基于Kubernetes的流水线自动化构建部署的系统。
为实现上述目的,本发明提供了如下技术方案:
一种基于Kubernetes的流水线自动化构建部署的方法,该方法基于Kubernetesy集成Jenkins,通过脚本自动化构建打包应用并部署到docker容器中。
作为优选,该基于Kubernetes的流水线自动化构建部署的方法具体包括以下步骤:
S1、编写代码;
S2、将代码推送到代码仓库中;
S3、Webhook触发Jenkins自动构建;
S4、Jenkins流水线自动编译代码并打包成Docker镜像;
S5、将Docker镜像推送到Harbor镜像仓库;
S6、连接到配置的Kubernetes中,将生成的镜像部署到指定工作空间下。
作为优选,步骤S2中,将代码推送到Git代码仓库中,Git代码仓库中包含Docker文件。
作为优选,步骤S4中,Jenkins流水线中包括自定义脚本,根据准备好的Kubernetes的YAML模板,将脚本中的变量替换成用户输入的选项,生成应用的KubernetesYAML配置文件。
作为优选,更新Ingress的配置,根据新部署的应用的名称,Jenkins调用Kubernetes的API,部署应用到设定好的Kubernetes环境中完成流水线自动构建部署流程。
一种基于Kubernetes的流水线自动化构建部署的系统,包括代码编写模块、代码推送模块、Jenkins自动构建模块、Docker镜像打包模块、Docker镜像推送模块和镜像部署模块;
代码编写模块用于编写代码;
代码推送模块用于将代码推送到代码仓库中;
Jenkins自动构建模块用于Webhook触发时,Jenkins自动构建;
Docker镜像打包模块用于Jenkins流水线自动编译代码并打包成Docker镜像;
Docker镜像推送模块用于将Docker镜像推送到Harbor镜像仓库;
镜像部署模块用于在连接到配置的Kubernetes中时,将生成的镜像部署到指定工作空间下。
作为优选,代码推送模块将代码推送到Git代码仓库中,Git代码仓库中包含Docker文件。
作为优选,Docker镜像打包模块中,Jenkins流水线中包括自定义脚本,根据准备好的Kubernetes的YAML模板,将脚本中的变量替换成用户输入的选项,生成应用的Kubernetes YAML配置文件。
作为优选,Docker镜像打包模块更新Ingress的配置,根据新部署的应用的名称,Jenkins调用Kubernetes的API,部署应用到设定好的Kubernetes环境中完成流水线自动构建部署流程。
与现有技术相比,本发明的基于Kubernetes的流水线自动化构建部署的方法具有以下突出的有益效果:所述基于Kubernetes的流水线自动化构建部署的方法能够可靠而有效地编译,构建并将其代码部署到环境中,完全替代了手动打包部署人为干预过程,完全实现全自动化构建部署,实现简洁、高效、灵活、安全、统一应用构建部署流程,减少了运维的工作量,具有良好的推广应用价值。
附图说明
图1是本发明所述基于Kubernetes的流水线自动化构建部署的方法的流程图。
具体实施方式
下面将结合附图和实施例,对本发明的基于Kubernetes的流水线自动化构建部署的方法及系统作进一步详细说明。
实施例
如图1所示,本发明的基于Kubernetes的流水线自动化构建部署的方法,基于Kubernetesy集成Jenkins,通过脚本自动化构建打包应用并部署到docker容器中。具体包括以下步骤:
S1、编写代码。
Jenkins脚本完成应用构建查找基本参数,具体代码如下:
Figure BDA0002961151270000031
Figure BDA0002961151270000041
S2、将代码推送到代码仓库中。
将代码推送到Git代码仓库中,Git代码仓库中包含Docker文件。
S3、Webhook触发Jenkins自动构建。
S4、Jenkins流水线自动编译代码并打包成Docker镜像。
Jenkins流水线中包括自定义脚本,根据准备好的Kubernetes的YAML模板,将脚本中的变量替换成用户输入的选项,生成应用的Kubernetes YAML配置文件。
S5、将Docker镜像推送到Harbor镜像仓库。
Docker基础环境生成,拉取基础镜像成为底座,将代码进行编译,编译完成后将编译后的代码复制到镜像中的存储路径中,具体代码如下:
FROM xx.xx.xx.xx/optimus/alpine-java:1.0.0#引用基础镜像
ARG NEW_FILED2
ARG PORT1
ARG PORT2
MAINTAINER chenm@inspur.com
VOLUME/tmp
ARG DEPENDENCY=target/dependency#定义存储路径
COPY${DEPENDENCY}/META-INF/opt/optimus/app/META-INF
COPY${DEPENDENCY}/jsp/opt/optimus/app/jsp
COPY${DEPENDENCY}/skins/opt/optimus/app/skins
#将解压后的文件复制进定义好的路径中
WORKDIR/opt/optimus
EXPOSE$PORT_bpm1$PORT_bpm2
ENTRYPOINT["java","-server","-Xms1024m","-Xmx1024m","-XX:MetaspaceSize=256m","-XX:MaxMetaspaceSize=256m","-Xss1024k","-Dspring.backgroundpreinitializer.ignore=true",
"-Djava.security.egd=file:/dev/./urandom","-cp","app/WEB-INF/classes:app/WEB-INF/lib/*","org.loushang.LoushangApp"]
#镜像启动命令。
将构建完的应用编排进镜像中,生成docker制品,完成构建后将文件进行编排,生成docker镜像制品平推送到harbor仓库中。具体代码如下:
Figure BDA0002961151270000042
Figure BDA0002961151270000051
S6、连接到配置的Kubernetes中,将生成的镜像部署到指定工作空间下,具体代码如下:
Figure BDA0002961151270000052
本发明的一种基于Kubernetes的流水线自动化构建部署的系统包括代码编写模块、代码推送模块、Jenkins自动构建模块、Docker镜像打包模块、Docker镜像推送模块和镜像部署模块。
代码编写模块用于编写代码。代码推送模块用于将代码推送到代码仓库中。
代码推送模块将代码推送到Git代码仓库中,Git代码仓库中包含Docker文件。
Jenkins自动构建模块用于Webhook触发时,Jenkins自动构建。
Docker镜像打包模块用于Jenkins流水线自动编译代码并打包成Docker镜像。
Docker镜像打包模块中,Jenkins流水线中包括自定义脚本,根据准备好的Kubernetes的YAML模板,将脚本中的变量替换成用户输入的选项,生成应用的KubernetesYAML配置文件。更新Ingress的配置,根据新部署的应用的名称,Jenkins调用Kubernetes的API,部署应用到设定好的Kubernetes环境中完成流水线自动构建部署流程。
Docker镜像推送模块用于将Docker镜像推送到Harbor镜像仓库。
镜像部署模块用于在连接到配置的Kubernetes中时,将生成的镜像部署到指定工作空间下。
以上所述的实施例,只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。

Claims (9)

1.一种基于Kubernetes的流水线自动化构建部署的方法,其特征在于:该方法基于Kubernetesy集成Jenkins,通过脚本自动化构建打包应用并部署到docker容器中。
2.根据权利要求1所述的基于Kubernetes的流水线自动化构建部署的方法,其特征在于:具体包括以下步骤:
S1、编写代码;
S2、将代码推送到代码仓库中;
S3、Webhook触发Jenkins自动构建;
S4、Jenkins流水线自动编译代码并打包成Docker镜像;
S5、将Docker镜像推送到Harbor镜像仓库;
S6、连接到配置的Kubernetes中,将生成的镜像部署到指定工作空间下。
3.根据权利要求2所述的基于Kubernetes的流水线自动化构建部署的方法,其特征在于:步骤S2中,将代码推送到Git代码仓库中,Git代码仓库中包含Docker文件。
4.根据权利要求3所述的基于Kubernetes的流水线自动化构建部署的方法,其特征在于:步骤S4中,Jenkins流水线中包括自定义脚本,根据准备好的Kubernetes的YAML模板,将脚本中的变量替换成用户输入的选项,生成应用的Kubernetes YAML配置文件。
5.根据权利要求4所述的基于Kubernetes的流水线自动化构建部署的方法,其特征在于:更新Ingress的配置,根据新部署的应用的名称,Jenkins调用Kubernetes的API,部署应用到设定好的Kubernetes环境中完成流水线自动构建部署流程。
6.一种基于Kubernetes的流水线自动化构建部署的系统,其特征在于:包括代码编写模块、代码推送模块、Jenkins自动构建模块、Docker镜像打包模块、Docker镜像推送模块和镜像部署模块;
代码编写模块用于编写代码;
代码推送模块用于将代码推送到代码仓库中;
Jenkins自动构建模块用于Webhook触发时,Jenkins自动构建;
Docker镜像打包模块用于Jenkins流水线自动编译代码并打包成Docker镜像;
Docker镜像推送模块用于将Docker镜像推送到Harbor镜像仓库;
镜像部署模块用于在连接到配置的Kubernetes中时,将生成的镜像部署到指定工作空间下。
7.根据权利要求6所述的基于Kubernetes的流水线自动化构建部署的系统,其特征在于:代码推送模块将代码推送到Git代码仓库中,Git代码仓库中包含Docker文件。
8.根据权利要求7所述的基于Kubernetes的流水线自动化构建部署的系统,其特征在于:Docker镜像打包模块中,Jenkins流水线中包括自定义脚本,根据准备好的Kubernetes的YAML模板,将脚本中的变量替换成用户输入的选项,生成应用的Kubernetes YAML配置文件。
9.根据权利要求8所述的基于Kubernetes的流水线自动化构建部署的系统,其特征在于:Docker镜像打包模块更新Ingress的配置,根据新部署的应用的名称,Jenkins调用Kubernetes的API,部署应用到设定好的Kubernetes环境中完成流水线自动构建部署流程。
CN202110238369.6A 2021-03-04 2021-03-04 一种基于Kubernetes的流水线自动化构建部署的方法及系统 Pending CN112925610A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110238369.6A CN112925610A (zh) 2021-03-04 2021-03-04 一种基于Kubernetes的流水线自动化构建部署的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110238369.6A CN112925610A (zh) 2021-03-04 2021-03-04 一种基于Kubernetes的流水线自动化构建部署的方法及系统

Publications (1)

Publication Number Publication Date
CN112925610A true CN112925610A (zh) 2021-06-08

Family

ID=76173300

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110238369.6A Pending CN112925610A (zh) 2021-03-04 2021-03-04 一种基于Kubernetes的流水线自动化构建部署的方法及系统

Country Status (1)

Country Link
CN (1) CN112925610A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113590114A (zh) * 2021-08-12 2021-11-02 北京滴普科技有限公司 一种流水线编排方法、装置及计算机设备
CN114090189A (zh) * 2021-11-29 2022-02-25 浪潮云信息技术股份公司 一种基于流水线的构建部署管理方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030182652A1 (en) * 2001-12-21 2003-09-25 Custodio Gabriel T. Software building and deployment system and method
CN110083369A (zh) * 2019-04-25 2019-08-02 中电科嘉兴新型智慧城市科技发展有限公司 一种基于容器方案的持续集成和持续交付方法
CN112130956A (zh) * 2020-09-09 2020-12-25 中盈优创资讯科技有限公司 一种基于Jenkins的自动化CI/CD流水线方法
CN112416524A (zh) * 2020-11-25 2021-02-26 电信科学技术第十研究所有限公司 基于docker和kubernetes离线的跨平台的CI/CD的实现方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030182652A1 (en) * 2001-12-21 2003-09-25 Custodio Gabriel T. Software building and deployment system and method
CN110083369A (zh) * 2019-04-25 2019-08-02 中电科嘉兴新型智慧城市科技发展有限公司 一种基于容器方案的持续集成和持续交付方法
CN112130956A (zh) * 2020-09-09 2020-12-25 中盈优创资讯科技有限公司 一种基于Jenkins的自动化CI/CD流水线方法
CN112416524A (zh) * 2020-11-25 2021-02-26 电信科学技术第十研究所有限公司 基于docker和kubernetes离线的跨平台的CI/CD的实现方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113590114A (zh) * 2021-08-12 2021-11-02 北京滴普科技有限公司 一种流水线编排方法、装置及计算机设备
CN114090189A (zh) * 2021-11-29 2022-02-25 浪潮云信息技术股份公司 一种基于流水线的构建部署管理方法及系统

Similar Documents

Publication Publication Date Title
US11256523B2 (en) Modular co-versioning in a dynamically linked runtime environment
CN1304946C (zh) 启动和启动代码更新方法
US20160117165A1 (en) Firmware Update Discovery and Distribution
CN111352653B (zh) 基于PaaS云平台服务器的系统开发方法及服务器
US20140007067A1 (en) RESOURCE DATa STRUCTURES FOR FIRMWARE UPDATES
CN103353845A (zh) 脚本加载、推送方法及装置
CN104375849A (zh) 加载内核的方法及装置
CN105022630A (zh) 一种组件管理系统及组件管理方法
CN112925610A (zh) 一种基于Kubernetes的流水线自动化构建部署的方法及系统
CN111459539A (zh) 基于镜像分层的持续集成流水线运行方法及装置
CN114077423A (zh) 基于移动跨平台的机场app开发容器架构
CN111722868A (zh) 一种申威防火墙快速移植高版本linux内核的方法
CN108182070B (zh) 定制安卓系统rom的方法、装置及终端设备
CN112000334A (zh) 页面开发方法、装置、服务器及存储介质
CN101075906A (zh) 一种控制网络通讯软件功能的方法
CN107544813B (zh) 一种静态库配置的切换方法和系统
CN114546588A (zh) 任务的部署方法、装置、存储介质及电子装置
CN110688140A (zh) 一种代码管理方法和终端
CN116756067A (zh) 基于鸿蒙分布式SoftBus的AI-EC嵌入式系统及其构建、部署方法
CN111625256B (zh) 一种应用程序升级方法、系统、设备及计算机存储介质
CN116541035A (zh) 容器编排引擎的升级方法、系统、设备及介质
CN112286568A (zh) 一种Android系统多版本兼容方法
CN114090189A (zh) 一种基于流水线的构建部署管理方法及系统
CN116483352A (zh) 一种基于Java的产品代码生成系统及方法
CN111225054B (zh) 云手机自动化运行程序设计方法和系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20210608

RJ01 Rejection of invention patent application after publication