一种基于Kubernets低代码应用运行态部署及扩容方法与流程

文档序号:37625671发布日期:2024-04-18 17:39阅读:10来源:国知局
一种基于Kubernets低代码应用运行态部署及扩容方法与流程

本发明属于代码平台应用领域,具体涉及一种基于kubernets低代码应用运行态部署及扩容方法。


背景技术:

1、低代码应用在经过设计师进行表现设计,表单设计,规则设计,权限设计后完成后即可已将应用进行本地部署, 或者根据应用模版进行本地部署运行通常是所有应用共用一个运行态当运行态部分应用在使用高峰数据量较大或者吞吐量较大时则会影响同一运行态其他已部署应用的使用,此时则需要增加机器对运行态进行横向扩展,这样的结果就是在高峰过后会有部分计算资源闲置造成计算资源的浪费。


技术实现思路

1、本发明针对现有技术下的问题,公开了一种基于kubernets低代码应用运行态部署及扩容方法,配合监控及报警机制可以实现应用运行态的自动化扩展及回收方法,可以实现计算资源的高效利用。

2、为了达到上述目的,本申请采用的技术方案为:一种基于kubernets低代码应用运行态部署及扩容方法,包括:应用运行态镜像构建、运行态容器部署、运行态容器镜像升级和运行态容器销毁;设计态通过api调用helm接口管理应用运行态kubernates容器生命周期;容器启动后根据应用制品部署应用,管理应用生命周期;

3、应用制品存储和应用容器化部署,应用制品以文件的形式存储在minio,将应用制品内数据库表信息内容在服务端进行持久化和渲染;

4、prometheus 监控、alertmanager 报警和应用副本数量控制,配置kafka作为报警接收器,同时在运行态容器管理服务,确定运行态容器吞吐量超过设定阈值后通过helm进行容器升级,增加一个副本数量,或者减少一个副本数量;

5、进一步的,所述应用运行态镜像构建,运行态以springboot为基础,运行态基础镜像openjdk:8-jdk-alpine通过env设置一系列环境变量;通过add 拷贝 spring boot jar包和启动脚本start.sh到镜像中,启动脚本,配置jar包启动项;使用 dockerfile 构建镜像。

6、进一步的,所述运行态容器部署包括:对应用运行态容器的生命周期管理基于gin对外提供http服务,实现应用运行态容器化于应用本身的解藕,对外暴露了容器安装,容器升级,容器卸载3个接口;使用helm go sdk 建立与kubernates容器的连接,调用cli.new() 接口和kube_config.yaml配置文件创建一个客户端;通过客户端提供的action.newinstall 创建一个动作,locatechart加载本地chart包,最后通过runwithcontext为运行态容器进行安装。其中,cli是helm服务客户端,cli.new 则是通过helm客户端调用new接口;kube_config:kubernetes 配置文件,用于指定连接到kubernetes 集群的信息。locatechart 是 helm go sdk 中的一个方法,用于加载本地chart 包。runwithcontext 是 helm go sdk 中的一个方法,用于在指定的上下文环境中运行一个函数。该方法需要传入一个函数和一个上下文对象。

7、进一步的,所述运行态容器镜像升级包括:先通过action.newupgrade建立一个kubernates客户端action,然后通过 locatechart 加载本地的chart包client.run方法对容器根据请求内容进行镜像更新或者副本数变更。

8、进一步的,所述运行态容器销毁包括:首先action.newuninstall建立一个kubernates客户端action,然后通过 locatechart 加载本地的chart包,最后通过client.run卸载运行态容器。

9、进一步的,所述prometheus 监控包括运行态集成监控组件,运行态集成监控组件包括spring-boot-starter-actuator,micrometer-registry-prometheus, micrometer-core三个核心组件,并进行监控。

10、进一步的,所述alertmanager是prometheus生态系统中的一个重要组件,主要用于处理prometheus生成的警报;alertmanager 的主要功能包括:分组合并警报,路由警报,去重复,静默和抑制,通知发送;

11、配置报警规则,当前报警依据的是当前应用的吞吐量,当tps大于1000时运行态的cpu和数据库连接池资源会对节点造成访问压力导致其他服务不可用;

12、修改prometheus配置文件指向报警规则文件,重启prometheus服务使文件生效,使用kafka作为报警接收器,接收报警。

13、进一步的,所述应用副本数量控制,基于配置了kafka作为报警接收器,同时在运行态容器管理服务消费该报警,解析消息,提取报警指标,为了避免无效的报警影响运行态容器副本数量,将该指标与配置指标进行比较,其目的是确定运行态容器吞吐量超过阈值;当确定超过访问阈值后则通过helm进行容器升级,增加一个副本数量,或者减少一个副本数量,当副本数为1时则忽略报警,并忽略接下来3分钟的报警。

14、进一步的,所述应用制品存储步骤如下:

15、步骤1:在每一个节点上下载并启动minio服务,使用minio server命令,指定访问密钥、存储路径等参数;

16、步骤2:在任意一个minio节点上,使用minio server初始化集群;

