工作负载扩容方法和系统技术方案

技术编号:31848217 阅读:11 留言:0更新日期:2022-01-12 13:29
本申请涉及一种工作负载扩容方法和系统,该工作负载扩容方法包括:监控进程在业务进程对应的pod中注入容器,并在容器中运行拓展进程;业务进程调用目标SDK的接口,并向目标SDK指定需要执行的代码;目标SDK确定本pod的资源是否充足,若否,目标SDK发送代码和对应的内存数据至共享内存;拓展进程根据共享内存中的数据,生成wasm文件,并与kubernetes集群通信,以生成执行进程;拓展进程发送wasm文件至该执行进程,通过本申请,解决了相关技术中工作负载扩容时占用资源较大的问题,实现了节约系统资源的效果。源的效果。源的效果。

【技术实现步骤摘要】
工作负载扩容方法和系统


[0001]本申请涉及计算机云计算
,特别是涉及一种工作负载扩容方法和系统。

技术介绍

[0002]Kubernetes是自动化容器操作的开源平台,可以实现容器集群的自动化部署、自动化缩容、维护等功能。Kubernetes中有一个功能:无状态的工作负载可以指定副本数,通过增加副本数可以把处理内容分散到不动的负载实例上,实现并发处理多个处理内容。
[0003]然而,图1是根据相关技术中的通过增加副本数进行分散处理的示意图,如图1所示,该方式存在如下问题:每一个负载实例是一个容器,容器本身有基础的内存开销,而且目前的很多架构臃肿庞大,比如springboot,要运行一个springboot程序存在诸多内存开销,包括:容器本身内存开销、JVM虚拟机的内存开销、tomcat的内存开销、springboot框架的内存开销,最后才是处理业务的内存开销。一个容器运行起来最少需要500M以上的内存。在此情况下,通过运行多个副本来达到扩容的目的,消耗的资源很大。
[0004]针对相关技术中工作负载扩容时占用资源较大的问题,尚未提出有效的解决方案。

技术实现思路

