CN117827381A - 一种基于Kubernets低代码应用运行态部署及扩容方法 - Google Patents
一种基于Kubernets低代码应用运行态部署及扩容方法 Download PDFInfo
- Publication number
- CN117827381A CN117827381A CN202410251001.7A CN202410251001A CN117827381A CN 117827381 A CN117827381 A CN 117827381A CN 202410251001 A CN202410251001 A CN 202410251001A CN 117827381 A CN117827381 A CN 117827381A
- Authority
- CN
- China
- Prior art keywords
- application
- container
- running state
- deployment
- alarm
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000012544 monitoring process Methods 0.000 claims abstract description 22
- 238000010276 construction Methods 0.000 claims abstract description 7
- 230000006378 damage Effects 0.000 claims abstract description 6
- 230000009471 action Effects 0.000 claims description 28
- 239000000306 component Substances 0.000 claims description 16
- 241000380131 Ammophila arenaria Species 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 13
- 230000006870 function Effects 0.000 claims description 9
- 238000009434 installation Methods 0.000 claims description 9
- 238000013461 design Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 4
- 230000001629 suppression Effects 0.000 claims description 4
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 claims description 3
- 239000008358 core component Substances 0.000 claims description 3
- 230000002688 persistence Effects 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 3
- 230000002045 lasting effect Effects 0.000 claims description 2
- 238000009877 rendering Methods 0.000 claims description 2
- 230000007246 mechanism Effects 0.000 abstract description 4
- 238000011084 recovery Methods 0.000 abstract description 3
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 239000002243 precursor Substances 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出一种基于Kubernets低代码应用运行态部署及扩容方法,属于代码平台技术领域,包括:应用运行态镜像构建、运行态容器部署、运行态容器镜像升级和运行态容器销毁;应用制品存储和应用容器化部署;prometheus监控、Alertmanager报警和应用副本数量控制,基于Kubernets低代码应用运行态部署及扩容方法,配合监控及报警机制可以实现应用运行态的自动化扩展及回收方法,可以实现计算资源的高效利用。
Description
技术领域
本发明属于代码平台应用领域,具体涉及一种基于Kubernets低代码应用运行态部署及扩容方法。
背景技术
低代码应用在经过设计师进行表现设计,表单设计,规则设计,权限设计后完成后即可已将应用进行本地部署, 或者根据应用模版进行本地部署运行通常是所有应用共用一个运行态当运行态部分应用在使用高峰数据量较大或者吞吐量较大时则会影响同一运行态其他已部署应用的使用,此时则需要增加机器对运行态进行横向扩展,这样的结果就是在高峰过后会有部分计算资源闲置造成计算资源的浪费。
发明内容
本发明针对现有技术下的问题,公开了一种基于Kubernets低代码应用运行态部署及扩容方法,配合监控及报警机制可以实现应用运行态的自动化扩展及回收方法,可以实现计算资源的高效利用。
为了达到上述目的,本申请采用的技术方案为:一种基于Kubernets低代码应用运行态部署及扩容方法,包括:应用运行态镜像构建、运行态容器部署、运行态容器镜像升级和运行态容器销毁;设计态通过API调用Helm接口管理应用运行态Kubernates容器生命周期;容器启动后根据应用制品部署应用,管理应用生命周期;
应用制品存储和应用容器化部署,应用制品以文件的形式存储在minio,将应用制品内数据库表信息内容在服务端进行持久化和渲染;
prometheus 监控、Alertmanager 报警和应用副本数量控制,配置Kafka作为报警接收器,同时在运行态容器管理服务,确定运行态容器吞吐量超过设定阈值后通过Helm进行容器升级,增加一个副本数量,或者减少一个副本数量;
进一步的,所述应用运行态镜像构建,运行态以Springboot为基础,运行态基础镜像openjdk:8-jdk-alpine通过ENV设置一系列环境变量;通过ADD 拷贝 Spring Boot jar包和启动脚本start.sh到镜像中,启动脚本,配置jar包启动项;使用 Dockerfile 构建镜像。
进一步的,所述运行态容器部署包括:对应用运行态容器的生命周期管理基于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 中的一个方法,用于在指定的上下文环境中运行一个函数。该方法需要传入一个函数和一个上下文对象。
进一步的,所述运行态容器镜像升级包括:先通过action.NewUpgrade建立一个Kubernates客户端action,然后通过 LocateChart 加载本地的chart包client.Run方法对容器根据请求内容进行镜像更新或者副本数变更。
进一步的,所述运行态容器销毁包括:首先action.NewUninstall建立一个Kubernates客户端action,然后通过 LocateChart 加载本地的chart包,最后通过client.Run卸载运行态容器。
进一步的,所述prometheus 监控包括运行态集成监控组件,运行态集成监控组件包括spring-boot-starter-actuator,micrometer-registry-prometheus, micrometer-core三个核心组件,并进行监控。
进一步的,所述Alertmanager是Prometheus生态系统中的一个重要组件,主要用于处理Prometheus生成的警报;Alertmanager 的主要功能包括:分组合并警报,路由警报,去重复,静默和抑制,通知发送;
配置报警规则,当前报警依据的是当前应用的吞吐量,当TPS大于1000时运行态的CPU和数据库连接池资源会对节点造成访问压力导致其他服务不可用;
修改Prometheus配置文件指向报警规则文件,重启Prometheus服务使文件生效,使用Kafka作为报警接收器,接收报警。
进一步的,所述应用副本数量控制,基于配置了Kafka作为报警接收器,同时在运行态容器管理服务消费该报警,解析消息,提取报警指标,为了避免无效的报警影响运行态容器副本数量,将该指标与配置指标进行比较,其目的是确定运行态容器吞吐量超过阈值;当确定超过访问阈值后则通过Helm进行容器升级,增加一个副本数量,或者减少一个副本数量,当副本数为1时则忽略报警,并忽略接下来3分钟的报警。
进一步的,所述应用制品存储步骤如下:
步骤1:在每一个节点上下载并启动MinIO服务,使用minio server命令,指定访问密钥、存储路径等参数;
步骤2:在任意一个MinIO节点上,使用minio server初始化集群;
步骤3:创建存储桶,连接任一MinIO节点,使用mc tool创建所需的存储桶;存储桶会被复制到集群的所有节点上。
进一步的,所述应用的容器化部署过程如下:
过程1:解析应用制品,对应用,菜单,表单,流程,字典,规则,表单内容进行持久化;
过程2:生成表单对应的数据库表结构;
过程3:解析流程定义,调用流程服务接口创建流程,启动流程实例。
与现有技术相比,本发明的优点和积极效果在于:
本发明公开了应用运行态镜像构建、运行态容器部署、运行态容器镜像升级和运行态容器销毁;应用制品存储和应用容器化部署;prometheus 监控、Alertmanager报警和应用副本数量控制的方法步骤,基于Kubernets低代码应用运行态部署及扩容方法,配合监控及报警机制可以实现应用运行态的自动化扩展及回收方法,可以实现计算资源的高效利用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的运行态生命周期的过程图;
图2为本发明的应用制品包括内容的示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和实施例对本发明作进一步说明。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开说明书的具体实施例的限制。
术语解释:
运行态生命周期:运行态是应用运行的基础,运行态也是一个应用其主要作用是解析应用制品,持久化应用结构,解析流程,创建流程势力,为表单创建数据库表结构,执行表单规则等,其生命周期大致分为,运行态镜像构建,运行态容器化部署,动态容器升级,容器卸载三个阶段。
实施例1,如图1~2所示,本申请提供了一种基于Kubernets低代码应用运行态部署及扩容方法,包括:
应用运行态镜像构建,运行态以Springboot为基础,运行态基础镜像openjdk:8-jdk-alpine通过ENV设置一系列环境变量;通过ADD 拷贝 Spring Boot jar 包和启动脚本start.sh到镜像中,启动脚本,配置jar包启动项;使用 Dockerfile 构建镜像;
运行态容器部署,对应用运行态容器的生命周期管理基于gin对外提供http服务,实现应用运行态容器化于应用本身的解藕,对外暴露了容器安装,容器升级,容器卸载3个接口;使用helm go sdk 建立与Kubernates容器的连接,调用cli.New() 接口和kube_config.yaml配置文件创建一个客户端;通过客户端提供的action.NewInstall 创建一个动作,LocateChart加载本地chart包,最后通过RunWithContext为运行态容器进行安装;
运行态容器镜像升级,与容器安装类似需要先通过action.NewUpgrade建立一个Kubernates客户端action.然后通过LocateChart 加载本地的chart包 client.Run 方法对容器根据请求内容进行镜像更新或者副本数变更;
运行态容器销毁,首先action.NewUninstall建立一个Kubernates客户端action,然后通过 LocateChart 加载本地的chart包,最后通过client.Run卸载运行态容器。
运行态集成监控组件包括spring-boot-starter-actuator, micrometer-registry-prometheus,micrometer-core三个核心组件;
Alertmanager是Prometheus生态系统中的一个重要组件,主要用于处理Prometheus生成的警报。Alertmanager的主要功能包括:分组合并警报,路由警报,去重复,静默和抑制,通知发送。
配置报警规则,当前报警依据的是当前应用的吞吐量,当TPS大于1000时运行态的CPU和数据库连接池资源会对节点造成访问压力导致其他服务不可用。
修改Prometheus配置文件指向报警规则文件,重启Prometheus服务使文件生效,使用Kafka作为报警接收器,接收报警;
配置了Kafka作为报警接收器,同时在运行态容器管理服务消费该报警,解析消息,提取报警指标,为了避免无效的报警影响运行态容器副本数量,将该指标与配置指标进行比较,其目的是确定运行态容器吞吐量超过阈值;当确定超过访问阈值后则通过Helm进行容器升级,增加一个副本数量,或者减少一个副本数量,当副本数为1时则忽略报警,并忽略接下来3分钟的报警。
1、应用运行态镜像构建,运行态以Springboot为基础,运行态基础镜像openjdk:8-jdk-alpine通过ENV设置一系列环境变量,包括 Nacos、默认数据库等配置,通过ADD 拷贝 Spring Boot jar 包和启动脚本start.sh到镜像中,通过EXPOSE - 暴露 9015 端口给容器内服务,通过ENTRYPOINT - 入口启动执行启动脚本,启动脚本start.sh于传统Springboot项目启动脚本类似,配置jar包启动项如最大堆,最小堆,Spring activeprofile, nacos配置中心,nacos 服务注册发现地址,动态数据源等。
使用 Dockerfile 构建镜像,可以通过 docker build 命令完成;
docker build -t web-runtime-image:1.0;
使用 docker tag 命令为镜像加上私有仓库的域名前缀;
docker tag web-runtime-image:1.0 private.registry.com/web-runtime-image:1.0;
使用 docker login 命令登录私有仓库;
docker login private.registry.com;
使用 docker push 命令推送镜像到私有仓库;
docker push private.registry.com/web-runtime-image:1.0。
2、运行态容器部署,Helm 可以帮助管理 Kubernetes 应用程序 - Helm Charts可以定义、安装和升级复杂的 Kubernetes 应用程序,Charts 包很容易创建、版本管理、分享和分布。一个 chart 是描述一组相关的 Kubernetes 资源的文件集合,单个 chart 可能用于部署简单的应用;
通过helm create创建chart 模版,在chart.yml定义chart 名称,版本;
helm create web-runtime-chart;
编辑deployment.yml 通过metadata定义 Deployment 的名字、label等元数据信息。spec.replicas - 定义副本数量,可以通过 .Values 配置,本文默认为1,也可以根据自身业务特征调整。自定义metadata selector - 通过 label 选择 Pod。修改template -定义应用运行态 Pod 模板。spec.containers - 定义容器,指定镜像、端口、健康检查等配置。
编辑service.yml定义运行态服务基本信息包括:为部署的应用定义服务入口,service提供了一个统一的入口访问应用的Pod;暴露服务端口,通过service可以将部署的应用容器端口暴露出去,提供外部访问;负载均衡和流量路由,service可以通过labelselector匹配一组Pod,并将流量负载均衡分发给这些Pod;设置访问策略,可以定义service的clusterIP类型或externalIPs,控制服务的可访问范围。
本文针对应用运行态容器的生命周期管理基于gin对外提供http服务,实现了应用运行态容器化于应用本身的解藕,对外暴露了容器安装,容器升级, 容器卸载3个接口。本文使用helm go sdk 建立于Kubernates容器的连接,调用cli.New() 接口和kube_config.yaml配置文件创建一个客户端。
通过客户端提供的action.NewInstall 创建一个动作,其次LocateChart加载本地chart包,最后通过RunWithContext为运行态容器进行安装。
3、运行态容器镜像升级,与容器安装类似需要先通过action.NewUpgrade建立一个Kubernates客户端action.然后通过 LocateChart 加载本地的chart包 client.Run 方法对容器根据请求内容进行镜像更新或者副本数变更。
4、运行态容器销毁,首先action.NewUninstall建立一个Kubernates客户端action,然后通过 LocateChart 加载本地的chart包,最后通过client.Run卸载运行态容器。
应用制品包括内容,应用制品内容主要包含,应用本身相关,下属的菜单,表单,流程,规则,权限等数据的文档描述,具体内容如下:
(1)应用制品包含应用基本信息包括,应用名称,版本,描述,状态,图标,创建人,创建时间等。
(2)应用菜单,菜单名称,层级,败絮,创建人,创建时间。
(3)表单信息包括表单类型,表单状态,描述,创建人,创建时间等;
(4)表单规则,表单与其他表单的联动或外接数据库,第三方API交互的方法,主要包含,指向表单的表单ID,规则内容,创建人,创建时间。
(5)表单内容,表单ID,content,创建人,创建时间,其中content为JSON表述的表单内容前端展示,运行态前端根据content内容进行渲染;
(6)物化信息表包括表单物化后的字段名称,字段类型,字段描述,默认值,排序,组件码,是否为主键,是否创建索引,是否为一,是否允许为空,options。
(7)流程表定义,包括表单ID,content,创建人,创建时间。
(8)表单数据访问权限控制,包括角色ID,指向表单的表单ID,创建人,创建时间。
以上所有内容均通过json文件承载。
应用制品存储,应用制品以文件的形式存储在minio,为了高可用本文对Minio进行分布式4个节点部署,步骤如下:
步骤1:在每一个节点上下载并启动MinIO服务,使用minio server命令,指定访问密钥、存储路径等参数。
步骤2:在任意一个MinIO节点上,使用minio server初始化集群;
步骤3:创建存储桶,连接任一MinIO节点,使用mc tool创建所需的存储桶。存储桶会被复制到集群的所有节点上。
应用容器化部署,应用的容器化部署过程即将应用制品内应用,菜单,表单,流程,字典,规则,表单内容,表单物化后数据库表信息等内容在服务端进行持久化和渲染,主要过程如下:
过程1:解析应用制品,对应用,菜单,表单,流程,字典,规则,表单内容进行持久化。
过程2:生成表单对应的数据库表结构。
过程3:解析流程定义,调用流程服务接口创建流程,启动流程实例。
监控,报警及多副本,prometheus 监控,运行态集成监控组件包括spring-boot-starter-actuator,micrometer-registry-prometheus,micrometer-core三个核心组件,这三个组件分别用于监控指标埋点,采集,暴露;
暴露监控指标,修改指标访问路径为”/manage”,改路径修改的主要目的是避免部分恶意攻击,可以根据自身业务特点定制改路径。
management:
endpoints:
web:
exposure:
include: "*"
base-path: "/manage"
安装Prometheus,下载二进制安装包,进行安装即可,但是由于前期配置需要频繁重启Prometheus服务建议在/etc/systemd/system目录下为其设置系统启动项;
[Unit]
Description=Prometheus Monitoring
Documentation=https://prometheus.io/docs/introduction/overview/
After=network-online.target
[Service]
User=prometheus
Restart=on-failure
ExecStart=/path/to/prometheus \
--config.file=/path/to/prometheus.yml \
--storage.tsdb.path=/path/to/prometheus/data
[Install]
WantedBy=multi-user.target
Alertmanager 报警,Alertmanager 是 Prometheus 生态系统中的一个重要组件,主要用于处理 Prometheus 生成的警报。Alertmanager 的主要功能包括:分组合并警报,路由警报,去重复,静默和抑制,通知发送。
配置报警规则,当前本实施例报警依据的是当前应用的吞吐量,当TPS大于1000时运行态的CPU和数据库连接池资源会对节点造成访问压力导致其他服务不可用。
修改Prometheus配置文件指向报警规则文件,重启Prometheus服务使文件生效。
使用Kafka作为报警接收器,接收报警。
应用副本数量控制,在Alertmanager 报警中,配置了Kafka作为报警接收器,同时在运行态容器管理服务消费该报警,解析消息,提取报警指标,为了避免无效的报警影响运行态容器副本数量,将该指标与配置指标进行比较,其目的是确定运行态容器吞吐量超过阈值。
当确定超过访问阈值后则通过Helm进行容器升级,增加一个副本数量,或者减少一个副本数量,当副本数为1时则忽略报警,并忽略接下来3分钟的报警,访问阈值是系统管理根据基础设施条件自行设置。
本文公开了一种基于Kubernates的应用运行态部署方法,配合监控及报警机制可以实现应用运行态的自动化扩展及回收方法,可以实现计算资源的高效利用。
实施例2,本发明提供了一种基于Kubernets低代码应用运行态部署及扩容的装置,包括:
应用运行态镜像构建模块,所述应用运行态镜像构建,运行态以Springboot为基础,运行态基础镜像openjdk:8-jdk-alpine通过ENV设置一系列环境变量;通过ADD 拷贝Spring Boot jar 包和启动脚本start.sh到镜像中,启动脚本,配置jar包启动项;使用Dockerfile 构建镜像;
运行态容器部署模块,所述运行态容器部署包括:对应用运行态容器的生命周期管理基于gin对外提供http服务,实现应用运行态容器化于应用本身的解藕,对外暴露了容器安装,容器升级,容器卸载3个接口;使用helm go sdk 建立与Kubernates容器的连接,调用cli.New() 接口和kube_config.yaml配置文件创建一个客户端;通过客户端提供的action.NewInstall 创建一个动作,LocateChart加载本地chart包,最后通过RunWithContext为运行态容器进行安装;
运行态容器镜像升级模块,与容器安装类似需要先通过action.NewUpgrade建立一个Kubernates客户端action.然后通过 LocateChart 加载本地的chart包 client.Run方法对容器根据请求内容进行镜像更新或者副本数变更;
运行态容器销毁模块,首先action.NewUninstall建立一个Kubernates客户端action,然后通过 LocateChart 加载本地的chart包,最后通过client.Run卸载运行态容器。
上述应用运行态镜像构建模块、运行态容器部署模块、运行态容器镜像升级模块和运行态容器销毁模块的具体设置内容与实施例1的方法相对应。
实施例3,一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行实施例1的方法。
实施例4,本发明提供了一种电子设备,包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被处理器执行时,触发电子设备执行实施例1的方法;
所述电子设备可以包括:处理器、存储器及通信单元。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,电子设备的结构并不构成对本发明实施例的限定,它既可以是总线形结构,也可以是星型结构,或者组合某些部件,或者不同的部件布置。
其中,所述通信单元,用于建立通信信道,从而使所述电子设备可以与其它设备进行通信。接收其他设备发送的用户数据或者向其他设备发送用户数据。
所述处理器,为电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子设备的各种功能和/或处理数据。所述处理器可以由集成电路(integrated circuit,IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器可以仅包括中央处理器(centralprocessing unit,CPU)。在本发明实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
所述存储器,用于存储处理器的执行指令,存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
当存储器中的执行指令由处理器执行时,使得电子设备能够执行实施例1的部分或全部步骤。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作其他形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例应用于其他领域,但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。
Claims (10)
1.一种基于Kubernets低代码应用运行态部署及扩容方法,其特征在于,包括:应用运行态镜像构建、运行态容器部署、运行态容器镜像升级和运行态容器销毁;设计态通过API调用Helm接口管理应用运行态Kubernates容器生命周期;Kubernates容器启动后根据应用制品部署应用,管理应用生命周期;
应用制品存储和应用容器化部署,应用制品以文件的形式存储在minio,将应用制品内数据库表信息内容在服务端进行持久化和渲染;
prometheus监控、Alertmanager报警和应用副本数量控制,配置Kafka作为报警接收器,同时在运行态容器管理服务,确定运行态容器吞吐量超过设定阈值后通过Helm进行容器升级,增加一个副本数量,或者减少一个副本数量。
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报警的主要功能包括:分组合并警报,路由警报,去重复,静默和抑制,通知发送;
配置报警规则,当前报警依据的是当前应用的吞吐量,当TPS大于1000时运行态的CPU和数据库连接池资源会对节点造成访问压力导致其他服务不可用;
修改Prometheus配置文件指向报警规则文件,重启Prometheus服务使文件生效,使用Kafka作为报警接收器,接收报警。
8.根据权利要求7所述的一种基于Kubernets低代码应用运行态部署及扩容方法,其特征在于,所述应用副本数量控制,基于配置了Kafka作为报警接收器,同时在运行态容器管理服务消费该报警,解析消息,提取报警指标,为了避免无效的报警影响运行态容器副本数量,将该指标与配置指标进行比较,其目的是确定运行态容器吞吐量超过阈值;当确定超过访问阈值后则通过Helm进行容器升级,增加一个副本数量,或者减少一个副本数量,当副本数为1时则忽略报警。
9.根据权利要求1所述的一种基于Kubernets低代码应用运行态部署及扩容方法,其特征在于,所述应用制品存储步骤如下:
步骤1:在每一个节点上下载并启动MinIO服务,使用minio server命令,指定访问密钥、存储路径参数;
步骤2:在任意一个MinIO节点上,使用minio server初始化集群;
步骤3:创建存储桶,连接任一MinIO节点,使用mc tool创建所需的存储桶;存储桶会被复制到集群的所有节点上。
10.根据权利要求1所述的一种基于Kubernets低代码应用运行态部署及扩容方法,其特征在于,所述应用的容器化部署过程如下:
过程1:解析应用制品,对应用,菜单,表单,流程,字典,规则,表单内容进行持久化;
过程2:生成表单对应的数据库表结构;
过程3:解析流程定义,调用流程服务接口创建流程,启动流程实例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410251001.7A CN117827381A (zh) | 2024-03-06 | 2024-03-06 | 一种基于Kubernets低代码应用运行态部署及扩容方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410251001.7A CN117827381A (zh) | 2024-03-06 | 2024-03-06 | 一种基于Kubernets低代码应用运行态部署及扩容方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117827381A true CN117827381A (zh) | 2024-04-05 |
Family
ID=90513786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410251001.7A Pending CN117827381A (zh) | 2024-03-06 | 2024-03-06 | 一种基于Kubernets低代码应用运行态部署及扩容方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117827381A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112558987A (zh) * | 2020-12-16 | 2021-03-26 | 中盈优创资讯科技有限公司 | 一种基于helm的自动化部署方法及装置 |
CN112995267A (zh) * | 2019-12-16 | 2021-06-18 | 中科星图股份有限公司 | 一种基于Kubernetes集群的数据订阅服务方法和设备 |
CN113448686A (zh) * | 2021-06-22 | 2021-09-28 | 深信服科技股份有限公司 | 一种资源部署方法、装置、电子设备及存储介质 |
CN113778500A (zh) * | 2021-09-26 | 2021-12-10 | 广域铭岛数字科技有限公司 | 一种基于DevOps的软件开发生命周期管理平台 |
CN114443226A (zh) * | 2022-01-24 | 2022-05-06 | 浪潮云信息技术股份公司 | 一种基于kubernetes的IDE应用云上部署方法及系统 |
US20220147391A1 (en) * | 2020-11-12 | 2022-05-12 | Trilio Data, Inc. | Cloud Resource Monitor and Interface Method and System for Containerized Applications |
CN115499310A (zh) * | 2022-08-26 | 2022-12-20 | 浪潮软件科技有限公司 | 一种基于云计算平台容器服务的业务应用上云方法及系统 |
CN115801539A (zh) * | 2022-11-16 | 2023-03-14 | 浪潮云信息技术股份公司 | 一种容器云场景下租户侧容器监控采集告警方法及系统 |
CN116795397A (zh) * | 2023-05-16 | 2023-09-22 | 浙江大华技术股份有限公司 | 应用管理方法、应用管理装置以及计算机可读存储介质 |
-
2024
- 2024-03-06 CN CN202410251001.7A patent/CN117827381A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112995267A (zh) * | 2019-12-16 | 2021-06-18 | 中科星图股份有限公司 | 一种基于Kubernetes集群的数据订阅服务方法和设备 |
US20220147391A1 (en) * | 2020-11-12 | 2022-05-12 | Trilio Data, Inc. | Cloud Resource Monitor and Interface Method and System for Containerized Applications |
CN112558987A (zh) * | 2020-12-16 | 2021-03-26 | 中盈优创资讯科技有限公司 | 一种基于helm的自动化部署方法及装置 |
CN113448686A (zh) * | 2021-06-22 | 2021-09-28 | 深信服科技股份有限公司 | 一种资源部署方法、装置、电子设备及存储介质 |
CN113778500A (zh) * | 2021-09-26 | 2021-12-10 | 广域铭岛数字科技有限公司 | 一种基于DevOps的软件开发生命周期管理平台 |
CN114443226A (zh) * | 2022-01-24 | 2022-05-06 | 浪潮云信息技术股份公司 | 一种基于kubernetes的IDE应用云上部署方法及系统 |
CN115499310A (zh) * | 2022-08-26 | 2022-12-20 | 浪潮软件科技有限公司 | 一种基于云计算平台容器服务的业务应用上云方法及系统 |
CN115801539A (zh) * | 2022-11-16 | 2023-03-14 | 浪潮云信息技术股份公司 | 一种容器云场景下租户侧容器监控采集告警方法及系统 |
CN116795397A (zh) * | 2023-05-16 | 2023-09-22 | 浙江大华技术股份有限公司 | 应用管理方法、应用管理装置以及计算机可读存储介质 |
Non-Patent Citations (3)
Title |
---|
MONACO, GABRIELE等: "Shared Resource Orchestration Extensions for Kubernetes to Support Real-Time Cloud Containers", 《2023 IEEE 26TH INTERNATIONAL SYMPOSIUM ON REAL-TIME DISTRIBUTED COMPUTING, ISORC》, 6 September 2023 (2023-09-06) * |
杜磊;: "基于OpenStack和Kubernetes的双向部署技术研究", 电脑知识与技术, no. 01, 5 January 2020 (2020-01-05) * |
金子威: "基于K8S的Docker分布式容器自动化运维系统的设计与实现", 《中国优秀硕士学位论文全文数据库(信息科技辑)》, no. 5, 15 May 2019 (2019-05-15) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109739573B (zh) | 实现api接口调用的处理方法及装置、实现api接口的系统 | |
US7039923B2 (en) | Class dependency graph-based class loading and reloading | |
CN112416524A (zh) | 基于docker和kubernetes离线的跨平台的CI/CD的实现方法及装置 | |
CN109614167B (zh) | 一种管理插件的方法和系统 | |
CN111610985B (zh) | 一种国产平台上的kubernetes集群快速部署方法 | |
US20040088397A1 (en) | System and method for management of software applications | |
CN113204353B (zh) | 一种大数据平台组件部署方法及装置 | |
CN110162344B (zh) | 一种隔离限流的方法、装置、计算机设备及可读存储介质 | |
JP7161560B2 (ja) | 人工知能開発プラットフォームの管理方法及び装置、媒体 | |
CN114968406B (zh) | 一种插件管理方法、装置、电子设备及存储介质 | |
CN115328529B (zh) | 应用管理方法及相关设备 | |
CN111399860A (zh) | 轻应用部署方法、装置、计算机设备和存储介质 | |
CN104573496A (zh) | 一种禁止启动项启动的方法和装置 | |
CN117827381A (zh) | 一种基于Kubernets低代码应用运行态部署及扩容方法 | |
CN114640610B (zh) | 基于云原生的服务治理方法、装置及存储介质 | |
CN115729590A (zh) | 服务部署方法、装置、设备和计算机可读存储介质 | |
CN115794253A (zh) | 应用集成方法、装置、电子设备及计算机可读存储介质 | |
CN115543429A (zh) | 项目环境的搭建方法、电子设备及计算机可读存储介质 | |
CN112527377B (zh) | 应用程序生成处理方法、装置、计算机设备和存储介质 | |
CN115016862A (zh) | 基于Kubernetes集群的软件启动方法、装置、服务器及存储介质 | |
CN115129348A (zh) | 应用程序的资源更新方法、装置、设备及可读存储介质 | |
CN112068862A (zh) | Elasticsearch插件的动态更新方法与插件更新系统 | |
US11017032B1 (en) | Document recovery utilizing serialized data | |
CN111400319A (zh) | 数据处理框架的实现方法、装置、设备及计算机存储介质 | |
US20230418729A1 (en) | Debugging operator errors in a distributed computing environment |
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 |