掌桥专利:专业的专利平台
掌桥专利
首页

一种基于helm的自动化部署方法及装置

文献发布时间:2023-06-19 10:24:22


一种基于helm的自动化部署方法及装置

技术领域

本发明涉及物联网应用的发布领域,尤其是一种基于helm的自动化部署方法及装置。

背景技术

目前物联网应用的发布主要依靠实施人员的手动升级,无法做到应用自动化部署以及失败回滚。通过引入kubernetes集群编排工具,不仅可以完成应用的平滑升级,在失败时也可以回滚应用。在遇到流量高峰时通过自动化横向扩容进行流量削峰。

此外,直接使用Kubernetes集群编排工具进行应用部署,存在Java API或者语法难用,且使用者需要根据应用本身做部署文件的修改,在遇到大批量应用部署时,效率严重降低。且在应用升级失败时,还需通过原有镜像名进行回滚,但kubernetes集群编排工具并不具备镜像名以及配置文件的持久化存储。

发明内容

为解决上述存在的技术问题,本发明提供一种基于helm的自动化部署方法及装置。

为实现上述目的,本发明采用下述技术方案:

在本发明一实施例中,提出了一种基于helm的自动化部署方法,该方法包括:

用户上传部署应用包,通过Velocity模板引擎生成helm chart部署文件,同时生成helm模板以及dockerfile文件并上传docker服务器,生成docker镜像;

将docker镜像和helm chart部署文件上传至helm服务器,通过helm Api部署至kubernetes集群,并创建pod应用;

用户修改nginx配置文件,同时用户访问nginx时反向代理到应用;

根据指定的资源指标参数,通过对日志、吞吐量和系统运行情况,分析系统负载情况,进行弹性伸缩。

进一步地,用户修改nginx配置文件,同时用户访问nginx时反向代理到应用,包括:

当部署业务系统时,通过创建service组件,由Kubernetes生成应用内部ip或域名,并调用Java Api实时将地址写入nginx配置文件中,用户访问nginx时反向代理到pod应用。

进一步地,根据指定的资源指标参数,通过对日志、吞吐量和系统运行情况,分析系统负载情况,进行弹性伸缩,包括:

通过页面输入参数,生成参数阈值脚本,当CPU和内存参数超出预设阈值时,触发Kubernetes扩容机制,启动多个pod应用;当CPU和内存参数低于预设阈值时,触发Kubernetes缩容机制,删除多余pod应用。

进一步地,该方法还包括:

基于NFS或ceph,支持存储应用包及应用所需配置文件。

在本发明一实施例中,还提出了一种基于helm的自动化部署装置,该装置包括:

业务系统部署模块,用于用户上传部署应用包,通过Velocity模板引擎生成helmchart部署文件,同时生成helm模板以及dockerfile文件并上传docker服务器,生成docker镜像;将docker镜像和helm chart部署文件上传至helm服务器,通过helm Api部署至kubernetes集群,并创建pod应用;用户修改nginx配置文件,同时用户访问nginx时反向代理到应用;

容器化部署应用模块,用于根据指定的资源指标参数,通过对日志、吞吐量和系统运行情况,分析系统负载情况,进行弹性伸缩。

进一步地,用户修改nginx配置文件,同时用户访问nginx时反向代理到应用,包括:

当部署业务系统时,通过创建service组件,由Kubernetes生成应用内部ip或域名,并调用Java Api实时将地址写入nginx配置文件中,用户访问nginx时反向代理到pod应用。

进一步地,容器化部署应用模块,具体用于:

通过页面输入参数,生成参数阈值脚本,当CPU和内存参数超出预设阈值时,触发Kubernetes扩容机制,启动多个pod应用;当CPU和内存参数低于预设阈值时,触发Kubernetes缩容机制,删除多余pod应用。

进一步地,该装置还包括:

应用持久化存储模块,用于基于NFS或ceph,支持存储应用包及应用所需配置文件。

在本发明一实施例中,还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现前述基于helm的自动化部署方法。

在本发明一实施例中,还提出了一种计算机可读存储介质,计算机可读存储介质存储有执行基于helm的自动化部署方法的计算机程序。

有益效果:

1、本发明基于helm之上,既可以完成物联网应用部署,还可以提供页面查询部署信息。

2、本发明支持弹性伸缩,根据分析当前应用所用的资源与所设的阈值动态扩容缩容。

3、本发明支持自定义ip或域名访问。

4、本发明支持应用镜像、日志以及配置文件的持久化存储。

附图说明

图1是本发明一实施例的基于helm的自动化部署方法流程示意图;

图2是本发明一实施例的部署文件存储流程示意图;

图3是本发明一实施例的系统数据存储流程示意图;

图4是本发明一实施例的基于helm的自动化部署装置结构示意图;

图5是本发明一实施例的计算机设备结构示意图。

具体实施方式

下面将参考若干示例性实施方式来描述本发明的原理和精神,应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

根据本发明的实施方式,提出了一种基于helm的自动化部署方法及装置,构建基于helm之上,具备应用自动发布回滚。为用户提供了rest接口进行应用发布参数管理,可填写应用运行副本数,以及对host文件修改,并结合Oracle/Mysql数据库记录业务系统的部署信息,通过查询镜像名称和版本号实现系统回滚。在业务系统部署时,底层使用java代码并通过Velocity渲染自动生成helm的charts文件,通过进行docker镜像的制作,创建pod、service、deployment和ingress等对象实现对镜像的启动,并调度访问。在容器化部署应用时,通过分析监控,如CPU、内存、磁盘和网络,配置出合理的弹性伸缩如扩容和缩容。