[0005]本申请实施例提供了一种工作负载扩容方法和系统,以至少解决相关技术中工作负载扩容时占用资源较大的问题。
[0006]第一方面,本申请实施例提供了一种工作负载扩容方法,所述方法包括:监控进程在监控到kubernetes集群部署了新的工作负载,且所述工作负载的业务进程中部署有目标SDK的情况下,确定对所述工作负载进行扩容,其中,所述目标SDK用于运行并发任务;所述监控进程在所述业务进程对应的pod中注入sidecar方式的容器,并在所述容器中运行拓展进程,其中,所述拓展进程与所述业务进程共享内存;所述业务进程调用目标SDK的接口,并向目标SDK指定需要执行的代码;所述目标SDK确定本pod的资源是否充足,若否,目标SDK发送所述代码和对应的内存数据至所述共享内存,并发送运行所述代码的请求至所述拓展进程;所述拓展进程根据所述共享内存中的数据,生成至少一个wasm文件,并与所述kubernetes集群通信,以生成至少一个执行进程;所述拓展进程发送所述wasm文件至所述执行进程。
[0007]在其中一些实施例中,所述拓展进程根据所述共享内存中的数据,生成wasm文件的过程包括:所述拓展进程封装所述共享内存里的所述代码和内存数据,得到wasm的函数;所述拓展进程在封装结果中添加网络通信地址,并编译所有代码,生成所述wasm文件。
[0008]在其中一些实施例中,所述拓展进程发送所述wasm文件至所述执行进程之后,所
述方法包括:所述执行进程处理所述wasm文件,并发送处理结果至所述网络通信地址;所述拓展进程接收所述处理结果,将所述处理结果写入所述共享内存,并通知所述目标SDK读取所述处理结果。
[0009]在其中一些实施例中,所述生成至少一个执行进程之后,所述方法包括:所述拓展进程监控所述执行进程的个数是否充足;若否,所述拓展进程与kubernetes集群通信,以新增执行进程,并且所述拓展进程将所述新增执行进程纳入管理。
[0010]第二方面,本申请实施例提供了一种工作负载扩容系统,所述系统包括监控进程、业务进程、拓展进程和执行进程,其中,所述拓展进程包括编译模块和调度模块;所述监控进程在监控到kubernetes集群部署了新的工作负载,且所述工作负载的所述业务进程中部署有目标SDK的情况下,确定对所述工作负载进行扩容,其中,所述目标SDK用于运行并发任务;所述监控进程在所述业务进程对应的pod中注入sidecar方式的容器,并在所述容器中运行所述拓展进程,其中,所述拓展进程与所述业务进程共享内存;所述业务进程调用目标SDK的接口,并向目标SDK指定需要执行的代码;所述目标SDK确定本pod的资源是否充足,若否,目标SDK发送所述代码和对应的内存数据至所述共享内存,并发送运行所述代码的请求至所述编译模块;所述编译模块根据所述共享内存中的数据,生成至少一个wasm文件,所述调度模块与所述kubernetes集群通信,以生成至少一个所述执行进程,并且所述调度模块发送所述wasm文件至所述执行进程。
[0011]在其中一些实施例中,所述编译模块根据所述共享内存中的数据,生成wasm文件的过程包括:所述编译模块封装所述共享内存里的所述代码和内存数据,得到wasm的函数;所述编译模块在封装结果中添加网络通信地址,并编译所有代码,生成所述wasm文件。
[0012]在其中一些实施例中,所述拓展进程还包括结果处理模块;所述调度模块发送所述wasm文件至所述执行进程之后,所述执行进程处理所述wasm文件,并发送处理结果至所述网络通信地址;所述结果处理模块接收所述处理结果,将所述处理结果写入所述共享内存,并通知所述目标SDK读取所述处理结果。
[0013]在其中一些实施例中,所述生成至少一个执行进程之后:所述调度模块监控所述执行进程的个数是否充足;若否,所述调度模块与kubernetes集群通信,以新增执行进程,并且所述调度模块将所述新增执行进程纳入管理。
[0014]第三方面,本申请实施例提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述工作负载扩容方法。
[0015]第四方面,本申请实施例提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述工作负载扩容方法。
[0016]相比于相关技术,本申请实施例提供的工作负载扩容方法,通过监控进程在监控到kubernetes集群部署了新的工作负载,且工作负载的业务进程中部署有目标SDK的情况下,确定对工作负载进行扩容,其中,目标SDK用于运行并发任务;监控进程在业务进程对应的pod中注入sidecar方式的容器,并在容器中运行拓展进程,其中,拓展进程与业务进程共享内存;业务进程调用目标SDK的接口,并向目标SDK指定需要执行的代码;目标SDK确定本pod的资源是否充足,若否,目标SDK发送代码和对应的内存数据至共享内存,并发送运行代码的请求至拓展进程;拓展进程根据共享内存中的数据,生成至少一个wasm文件,并与kubernetes集群通信,以生成至少一个执行进程;拓展进程发送wasm文件至执行进程,解决了相关技术中工作负载扩容时占用资源较大的问题,实现了节约系统资源的效果。
附图说明
[0017]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1是根据相关技术中的通过增加副本数进行分散处理的示意图;图2是根据本申请实施例的工作负载扩容方法的应用环境示意图;图3是根据本申请第一实施例的工作负载扩容方法的流程图;图4是根据本申请第二实施例的工作负载扩容方法的流程图;图5是根据本申请第三实施例的工作负载扩容系统的示意本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种工作负载扩容方法,其特征在于,所述方法包括:监控进程在监控到kubernetes集群部署了新的工作负载,且所述工作负载的业务进程中部署有目标SDK的情况下,确定对所述工作负载进行扩容,其中,所述目标SDK用于运行并发任务;所述监控进程在所述业务进程对应的pod中注入sidecar方式的容器,并在所述容器中运行拓展进程,其中,所述拓展进程与所述业务进程共享内存;所述业务进程调用目标SDK的接口,并向目标SDK指定需要执行的代码;所述目标SDK确定本pod的资源是否充足,若否,目标SDK发送所述代码和对应的内存数据至所述共享内存,并发送运行所述代码的请求至所述拓展进程;所述拓展进程根据所述共享内存中的数据,生成至少一个wasm文件,并与所述kubernetes集群通信,以生成至少一个执行进程;所述拓展进程发送所述wasm文件至所述执行进程。2.根据权利要求1所述的方法,其特征在于,所述拓展进程根据所述共享内存中的数据,生成wasm文件的过程包括:所述拓展进程封装所述共享内存里的所述代码和内存数据,得到wasm的函数;所述拓展进程在封装结果中添加网络通信地址,并编译所有代码,生成所述wasm文件。3.根据权利要求2所述的方法,其特征在于,所述拓展进程发送所述wasm文件至所述执行进程之后,所述方法包括:所述执行进程处理所述wasm文件,并发送处理结果至所述网络通信地址;所述拓展进程接收所述处理结果,将所述处理结果写入所述共享内存,并通知所述目标SDK读取所述处理结果。4.根据权利要求3所述的方法,其特征在于,所述生成至少一个执行进程之后,所述方法包括:所述拓展进程监控所述执行进程的个数是否充足;若否,所述拓展进程与kubernetes集群通信,以新增执行进程,并且所述拓展进程将所述新增执行进程纳入管理。5.一种工作负载扩容系统,其特征在于,所述系统包括监控进程、业务进程、拓展进程和执行进程,其中,所述拓展进程包括编译模块和调度模块;所述监控进程在监控到kubernetes集群部署了新的工作负载,且所述工作负载的所述业务进程中部署...

【专利技术属性】
技术研发人员:王玉虎马骏
申请(专利权)人:杭州朗澈科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1