17、步骤3:创建存储桶,连接任一minio节点,使用mc tool创建所需的存储桶;存储桶会被复制到集群的所有节点上。

18、进一步的,所述应用的容器化部署过程如下:

19、过程1:解析应用制品,对应用,菜单,表单,流程,字典,规则,表单内容进行持久化;

20、过程2:生成表单对应的数据库表结构;

21、过程3:解析流程定义,调用流程服务接口创建流程,启动流程实例。

22、与现有技术相比,本发明的优点和积极效果在于:

23、本发明公开了应用运行态镜像构建、运行态容器部署、运行态容器镜像升级和运行态容器销毁;应用制品存储和应用容器化部署;prometheus 监控、alertmanager报警和应用副本数量控制的方法步骤,基于kubernets低代码应用运行态部署及扩容方法,配合监控及报警机制可以实现应用运行态的自动化扩展及回收方法,可以实现计算资源的高效利用。



技术特征:

1.一种基于kubernets低代码应用运行态部署及扩容方法,其特征在于,包括:应用运行态镜像构建、运行态容器部署、运行态容器镜像升级和运行态容器销毁;设计态通过api调用helm接口管理应用运行态kubernates容器生命周期;kubernates容器启动后根据应用制品部署应用,管理应用生命周期;

2.根据权利要求1所述的一种基于kubernets低代码应用运行态部署及扩容方法,其特征在于,所述应用运行态镜像构建,运行态以springboot为基础,运行态基础镜像openjdk:8-jdk-alpine通过env设置一系列环境变量;通过add 拷贝spring boot jar包和启动脚本start.sh到镜像中,启动脚本,配置jar包启动项;使用dockerfile构建镜像。

3.根据权利要求1所述的一种基于kubernets低代码应用运行态部署及扩容方法,其特征在于,所述运行态容器部署包括:对应用运行态容器的生命周期管理基于gin对外提供http服务,实现应用运行态容器化于应用本身的解藕,对外暴露了容器安装,容器升级,容器卸载3个接口;使用helm go sdk 建立与kubernates容器的连接,调用cli.new() 接口和kube_config.yaml配置文件创建一个客户端;通过客户端提供的action.newinstall 创建一个动作,locatechart加载本地chart包,最后通过runwithcontext为运行态容器进行安装。

4.根据权利要求1所述的一种基于kubernets低代码应用运行态部署及扩容方法,其特征在于,所述运行态容器镜像升级包括:先通过action.newupgrade建立一个kubernates客户端action,然后通过locatechart加载本地的chart包 client.run方法对容器根据请求内容进行镜像更新或者副本数变更。

5.根据权利要求1所述的一种基于kubernets低代码应用运行态部署及扩容方法,其特征在于,所述运行态容器销毁包括:首先action.newuninstall建立一个kubernates客户端action,然后通过locatechart 加载本地的chart包,最后通过client.run卸载运行态容器。

6.根据权利要求1所述的一种基于kubernets低代码应用运行态部署及扩容方法,其特征在于,所述prometheus 监控包括运行态集成监控组件,运行态集成监控组件包括spring-boot-starter-actuator,micrometer-registry-prometheus, micrometer-core三个核心组件,并进行监控。

7.根据权利要求1所述的一种基于kubernets低代码应用运行态部署及扩容方法,其特征在于,所述alertmanager报警是prometheus 生态系统中的一个重要组件,主要用于处理prometheus生成的警报;alertmanager报警的主要功能包括:分组合并警报,路由警报,去重复,静默和抑制,通知发送;

8.根据权利要求7所述的一种基于kubernets低代码应用运行态部署及扩容方法,其特征在于,所述应用副本数量控制,基于配置了kafka作为报警接收器,同时在运行态容器管理服务消费该报警,解析消息,提取报警指标,为了避免无效的报警影响运行态容器副本数量,将该指标与配置指标进行比较,其目的是确定运行态容器吞吐量超过阈值;当确定超过访问阈值后则通过helm进行容器升级,增加一个副本数量,或者减少一个副本数量,当副本数为1时则忽略报警。

9.根据权利要求1所述的一种基于kubernets低代码应用运行态部署及扩容方法,其特征在于,所述应用制品存储步骤如下:

10.根据权利要求1所述的一种基于kubernets低代码应用运行态部署及扩容方法,其特征在于,所述应用的容器化部署过程如下:


技术总结
本发明提出一种基于Kubernets低代码应用运行态部署及扩容方法,属于代码平台技术领域,包括:应用运行态镜像构建、运行态容器部署、运行态容器镜像升级和运行态容器销毁;应用制品存储和应用容器化部署;prometheus监控、Alertmanager报警和应用副本数量控制,基于Kubernets低代码应用运行态部署及扩容方法,配合监控及报警机制可以实现应用运行态的自动化扩展及回收方法,可以实现计算资源的高效利用。

技术研发人员:李玉峰,曹阳,魏子重,周祥龙,李锐
受保护的技术使用者:山东浪潮科学研究院有限公司
技术研发日:
技术公布日:2024/4/17
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1