下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。

图1是本发明一实施例的基于helm的自动化部署方法流程示意图。如图1所示,该方法包括:

1、用户上传部署应用包,通过Velocity模板引擎生成helm chart部署文件,同时生成helm模板以及dockerfile文件并上传docker服务器,生成docker镜像;

2、将docker镜像和helm chart部署文件上传至helm服务器,通过helm Api部署至kubernetes集群,并创建pod应用;

3、用户修改nginx配置文件,同时用户访问nginx时反向代理到应用;

4、根据指定的资源指标参数,通过对日志、吞吐量和系统运行情况,分析系统负载情况,进行弹性伸缩。

需要说明的是,尽管在上述实施例及附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

为了对上述基于helm的自动化部署方法进行更为清楚的解释,下面结合一个具体的实施例来进行说明,然而值得注意的是该实施例仅是为了更好地说明本发明,并不构成对本发明不当的限定。

1、上传需要部署的应用包,包括jar和war格式,调用Java Api按照Velocity语法,渲染生成dockerfile文件,并根据docker Api生成可被Kubernetes使用的docker镜像。

helm目录文件:

2、将docker镜像以及生成好的helm chart部署文件通过Java Api上传至服务器;通过helm install命令创建Pod和deployment等kubernetes组件。

创建组件:

3、三七层地址访问应用:当部署业务系统时,通过创建service组件,由Kubernetes生成应用内部ip或域名,并调用Java Apl实时将地址写入nginx配置文件中,用户访问nginx时反向代理到应用。

4、扩容机制:处理页面输入参数,生成参数阈值脚本,当CPU和内存参数超出预设阈值时,触发Kubernetes扩容机制,启动多个pod应用;当CPU和内存参数下降时,再次触发缩容机制,删除多余pod应用。

查看节点性能参数:

自动伸缩规则:

5、应用的持久化存储:基于NFS或ceph,支持存储应用包及应用所需配置文件。

(1)部署文件存储

图2是本发明一实施例的部署文件存储流程示意图。如图2所示,首先将NFS/Ceph等作为文件服务器挂载到部署服务器中,用户通过前台上传部署包以及部署文件后,系统调用java Api并通过上述部署过程将文件上传至存储设备并记录当前文件的bucket以及文件id(或文件路径),以服务名和时间为索引持久化到DB中。

(2)系统数据存储

图3是本发明一实施例的系统数据存储流程示意图。如图3所示,以NFS挂载为例,首先在NFS服务器上,使用NFS创建多个数据卷,在k8s集群中定义PV/PVC,让pod关联PVC:

在k8s集群中定义与系统关联的PVC:

在pod中使用PVC:

基于同一发明构思,本发明还提出一种基于helm的自动化部署装置。该装置的实施可以参见上述方法的实施,重复之处不再赘述。以下所使用的术语“模块”,可以是实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图4是本发明一实施例的基于helm的自动化部署装置结构示意图。如图4所示,该装置包括:

业务系统部署模块201,用于用户上传部署应用包,通过Velocity模板引擎生成helm chart部署文件,同时生成helm模板以及dockerfile文件并上传docker服务器,生成docker镜像;将docker镜像和helm chart部署文件上传至helm服务器,通过helm Api部署至kubernetes集群,并创建pod应用;用户修改nginx配置文件,同时用户访问nginx时反向代理到应用,即:

当部署业务系统时,通过创建service组件,由Kubernetes生成应用内部ip或域名,并调用Java Api实时将地址写入nginx配置文件中,用户访问nginx时反向代理到pod应用。

容器化部署应用模块202,用于根据指定的资源指标参数,通过对日志、吞吐量和系统运行情况,分析系统负载情况,进行弹性伸缩;

通过页面输入参数,生成参数阈值脚本,当CPU和内存参数超出预设阈值时,触发Kubernetes扩容机制,启动多个pod应用;当CPU和内存参数低于预设阈值时,触发Kubernetes缩容机制,删除多余pod应用。

应用持久化存储模块203,用于基于NFS或ceph,支持存储应用包及应用所需配置文件。

应当注意,尽管在上文详细描述中提及了基于helm的自动化部署装置的若干模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。

基于前述发明构思,如图5所示,本发明还提出一种计算机设备300,包括存储器310、处理器320及存储在存储器310上并可在处理器320上运行的计算机程序330,处理器320执行计算机程序330时实现前述基于helm的自动化部署方法。

基于前述发明构思,本发明还提出一种计算机可读存储介质,计算机可读存储介质存储有执行前述基于helm的自动化部署方法的计算机程序。

本发明提出的基于helm的自动化部署方法及装置,基于helm之上,既可以完成物联网应用部署,还可以提供页面查询部署信息;支持弹性伸缩,根据分析当前应用所用的资源与所设的阈值动态扩容缩容;支持自定义ip或域名访问;支持应用镜像、日志以及配置文件的持久化存储。

上述涉及的英文名称和缩写释义如下表1:

表1

虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包含的各种修改和等同布置。

对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

相关技术
  • 一种基于helm的自动化部署方法及装置
  • 一种基于Helm的微服务应用部署系统及方法
技术分类

06120112533838