CN112416524B - 基于docker和kubernetes离线的跨平台的CI/CD的实现方法及装置 - Google Patents
基于docker和kubernetes离线的跨平台的CI/CD的实现方法及装置 Download PDFInfo
- Publication number
- CN112416524B CN112416524B CN202011342673.7A CN202011342673A CN112416524B CN 112416524 B CN112416524 B CN 112416524B CN 202011342673 A CN202011342673 A CN 202011342673A CN 112416524 B CN112416524 B CN 112416524B
- Authority
- CN
- China
- Prior art keywords
- jenkins
- cluster
- kubernetes
- mirror image
- master
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于docker和kubernetes离线的跨平台的CI/CD的实现方法及装置,该方法包括:在局域网环境下离线自动化部署kubernetes集群;在kubernetes集群上部署动态可伸缩的Jenkins集群;基于docker的buildx功能,在Jenkins Slave节点中进行异构镜像的构建;在Jenkins Slave节点中通过helm从企业私有镜像仓库拉取Chart包,然后根据预定义的value值在kubernetes集群上跨平台部署或更新应用。本发明解决了现有技术中异构计算系统的软件应用的开发运维成本高、跨平台混合部署难的问题,有效提高了应用开发和部署的效率。
Description
技术领域
本发明涉及计算机应用技术领域,具体涉及一种基于docker和kubernetes离线的跨平台的CI/CD的实现方法及装置。
背景技术
随着软件变得越来越复杂,一个完整的后端服务不再是单体服务,而是由多个职责和功能不同的微服务组成,服务之间复杂的拓扑关系以及单机已经无法满足的性能需求使得软件的部署和运维工作变得非常复杂,这也就使得部署和运维大型集群变成了非常迫切的需求。
目前docker已经是容器技术的事实标准了,它让开发者将应用以及依赖打包到一个可移植的容器中,让应用程序的运行可以实现环境无关,通过docker实现进程、网络以及挂载点和文件系统隔离的环境,并且能够对宿主机的资源进行更合理分配,同时能够做到“Build Once,Deploy anywhere”。而kubernetes更是为容器技术的大规模应用提供了坚实的技术支撑,软件工程师可以通过kubernetes来定义服务之间的拓扑关系、线上的节点个数、资源使用量并且能够快速实现水平扩容、蓝绿部署等在过去复杂的运维操作。
在当前异构计算发展迅速以及云平台国产化不断进行的场景下,docker在一些ARM机器上时会比较困难,基本需要针对这些平台构建各自的镜像。在Docker Swarm/Kubernetes/Openshift这类容器编排引擎进行服务部署时,简单地定义和使用一个Yaml文件进行跨平台混合部署将成为一个很大的问题,主要是由于需要进行节点架构识别后,拉取对应名称的镜像。
此外,由于kubernetes集群的部署较为复杂,尽管官方提供了kubeadm的安装部署方式,依然存在基础环境配置和证书的问题,而且不如二进制安装方便配置和定位问题。同时kubernetes集群部署通常依赖互联网环境,在一些无法连接外网的生产环境下不方便部署。
需要注意的是,本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
发明内容
本发明实施例提供一种基于docker和kubernetes离线的跨平台的CI/CD的实现方法及装置,以解决现有技术中异构计算系统的软件应用的开发运维成本高、跨平台混合部署难的问题。
第一方面,本发明实施例提供一种基于docker和kubernetes离线的跨平台的CI/CD的实现方法,包括:
通过ansible自定义的脚本,在局域网环境下离线自动化部署kubernetes集群;
上传任务代码至Gitlab代码版本管理仓库,然后通过所述Gitlab代码版本管理仓库配置的Jenkins Webhook触发自动构建,以Jenkins官方镜像为基础镜像定制JenkinsMaster镜像和Jenkins Slave镜像在所述kubernetes集群上部署动态可伸缩的Jenkins集群,并使所述Jenkins集群中的Jenkins Master节点根据任务的数量动态生成对应数量的Jenkins Slave节点;
基于docker的buildx功能,在所述Jenkins Slave节点中依次执行所述任务代码的静态分析、单元测试、编译打包操作后进行异构镜像的构建;
通过docker推送所述异构镜像至企业私有镜像仓库后,在所述Jenkins Slave节点中通过helm从所述企业私有镜像仓库拉取Chart包,然后根据预定义的value值在所述kubernetes集群上跨平台部署或更新应用。
作为本发明第一方面的优选方式,所述通过ansible自定义的脚本,在局域网环境下离线自动化部署kubernetes集群,包括:
通过在管理节点运行ansible的初始化脚本,在所述kubernetes集群中包括的所有kubernetes节点进行基础环境初始化操作;
通过在管理节点运行ansible的etcd安装脚本,在所述kubernetes集群中部署高可用的etcd集群;
通过在管理节点运行ansible的docker安装脚本,在各所述kubernetes节点中安装docker;
通过在管理节点运行ansible的kube-master安装脚本,在所述kubernetes集群中分别安装kube-master节点和kube-node节点;
通过在管理节点运行ansible的网络插件安装脚本,在所述kubernetes集群中安装多种用于配置kubernetes网络的网络插件;
通过在管理节点运行ansible的集群附件安装脚本,在所述kubernetes集群中安装多种集群附件。
作为本发明第一方面的优选方式,所述通过在管理节点运行ansible的初始化脚本,在所述kubernetes集群中包括的所有kubernetes节点进行基础环境初始化操作,包括:
在管理节点运行ansible的初始化脚本,通过自动向所述kubernetes集群内所有kubernetes节点分发CA证书和CA私钥以及所述kubernetes集群中kubeconfig组件、kube-proxy组件、kube-controller-manager组件、kube-scheduler组件的配置文件,并同步所述kubernetes集群内各kubernetes节点之间的时间、加载内核模块并优化内核参数以及安装软件依赖,以在所述kubernetes集群中包括的所有kubernetes节点进行基础环境初始化操作。
作为本发明第一方面的优选方式,所述通过在管理节点运行ansible的etcd安装脚本,在所述kubernetes集群中部署高可用的etcd集群,包括:
在管理节点运行ansible的etcd安装脚本,通过自动向安装的各etcd节点分发etcd二进制文件和证书私钥、根据预定义模板创建etcd集群的systemdunit文件并添加为自启动以及检测etcd集群的服务启动状态,以在所述kubernetes集群中部署高可用的etcd集群。
作为本发明第一方面的优选方式,所述以Jenkins官方镜像为基础镜像定制Jenkins Master镜像和Jenkins Slave镜像在所述kubernetes集群上部署动态可伸缩的Jenkins集群,并使所述Jenkins集群中的Jenkins Master节点根据任务的数量动态生成对应数量的Jenkins Slave节点,包括:
根据Jenkins官方镜像在本地生成Jenkins容器,在所述Jenkins容器中安装CI/CD所必需插件并导出插件列表,以所述Jenkins Master官方镜像为基础镜像并在其内部安装所述插件列表中的插件,封装成定制的Jenkins Master镜像;
在Jenkins Slave官方镜像中安装本地预设的maven组件、gradle组件、docker组件和helm组件,封装成定制的Jenkins Slave镜像;
通过配置资源清单文件的形式在所述kubernetes集群上部署Jenkins Master节点,在管理界面的kubernetes-plugin中将Pod Template的镜像设置为自定义的JenkinsSlave镜像,使所述Jenkins集群中的Jenkins Master节点根据任务的数量动态生成对应数量的Jenkins Slave节点。
作为本发明第一方面的优选方式,所述基于docker的buildx功能,在所述JenkinsSlave节点中依次执行任务代码静态分析、单元测试、编译打包操作后进行异构镜像的构建,包括:
通过开启docker CLI的experimental模块功能,使docker具备buildx功能;
通过docker CLI创建新的buildx builder,在所述Jenkins Slave节点中根据所述任务代码中的Jenkinfile脚本文件依次执行任务代码静态分析、单元测试、编译打包操作后,使用所述buildx builder构建异构镜像。
第二方面,本发明实施例一种基于docker和kubernetes离线的跨平台的CI/CD的实现装置,包括:
kubernetes集群部署单元,用于通过ansible自定义的脚本,在局域网环境下离线自动化部署kubernetes集群;
Jenkins集群部署单元,用于上传任务代码至Gitlab代码版本管理仓库,然后通过所述Gitlab代码版本管理仓库配置的Jenkins Webhook触发自动构建,以Jenkins官方镜像为基础镜像定制Jenkins Master镜像和Jenkins Slave镜像在所述kubernetes集群上部署动态可伸缩的Jenkins集群,并使所述Jenkins集群中的Jenkins Master节点根据任务的数量动态生成对应数量的Jenkins Slave节点;
异构镜像构建单元,用于基于docker的buildx功能,在所述Jenkins Slave节点中依次执行所述任务代码的静态分析、单元测试、编译打包操作后进行异构镜像的构建;
跨平台部署更新单元,用于通过docker推送所述异构镜像至企业私有镜像仓库后,在所述Jenkins Slave节点中通过helm从所述企业私有镜像仓库拉取Chart包,然后根据预定义的value值在所述kubernetes集群上跨平台部署或更新应用。
作为本发明第二方面的优选方式,所述kubernetes集群部署单元具体用于:
通过在管理节点运行ansible的初始化脚本,在所述kubernetes集群中包括的所有kubernetes节点进行基础环境初始化操作;
通过在管理节点运行ansible的etcd安装脚本,在所述kubernetes集群中部署高可用的etcd集群;
通过在管理节点运行ansible的docker安装脚本,在各所述kubernetes节点中安装docker;
通过在管理节点运行ansible的kube-master安装脚本,在所述kubernetes集群中分别安装kube-master节点和kube-node节点;
通过在管理节点运行ansible的网络插件安装脚本,在所述kubernetes集群中安装多种用于配置kubernetes网络的网络插件;
通过在管理节点运行ansible的集群附件安装脚本,在所述kubernetes集群中安装多种集群附件。
作为本发明第二方面的优选方式,所述Jenkins集群部署单元具体用于:
根据Jenkins官方镜像在本地生成Jenkins容器,在所述Jenkins容器中安装CI/CD所必需插件并导出插件列表,以所述Jenkins Master官方镜像为基础镜像并在其内部安装所述插件列表中的插件,封装成定制的Jenkins Master镜像;
在Jenkins Slave官方镜像中安装本地预设的maven组件、gradle组件、docker组件和helm组件,封装成定制的Jenkins Slave镜像;
通过配置资源清单文件的形式在所述kubernetes集群上部署Jenkins master,在管理界面的kubernetes-plugin中将Pod Template的镜像设置为自定义的Jenkins Slave镜像,使所述Jenkins集群中的Jenkins Master节点根据任务的数量动态生成对应数量的Jenkins Slave节点。
第三方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能实现上述第一方面及其优选方式中所述的基于docker和kubernetes离线的跨平台的CI/CD的实现方法所包含的步骤。
本发明实施例提供的基于docker和kubernetes离线的跨平台的CI/CD的实现方法及装置,基于kubernetes容器编排引擎并使用Jenkins持续集成引擎作为流水线调度系统,同时利用docker的异构镜像构建的新特性,解决了现有技术中异构计算系统的软件应用的开发运维成本高、跨平台混合部署难的问题,有效提高了应用开发和部署的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于docker和kubernetes离线的跨平台的CI/CD的实现方法的流程示意图;
图2为图1中所示离线自动化部署kubernetes集群的流程示意图;
图3为图1中所示在kubernetes集群上部署Jenkins集群的流程示意图;
图4为本发明实施例提供的一种基于docker和kubernetes离线的跨平台的CI/CD的实现装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本发明的技术构思在于:在局域网环境下离线自动化部署kubernetes集群,然后再kubernets集群上部署动态可伸缩的Jenkins集群,Jenkins Master节点在检测到Gitlab有代码提交或手工触发时,能够根据构建任务的数量动态生成对应个数的Jenkins Slave节点,并在任务完成后自动销毁,最后采用docker最新提出的异构镜像构建的基础原则进行异构镜像的归档管理,通过helm进行跨平台部署或更新应用。
本发明涉及的主要技术术语解释如下:
(1)CI/CD:持续集成/持续部署;
(2)Gitlab:代码版本管理仓库;
(3)Jenkins:主要是持续的编译代码、发布、测试应用程序的一种持续集成引擎;
(4)kubernetes:是一种容器编排引擎,而容器就是任务;
(5)Jenkins Master:Jenkins中的主服务器节点,用来分发任务给从服务器节点进行构建任务;
(6)Jenkins Slave:Jenkins中的从服务器节点,用来构建任务。
参照图1所示,本发明实施例公开了一种基于docker和kubernetes离线的跨平台的CI/CD的实现方法,该方法主要包括如下步骤:
101、通过ansible自定义的脚本,在局域网环境下离线自动化部署kubernetes集群;
102、上传任务代码至Gitlab代码版本管理仓库,然后通过Gitlab代码版本管理仓库配置的Jenkins Webhook触发自动构建,以Jenkins官方镜像为基础镜像定制JenkinsMaster镜像和Jenkins Slave镜像在kubernetes集群上部署动态可伸缩的Jenkins集群,并使Jenkins集群中的Jenkins Master节点根据任务的数量动态生成对应数量的JenkinsSlave节点;
103、基于docker的buildx功能,在Jenkins Slave节点中依次执行任务代码的静态分析、单元测试、编译打包操作后进行异构镜像的构建;
104、通过docker推送异构镜像至企业私有镜像仓库后,在Jenkins Slave节点中通过helm从企业私有镜像仓库拉取Chart包,然后根据预定义的value值在kubernetes集群上跨平台部署或更新应用。
在步骤101中,在互联网环境中,分别下载x86平台和arm平台对应的kubernetes集群部署过程中需要的程序二进制文件和镜像文件,在局域网环境下使用ansible自定义的playbook脚本离线自动化部署kubernetes集群。
因此,本发明实施例提供的实现方法,不依赖互联网环境,同时支持x86和arm平台,配置灵活,可根据具体情况快速部署相匹配的kubernetes集群,通过自动化提高了部署的效率。
优选地,在一种可能的实现方式中,参照图2所示,步骤101可按照如下步骤具体实施:
1011、通过在管理节点运行ansible的初始化脚本,在kubernetes集群中包括的所有kubernetes节点进行基础环境初始化操作。
该步骤中,主要初始化kubernetes集群内所有节点的基础环境。
优选地,该步骤1011中,在管理节点运行ansible的初始化脚本,通过自动向kubernetes集群内所有kubernetes节点分发CA证书和CA私钥以及kubernetes集群中kubeconfig组件、kube-proxy组件、kube-controller-manager组件、kube-scheduler组件的配置文件,并同步kubernetes集群内各kubernetes节点之间的时间、加载内核模块并优化内核参数以及安装软件依赖,以在kubernetes集群中包括的所有kubernetes节点进行基础环境初始化操作。
1012、通过在管理节点运行ansible的etcd安装脚本,在kubernetes集群中部署高可用的etcd集群。
该步骤中,主要在kubernetes集群中部署高可用的etcd集群。
优选地,在步骤1012中,在管理节点运行ansible的etcd安装脚本,通过自动向安装的各etcd节点分发etcd二进制文件和证书私钥、根据预定义模板创建etcd集群的systemdunit文件并添加为自启动以及检测etcd集群的服务启动状态,以在kubernetes集群中部署高可用的etcd集群。
1013、通过在管理节点运行ansible的docker安装脚本,在各kubernetes节点中安装docker。
该步骤中,主要在kubernetes集群的各kubernetes节点中分别安装docker。
具体地,在管理节点运行ansible的docker安装脚本,清空所有iptables策略规则,卸载firewalld等基于iptables的防火墙,根据预定义模板创建docker的systemdunit文件并添加为自启动,将存储路径设置为预先自定义的路径,创建docker的系统服务检测docker服务启动状态。
1014、通过在管理节点运行ansible的kube-master安装脚本,在kubernetes集群中分别安装kube-master节点和kube-node节点。
该步骤中,主要在kubernetes集群中分别安装kube-master节点和kube-node节点。
具体地,为保障高可用,至少需要部署两个kube-master节点,在管理节点运行ansible的kube-master安装脚本,可实现三个组件apiserver、scheduler、controller-manager的自动化安装、服务创建与启动,完成kube-master节点的安装。
进一步地,在管理节点运行ansible的kube-node安装脚本,实现最主要的组件kubelet和kube-proxy的自动化安装、服务创建与启动,同时部署haproxy用于请求转发到多个apiserver,完成kube-node节点的安装。
1015、通过在管理节点运行ansible的网络插件安装脚本,在kubernetes集群中安装多种用于配置kubernetes网络的网络插件。
该步骤中,主要在kubernetes集群中安装网络插件。
具体地,CNI driver调用各种网络插件来配置kubernetes的网络,本发明实施例提供了多种内置CNI插件,有flannel、calico、weave等,根据实际生产环境可选择不同的网络插件,并通过管理节点运行ansible的网络插件安装脚本实现自动化安装,完成网络插件的安装。
1016、通过在管理节点运行ansible的集群附件安装脚本,在kubernetes集群中安装多种集群附件。
该步骤中,主要在kubernetes集群中安装多种集群附件。
具体地,管理节点运行ansible的附件安装脚本,实现coredns、metric server、ingress、dashboadrd、efk、prometheus等附件的自动安装,完成多种集群附件的安装。
在步骤102中,开发人员上传任务代码至Gitlab代码版本管理仓库,具体仓库软件视企业具体使用情况而定,本发明实施例中优选采用Gitlab。
通过Gitlab配置的Jenkins Webhook触发Pipeline自动构建,该操作需要JenkinsMaster安装generic webhook trigger插件并在gitlab设置webhook。Jenkins触发构建任务,根据job的数量动态地在kubernetes集群上部署对应数量的jenkins-slave pod,pod中容器镜像为自定义的Jenkins Slave镜像。
以Jenkins官方镜像为基础镜像定制Jenkins Master镜像和Jenkins Slave镜像在kubernetes集群上部署动态可伸缩的Jenkins集群,并使Jenkins集群中的JenkinsMaster节点根据任务的数量动态生成对应数量的Jenkins Slave节点。
优选地,在一种可能的实现方式中,参照图3所示,步骤102可按照如下步骤具体实施:
1021、根据Jenkins官方镜像在本地生成Jenkins容器,在Jenkins容器中安装CI/CD所必需插件并导出插件列表,以Jenkins Master官方镜像为基础镜像并在其内部安装插件列表中的插件,封装成定制的Jenkins Master镜像。
本步骤中,主要制作Jenkins Master镜像。
具体地,根据Jenkins官方镜像在本地生成Jenkins容器,在本地Jenkins容器中安装CI/CD中所必需的插件,并从中导出插件列表;以Jenkins Master官方镜像为基础镜像,在其内通过脚本安装插件,最后封装成定制的Jenkins Master镜像。
1022、在Jenkins Slave官方镜像中安装本地预设的maven组件、gradle组件、docker组件和helm组件,封装成定制的Jenkins Slave镜像。
本步骤中,主要制作Jenkins Slave镜像。
具体地,本发明实施例将利用Jenkins Slave镜像动态创建Jenkins Slave节点,因此Jenkins Slave镜像需要安装相应软件以满足CI/CD需求。根据业务需要编写dockerfile,在Jenkins Slave官方镜像中安装Maven、Gradle、docker、helm等组件,其中组件Maven和Gradle主要是用于应用的编译和打包,组件docker用于构建应用的异构镜像,组件helm用于在kubernetes集群内部署和更新应用,同时需要为helm配置kubernetes集群的config,最后封装成定制的Jenkins Slave镜像。
本发明实施例提供的构建自定义Jenkins Master镜像和Jenkins Slave镜像的方法,可根据业务场景和需求定制,安装所需的应用软件或插件,提高了灵活性。并且,还可以按场景分别定制不同的Jenkins Slave镜像,本发明实施例中仅以一个特定的场景为例,举例说明如何定制Jenkins Slave镜像。
1023、通过配置资源清单文件的形式在kubernetes集群上部署Jenkins Master节点,在管理界面的kubernetes-plugin中将Pod Template的镜像设置为自定义的JenkinsSlave镜像,使Jenkins集群中的Jenkins Master节点根据任务的数量动态生成对应数量的Jenkins Slave节点。
本步骤中,主要在kubernetes集群上部署Jenkins Master节点,并在管理界面完成相应配置。
具体地,通过配置资源清单YAML文件的形式,在kubernetes集群部署JenkinsMaster节点,在管理界面的kubernetes-plugin中将Pod Template的镜像设置为自定义的Jenkins Slave镜像,这样Jenkins Master节点在检测到Gitlab有代码提交或手工触发时,能够根据构建任务的数量动态生成对应个数的Jenkins Slave节点,并在任务完成后自动销毁。
在步骤103中,在之前的版本中构建多种系统架构支持的docker镜像,要想使用统一的名字必须使用docker manifest命令。在docker 19.03+版本中可以使用dockerbuildx命令构建镜像。
其中,docker manifest命令比较适合构建脚本较为复杂、当前构建不便改动,但是对于构建流程管理主动性较好的项目。仅需要在所有镜像构建完成后,添加manifest的创建、合并与上传工作,即可完成异构镜像的列表合并。docker buildx命令构建异构镜像仅需一条命令,即可完成构建、合并和上传操作,但需要对代码库进行一定的评估,构建过程是否可以抽象成一个dockerfile能描述的内容,兼顾可读性和便捷性。
然后,基于docker的buildx功能,在Jenkins Slave节点中依次执行任务代码的静态分析、单元测试、编译打包操作后进行异构镜像的构建。
在一种可能的实现方式中,步骤103可按照如下步骤具体实施:
1031、通过开启docker CLI的experimental模块功能,使docker具备buildx功能。
该步骤中,先通过将docker升级至19.03以上版本支持buildx功能,由于该功能目前是实验功能默认关闭,因此需要开启docker CLI的experimental模块功能。
然后,通过升级Linux操作系统内核至4.8以上版本支持fix-binary标志,使用该标志,内核可以在容器或chroot中使用注册在binfmt_misc文件系统上的二进制格式处理程序。同时,挂载binfmt_misc文件系统,该文件系统能够使用户空间的工具控制内核注册和启动处理程序。还需要安装QEMU模拟器和binfmt-support工具包,QEMU模拟器能够让操作系统执行其他架构的CPU指令,binfmt-support工具包中的update-binfmts能够在注册QEMU模拟器时解析fix-binary标志。
1032、通过docker CLI创建新的buildx builder,在Jenkins Slave节点中根据任务代码中的Jenkinfile脚本文件依次执行任务代码静态分析、单元测试、编译打包操作后,使用buildx builder构建异构镜像。
该步骤中,通过docker CLI创建新的buildx builder,在Jenkins Slave节点中根据任务代码中的Jenkinfile脚本文件依次执行任务代码静态分析、单元测试、编译打包操作后,使用该buildx builder构建异构镜像,异构镜像构建时通过push参数直接推送到企业私有镜像仓库中。
在步骤104中,docker推送异构镜像到企业私有镜像仓库以后,在Jenkins Slave节点中使用helm从企业私有镜像仓库拉取预定义的Chart包,然后根据预定义的value值在kubernetes集群上跨平台部署或更新应用。
综上所述,本发明实施例提供的基于docker和kubernetes离线的跨平台的CI/CD的实现方法,基于kubernetes容器编排引擎并使用Jenkins持续集成引擎作为流水线调度系统,同时利用docker的异构镜像构建的新特性,解决了现有技术中异构计算系统的软件应用的开发运维成本高、跨平台混合部署难的问题,有效提高了应用开发和部署的效率。
需要说明的是,对于上述方法的实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必须的。
参照图4所示,基于同一发明构思,本发明实施例提供一种基于docker和kubernetes离线的跨平台的CI/CD的实现装置,该装置主要包括:
kubernetes集群部署单元41,用于通过ansible自定义的脚本,在局域网环境下离线自动化部署kubernetes集群;
Jenkins集群部署单元42,用于上传任务代码至Gitlab代码版本管理仓库,然后通过所述Gitlab代码版本管理仓库配置的Jenkins Webhook触发自动构建,以Jenkins官方镜像为基础镜像定制Jenkins Master镜像和Jenkins Slave镜像在所述kubernetes集群上部署动态可伸缩的Jenkins集群,并使所述Jenkins集群中的Jenkins Master节点根据任务的数量动态生成对应数量的Jenkins Slave节点;
异构镜像构建单元43,用于基于docker的buildx功能,在所述Jenkins Slave节点中依次执行所述任务代码的静态分析、单元测试、编译打包操作后进行异构镜像的构建;
跨平台部署更新单元44,用于通过docker推送所述异构镜像至企业私有镜像仓库后,在所述Jenkins Slave节点中通过helm从所述企业私有镜像仓库拉取Chart包,然后根据预定义的value值在所述kubernetes集群上跨平台部署或更新应用。
优选地,所述kubernetes集群部署单元41具体用于:
通过在管理节点运行ansible的初始化脚本,在所述kubernetes集群中包括的所有kubernetes节点进行基础环境初始化操作;
通过在管理节点运行ansible的etcd安装脚本,在所述kubernetes集群中部署高可用的etcd集群;
通过在管理节点运行ansible的docker安装脚本,在各所述kubernetes节点中安装docker;
通过在管理节点运行ansible的kube-master安装脚本,在所述kubernetes集群中分别安装kube-master节点和kube-node节点;
通过在管理节点运行ansible的网络插件安装脚本,在所述kubernetes集群中安装多种用于配置kubernetes网络的网络插件;
通过在管理节点运行ansible的集群附件安装脚本,在所述kubernetes集群中安装多种集群附件。
优选地,所述kubernetes集群部署单元41还具体用于:
在管理节点运行ansible的初始化脚本,通过自动向所述kubernetes集群内所有kubernetes节点分发CA证书和CA私钥以及所述kubernetes集群中kubeconfig组件、kube-proxy组件、kube-controller-manager组件、kube-scheduler组件的配置文件,并同步所述kubernetes集群内各kubernetes节点之间的时间、加载内核模块并优化内核参数以及安装软件依赖,以在所述kubernetes集群中包括的所有kubernetes节点进行基础环境初始化操作。
优选地,所述kubernetes集群部署单元41还具体用于:
在管理节点运行ansible的etcd安装脚本,通过自动向安装的各etcd节点分发etcd二进制文件和证书私钥、根据预定义模板创建etcd集群的systemdunit文件并添加为自启动以及检测etcd集群的服务启动状态,以在所述kubernetes集群中部署高可用的etcd集群。
优选地,所述Jenkins集群部署单元42具体用于:
根据Jenkins官方镜像在本地生成Jenkins容器,在所述Jenkins容器中安装CI/CD所必需插件并导出插件列表,以所述Jenkins Master官方镜像为基础镜像并在其内部安装所述插件列表中的插件,封装成定制的Jenkins Master镜像;
在Jenkins Slave官方镜像中安装本地预设的maven组件、gradle组件、docker组件和helm组件,封装成定制的Jenkins Slave镜像;
通过配置资源清单文件的形式在所述kubernetes集群上部署Jenkins Master节点,在管理界面的kubernetes-plugin中将Pod Template的镜像设置为自定义的JenkinsSlave镜像,使所述Jenkins集群中的Jenkins Master节点根据任务的数量动态生成对应数量的Jenkins Slave节点。
优选地,所述异构镜像构建单元43具体用于:
通过开启docker CLI的experimental模块功能,使docker具备buildx功能;
通过docker CLI创建新的buildx builder,在所述Jenkins Slave节点中根据所述任务代码中的Jenkinfile脚本文件依次执行任务代码静态分析、单元测试、编译打包操作后,使用所述buildx builder构建异构镜像。
综上所述,本发明实施例提供的基于docker和kubernetes离线的跨平台的CI/CD的实现装置,基于kubernetes容器编排引擎并使用Jenkins持续集成引擎作为流水线调度系统,同时利用docker的异构镜像构建的新特性,解决了现有技术中异构计算系统的软件应用的开发运维成本高、跨平台混合部署难的问题,有效提高了应用开发和部署的效率。
需要说明的是,本发明实施例提供的基于docker和kubernetes离线的跨平台的CI/CD的实现装置与前述实施例所述的基于docker和kubernetes离线的跨平台的CI/CD的实现方法属于相同的技术构思,其具体实施过程可参照前述实施例中对方法步骤的说明,在此不再赘述。
应当理解,以上一种基于docker和kubernetes离线的跨平台的CI/CD的实现装置包括的单元仅为根据该装置实现的功能进行的逻辑划分,实际应用中,可以进行上述单元的叠加或拆分。并且该实施例提供的一种基于docker和kubernetes离线的跨平台的CI/CD的实现装置所实现的功能与上述实施例提供的一种基于docker和kubernetes离线的跨平台的CI/CD的实现方法一一对应,对于该装置所实现的更为详细的处理流程,在上述方法实施例中已做详细描述,此处不再详细描述。
另外,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能实现上述实施例中所述的基于docker和kubernetes离线的跨平台的CI/CD的实现方法所包含的步骤。
或者,所述程序在被处理器执行时,能实现上述实施例中所述的基于docker和kubernetes离线的跨平台的CI/CD的实现装置中各单元的功能。
其中,所述的存储介质可以是磁盘、光碟、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于docker和kubernetes离线的跨平台的CI/CD的实现方法,其特征在于,包括:
通过ansible自定义的脚本,在局域网环境下离线自动化部署kubernetes集群;
上传任务代码至Gitlab代码版本管理仓库,然后通过所述Gitlab代码版本管理仓库配置的Jenkins Webhook触发自动构建,以Jenkins官方镜像为基础镜像定制Jenkins Master镜像和Jenkins Slave镜像在所述kubernetes集群上部署动态可伸缩的Jenkins集群,并使所述Jenkins集群中的Jenkins Master节点根据任务的数量动态生成对应数量的JenkinsSlave节点;
基于docker的buildx功能,在所述Jenkins Slave节点中依次执行所述任务代码的静态分析、单元测试、编译打包操作后进行异构镜像的构建;
通过docker推送所述异构镜像至企业私有镜像仓库后,在所述Jenkins Slave节点中通过helm从所述企业私有镜像仓库拉取Chart包,然后根据预定义的value值在所述kubernetes集群上跨平台部署或更新应用;
其中,所述通过ansible自定义的脚本,在局域网环境下离线自动化部署kubernetes集群,包括:
通过在管理节点运行ansible的etcd安装脚本,在所述kubernetes集群中部署高可用的etcd集群;
通过在管理节点运行ansible的kube-master安装脚本,在所述kubernetes集群中分别安装kube-master节点和kube-node节点,所述kube-master节点数量为至少两个;
其中,所述以Jenkins官方镜像为基础镜像定制Jenkins Master镜像和Jenkins Slave镜像在所述kubernetes集群上部署动态可伸缩的Jenkins集群,并使所述Jenkins集群中的Jenkins Master节点根据任务的数量动态生成对应数量的Jenkins Slave节点,包括:
根据Jenkins官方镜像在本地生成Jenkins容器,在所述Jenkins容器中安装CI/CD所必需插件并导出插件列表,以所述Jenkins Master官方镜像为基础镜像并在其内部安装所述插件列表中的插件,封装成定制的Jenkins Master镜像;
在Jenkins Slave官方镜像中安装本地预设的maven组件、gradle组件、docker组件和helm组件,封装成定制的Jenkins Slave镜像;
通过配置资源清单文件的形式在所述kubernetes集群上部署Jenkins Master节点,在管理界面的kubernetes-plugin中将Pod Template的镜像设置为自定义的Jenkins Slave镜像,使所述Jenkins集群中的Jenkins Master节点根据任务的数量动态生成对应数量的Jenkins Slave节点。
2.根据权利要求1所述的实现方法,其特征在于,所述通过ansible自定义的脚本,在局域网环境下离线自动化部署kubernetes集群,还包括:
通过在管理节点运行ansible的初始化脚本,在所述kubernetes集群中包括的所有kubernetes节点进行基础环境初始化操作;
通过在管理节点运行ansible的docker安装脚本,在各所述kubernetes节点中安装docker;
通过在管理节点运行ansible的网络插件安装脚本,在所述kubernetes集群中安装多种用于配置kubernetes网络的网络插件;
通过在管理节点运行ansible的集群附件安装脚本,在所述kubernetes集群中安装多种集群附件。
3.根据权利要求2所述的实现方法,其特征在于,所述通过在管理节点运行ansible的初始化脚本,在所述kubernetes集群中包括的所有kubernetes节点进行基础环境初始化操作,包括:
在管理节点运行ansible的初始化脚本,通过自动向所述kubernetes集群内所有kubernetes节点分发CA证书和CA私钥以及所述kubernetes集群中kubeconfig组件、kube-proxy组件、kube-controller-manager组件、kube-scheduler组件的配置文件,并同步所述kubernetes集群内各kubernetes节点之间的时间、加载内核模块并优化内核参数以及安装软件依赖,以在所述kubernetes集群中包括的所有kubernetes节点进行基础环境初始化操作。
4.根据权利要求1所述的实现方法,其特征在于,所述通过在管理节点运行ansible的etcd安装脚本,在所述kubernetes集群中部署高可用的etcd集群,包括:
在管理节点运行ansible的etcd安装脚本,通过自动向安装的各etcd节点分发etcd二进制文件和证书私钥、根据预定义模板创建etcd集群的systemdunit文件并添加为自启动以及检测etcd集群的服务启动状态,以在所述kubernetes集群中部署高可用的etcd集群。
5.根据权利要求1所述的实现方法,其特征在于,所述基于docker的buildx功能,在所述Jenkins Slave节点中依次执行任务代码静态分析、单元测试、编译打包操作后进行异构镜像的构建,包括:
通过开启docker CLI的experimental模块功能,使docker具备buildx功能;
通过docker CLI创建新的buildx builder,在所述Jenkins Slave节点中根据所述任务代码中的Jenkinfile脚本文件依次执行任务代码静态分析、单元测试、编译打包操作后,使用所述buildx builder构建异构镜像。
6.一种基于docker和kubernetes离线的跨平台的CI/CD的实现装置,其特征在于,包括:
kubernetes集群部署单元,用于通过ansible自定义的脚本,在局域网环境下离线自动化部署kubernetes集群;
Jenkins集群部署单元,用于上传任务代码至Gitlab代码版本管理仓库,然后通过所述Gitlab代码版本管理仓库配置的Jenkins Webhook触发自动构建,以Jenkins官方镜像为基础镜像定制Jenkins Master镜像和Jenkins Slave镜像在所述kubernetes集群上部署动态可伸缩的Jenkins集群,并使所述Jenkins集群中的Jenkins Master节点根据任务的数量动态生成对应数量的Jenkins Slave节点;
异构镜像构建单元,用于基于docker的buildx功能,在所述Jenkins Slave节点中依次执行所述任务代码的静态分析、单元测试、编译打包操作后进行异构镜像的构建;
跨平台部署更新单元,用于通过docker推送所述异构镜像至企业私有镜像仓库后,在所述Jenkins Slave节点中通过helm从所述企业私有镜像仓库拉取Chart包,然后根据预定义的value值在所述kubernetes集群上跨平台部署或更新应用;
其中,所述kubernetes集群部署单元具体用于:
通过在管理节点运行ansible的etcd安装脚本,在所述kubernetes集群中部署高可用的etcd集群;
通过在管理节点运行ansible的kube-master安装脚本,在所述kubernetes集群中分别安装kube-master节点和kube-node节点,所述kube-master节点数量为至少两个;
其中,所述Jenkins集群部署单元具体用于:
根据Jenkins官方镜像在本地生成Jenkins容器,在所述Jenkins容器中安装CI/CD所必需插件并导出插件列表,以所述Jenkins Master官方镜像为基础镜像并在其内部安装所述插件列表中的插件,封装成定制的Jenkins Master镜像;
在Jenkins Slave官方镜像中安装本地预设的maven组件、gradle组件、docker组件和helm组件,封装成定制的Jenkins Slave镜像;
通过配置资源清单文件的形式在所述kubernetes集群上部署Jenkins Master,在管理界面的kubernetes-plugin中将Pod Template的镜像设置为自定义的Jenkins Slave镜像,使所述Jenkins集群中的Jenkins Master节点根据任务的数量动态生成对应数量的Jenkins Slave节点。
7.根据权利要求6所述的装置,其特征在于,所述kubernetes集群部署单元还用于:
通过在管理节点运行ansible的初始化脚本,在所述kubernetes集群中包括的所有kubernetes节点进行基础环境初始化操作;
通过在管理节点运行ansible的docker安装脚本,在各所述kubernetes节点中安装docker;
通过在管理节点运行ansible的网络插件安装脚本,在所述kubernetes集群中安装多种用于配置kubernetes网络的网络插件;
通过在管理节点运行ansible的集群附件安装脚本,在所述kubernetes集群中安装多种集群附件。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序在被处理器执行时,能实现上述权利要求1~5任意一项所述的基于docker和kubernetes离线的跨平台的CI/CD的实现方法所包含的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011342673.7A CN112416524B (zh) | 2020-11-25 | 2020-11-25 | 基于docker和kubernetes离线的跨平台的CI/CD的实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011342673.7A CN112416524B (zh) | 2020-11-25 | 2020-11-25 | 基于docker和kubernetes离线的跨平台的CI/CD的实现方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112416524A CN112416524A (zh) | 2021-02-26 |
CN112416524B true CN112416524B (zh) | 2023-06-23 |
Family
ID=74843666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011342673.7A Active CN112416524B (zh) | 2020-11-25 | 2020-11-25 | 基于docker和kubernetes离线的跨平台的CI/CD的实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112416524B (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220147636A1 (en) * | 2020-11-12 | 2022-05-12 | Crowdstrike, Inc. | Zero-touch security sensor updates |
CN112925610A (zh) * | 2021-03-04 | 2021-06-08 | 浪潮云信息技术股份公司 | 一种基于Kubernetes的流水线自动化构建部署的方法及系统 |
CN113127150B (zh) * | 2021-03-18 | 2023-10-17 | 同盾控股有限公司 | 云原生系统的快速部署方法、装置、电子设备和存储介质 |
CN113220416B (zh) * | 2021-04-28 | 2022-06-17 | 烽火通信科技股份有限公司 | 基于云平台的集群节点伸缩系统及实现方法和运行方法 |
CN113485720B (zh) * | 2021-05-21 | 2022-05-27 | 苏州德姆斯信息技术有限公司 | 一种微服务系统的离线升级方法 |
CN113504916B (zh) * | 2021-07-23 | 2024-07-26 | 京东方科技集团股份有限公司 | 一种代码更新方法和装置、计算机设备及介质 |
CN113572643B (zh) * | 2021-07-24 | 2024-04-26 | 上海边界智能科技有限公司 | 一种基于容器化技术的区块链多链及跨链网络的部署方法 |
CN113485794A (zh) * | 2021-07-26 | 2021-10-08 | 上海中通吉网络技术有限公司 | 基于k8s的大数据离线调度方法和系统 |
CN113609019B (zh) * | 2021-08-09 | 2024-03-08 | 山东乾云启创信息科技股份有限公司 | 一种容器云应用跨集群部署的流水线方法及装置 |
CN113641480B (zh) * | 2021-08-27 | 2023-12-15 | 四川中电启明星信息技术有限公司 | 一种基于Kubernetes集群组的任务调度系统及方法 |
CN117859309A (zh) * | 2021-09-30 | 2024-04-09 | 国际商业机器公司 | 自动选择在其上执行任务的节点 |
CN113992648A (zh) * | 2021-10-26 | 2022-01-28 | 沈阳世纪高通科技有限公司 | 一种基于容器编排技术的路况实时发布方法及装置 |
CN114020288A (zh) * | 2021-11-04 | 2022-02-08 | 四川启睿克科技有限公司 | 一种离线部署Kubernetes集群的方法 |
CN113900670B (zh) * | 2021-12-08 | 2022-03-18 | 深圳市名竹科技有限公司 | 集群服务器应用部署系统 |
CN114253583A (zh) * | 2021-12-23 | 2022-03-29 | 上海甄云信息科技有限公司 | 一种基于Kubernetes Operator的蓝绿部署方法、装置、系统 |
CN114840225B (zh) * | 2022-04-26 | 2023-09-19 | 光大科技有限公司 | 一种应用部署方法、装置、存储介质及电子装置 |
CN114879984B (zh) * | 2022-07-07 | 2022-10-18 | 杭州阿启视科技有限公司 | 动态构建docker镜像减少离线文件体积的方法 |
US12020023B2 (en) | 2022-08-08 | 2024-06-25 | Capital One Services, Llc | Computer-based systems configured to decouple delivery of product configuration changes associated with continuous integration/continuous delivery programming pipelines and methods of use thereof |
CN115421736A (zh) * | 2022-09-06 | 2022-12-02 | 太初(无锡)电子科技有限公司 | 基于DevSecOps平台的软件开发管理方法 |
CN115700465B (zh) * | 2022-11-09 | 2023-05-09 | 安超云软件有限公司 | 一种可移动电子设备及其应用方法 |
CN115967619B (zh) * | 2022-11-14 | 2023-07-07 | 广西壮族自治区信息中心(广西壮族自治区大数据研究院) | 适配多cpu架构多云平台的监控技术 |
CN116149683A (zh) * | 2023-02-02 | 2023-05-23 | 武汉天恒信息技术有限公司 | 一种受限网络远程自动化更新部署方法、设备及存储设备 |
CN116483394A (zh) * | 2023-04-26 | 2023-07-25 | 北京远舢智能科技有限公司 | 一种基于容器的Kubernetes离线安装方法及装置 |
CN117331578B (zh) * | 2023-12-01 | 2024-03-26 | 之江实验室 | 面向微小型数据中心的集群镜像部署方法及系统 |
CN117950758A (zh) * | 2024-02-23 | 2024-04-30 | 中科世通亨奇(北京)科技有限公司 | 异构环境中软件运行方法、装置、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109558147A (zh) * | 2018-11-29 | 2019-04-02 | 上海新炬网络技术有限公司 | 一种基于Jenkins和Gitlab的持续集成平台构建方法 |
CN110764786A (zh) * | 2019-12-27 | 2020-02-07 | 凯泰铭科技(北京)有限公司 | 一种云计算环境下优化部署资源与软件交付平台 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170085419A1 (en) * | 2015-09-18 | 2017-03-23 | Le Holdings (Beijing) Co., Ltd. | System and method for deploying an application |
TW201937379A (zh) * | 2017-12-05 | 2019-09-16 | 美商敏捷棧公司 | 用於管理資料中心與雲端應用程式基礎架構之系統、方法及非暫態計算機可讀介質 |
CN111708608B (zh) * | 2020-06-19 | 2023-04-25 | 浪潮云信息技术股份公司 | 一种基于ansible的容器大集群快速部署方法及系统 |
CN111736810A (zh) * | 2020-08-18 | 2020-10-02 | 四川新网银行股份有限公司 | 基于jenkins实时任务动态创建docker容器节点执行任务的方法 |
-
2020
- 2020-11-25 CN CN202011342673.7A patent/CN112416524B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109558147A (zh) * | 2018-11-29 | 2019-04-02 | 上海新炬网络技术有限公司 | 一种基于Jenkins和Gitlab的持续集成平台构建方法 |
CN110764786A (zh) * | 2019-12-27 | 2020-02-07 | 凯泰铭科技(北京)有限公司 | 一种云计算环境下优化部署资源与软件交付平台 |
Non-Patent Citations (1)
Title |
---|
微服务应用交付系统的设计与实现;蒙毅为;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112416524A (zh) | 2021-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112416524B (zh) | 基于docker和kubernetes离线的跨平台的CI/CD的实现方法及装置 | |
CN109062655B (zh) | 一种容器化云平台及服务器 | |
AU2018365860B2 (en) | Code module selection for device design | |
US9996336B2 (en) | Apparatus and method for validating application deployment topology in cloud computing environment | |
WO2022016848A1 (zh) | 一种根据服务角色的进行应用部署的方法及装置 | |
US20100095297A1 (en) | Method, system and computer program product for solution replication | |
CN114077423A (zh) | 基于移动跨平台的机场app开发容器架构 | |
KR101255685B1 (ko) | 로봇 응용 프로그램 실행 장치 및 방법 | |
CN115061717B (zh) | 应用管理方法、应用订阅方法及相关设备 | |
CN112035121B (zh) | 一种边缘应用部署方法及系统 | |
CN114461182A (zh) | 流水线构建的方法、装置、电子设备及计算机可读存储介质 | |
CN114968406B (zh) | 一种插件管理方法、装置、电子设备及存储介质 | |
CN114968477A (zh) | 容器热迁移方法及容器热迁移装置 | |
CN109753302B (zh) | 基于混合云计算平台的无服务函数的服务方法 | |
CN111552542A (zh) | 一种自动化构建虚机镜像的方法 | |
CN113419813B (zh) | 一种基于容器平台部署裸机管理服务的方法及装置 | |
CN113407257A (zh) | Mysql集群部署方法、装置、电子设备及存储介质 | |
CN115202712B (zh) | 应用管理方法、应用订阅方法及相关设备 | |
CN111459510A (zh) | 跨网络操作系统的安装方法、装置、电子设备及介质 | |
Sethi et al. | Rapid deployment of SOA solutions via automated image replication and reconfiguration | |
CN116166283A (zh) | 一种容器编排部署方法、系统、电子设备及存储介质 | |
CN113805858B (zh) | 持续部署脚本语言开发的软件的方法和装置 | |
CN115437657A (zh) | 服务启动方法、装置、设备及存储介质 | |
CN114860401A (zh) | 异构云桌面调度系统、方法、服务系统、装置及介质 | |
CN114461249A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |