CN117193884A - 基于容器集群的任务处理方法及装置、k8s集群、存储介质 - Google Patents
基于容器集群的任务处理方法及装置、k8s集群、存储介质 Download PDFInfo
- Publication number
- CN117193884A CN117193884A CN202311241381.8A CN202311241381A CN117193884A CN 117193884 A CN117193884 A CN 117193884A CN 202311241381 A CN202311241381 A CN 202311241381A CN 117193884 A CN117193884 A CN 117193884A
- Authority
- CN
- China
- Prior art keywords
- plug
- application
- task processing
- target
- information
- 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
- 238000003672 processing method Methods 0.000 title abstract description 19
- 238000012545 processing Methods 0.000 claims abstract description 98
- 238000000034 method Methods 0.000 claims abstract description 95
- 230000008569 process Effects 0.000 claims abstract description 36
- 238000004590 computer program Methods 0.000 claims description 12
- 238000013475 authorization Methods 0.000 claims description 6
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 abstract description 40
- 230000000694 effects Effects 0.000 abstract description 4
- 230000002708 enhancing effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 210000001503 joint Anatomy 0.000 description 2
- 238000003032 molecular docking Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种基于容器集群的任务处理方法及装置、K8S集群、存储介质,包括:接收任务处理请求;基于预先建立的应用程序与插件之间的对应关系,将任务处理请求转发至与目标应用程序的插件对应的目标节点,以使目标节点运行插件以处理任务处理请求。本申请实施例在不对应用程序进行修改的情况下,也能够通过插件处理相应的任务,实现了在不对原应用程序改动的情况下拓展和/或增强应用程序功能的效果。
Description
技术领域
本申请实施例涉及容器集群技术,涉及但不限于一种基于容器集群的任务处理方法及装置、K8S集群、存储介质。
背景技术
应用程序,例如与业务相关的应用程序,在使用过程中需要进行功能拓展和/或增强,以实现更多的功能和更强的性能。
目前,对于已有的应用程序,如果想对其进行功能拓展和增强,通常是对原应用程序进行修改或者集成一个成熟的实现方案以实现该功能。但是无论是采用哪种方式,都需要对原应用程序进行修改,这往往会增加原应用程序的复杂性。
发明内容
有鉴于此,本申请实施例提供一种基于容器集群的任务处理方法及装置、K8S集群、存储介质,能够在不对原应用程序改动的情况下拓展和/或增强应用程序的功能。本申请实施例提供的基于容器集群的任务处理方法及装置、K8S集群、存储介质是这样实现的:
第一方面,本申请实施例提供一种基于容器集群的任务处理方法,应用于K8S集群中的管理节点,所述管理节点与所述K8S集群中的其它节点通信连接,所述其它节点上部署有容器组并在所述容器组中运行至少一个应用程序的插件,所述方法包括:
接收任务处理请求,所述任务处理请求是针对目标应用程序而发送的,所述至少一个应用程序包括所述目标应用程序;
基于预先建立的应用程序与插件之间的对应关系,将所述任务处理请求转发至与所述目标应用程序的插件对应的目标节点,以使所述目标节点运行所述插件以处理所述任务处理请求,所述目标节点为所述其它节点中的至少一个节点。
在一些实施例中,不同的插件用于处理不同的任务,所述基于预先建立的应用程序与插件之间的对应关系,将所述任务处理请求转发至与所述目标应用程序的插件对应的目标节点,包括:
基于预先建立的所述应用程序与不同插件之间的对应关系,将当前任务处理请求转发至与所述目标应用程序的目标插件对应的目标节点,以使所述目标节点中的目标插件处理所述当前任务。
在一些实施例中,所述接收任务处理请求之前,所述方法还包括:
获取第一信息和第二信息,并基于所述第一信息和所述第二信息封装不同的API接口,其中,所述第一信息为与节点相关的信息,所述第二信息为与容器组中运行的应用程序相关的信息;
向所述插件开放所述API接口,以使所述插件调用所述第一信息和所述第二信息。
在一些实施例中,所述接收任务处理请求之前,所述方法还包括:
获取所述插件的镜像文件和第三信息,所述第三信息为与所述插件相关的信息;
将所述插件的镜像文件存储至所述K8S集群的节点中;
展示所述第三信息。
在一些实施例中,所述接收任务处理请求之前,所述方法还包括:
建立所述应用程序与所述插件之间的对应关系。
在一些实施例中,所述第三信息包括所述插件的配置模板,所述建立所述应用程序与所述插件之间的对应关系,包括:
接收针对当前应用程序的插件配置命令,所述插件配置命令用于为所述当前应用程序配置至少一个插件;
向所述当前应用程序发送针对当前插件的权限需求请求;
在获取针对所述权限需求请求的授权回复以及针对所述配置模板的配置信息后,建立所述当前应用程序与所述当前插件之间的对应关系。
在一些实施例中,所述建立所述当前应用程序与所述当前插件之间的对应关系之后,所述方法还包括:
生成第四信息,所述第四信息包含所述当前应用程序与所述当前插件之间对应关系;
将所述第四信息和所述配置信息同步至所述当前插件。
在一些实施例中,所述K8S集群中存储有与所述应用程序操作相关的最小资源单元,针对需要调用所述最小资源单元的第一插件,所述方法还包括:
在所述第一插件获取所述应用程序的完全操作权限的情况下,向所述第一插件开放所述最小资源单元。
在一些实施例中,所述K8S集群中存储有与所述应用程序相关的文件,针对需要读取所述文件的第二插件,所述方法还包括:
在所述第二插件关联有所述文件的存储路径的情况下,向所述第二插件开放所述存储路径下所述文件的读取功能。
第二方面,本申请实施例提供一种基于容器集群的任务处理装置,应用于K8S集群中的管理节点,所述管理节点与所述K8S集群中的其它节点通信连接,所述其它节点上部署容器组并在所述容器组中运行至少一个应用程序的插件,所述装置包括:
请求接收模块,用于接收任务处理请求,所述任务处理请求是针对目标应用程序而发送的,所述至少一个应用程序包括所述目标应用程序;
任务转发模块,用于基于预先建立的应用程序与插件之间的对应关系,将所述任务处理请求转发至与所述目标应用程序的插件对应的目标节点,以使所述目标节点运行所述插件以处理所述任务处理请求,所述目标节点为所述其它节点中的至少一个节点。
第三方面,本申请实施例提供一种K8S集群,所述集群包括通信连接的管理节点和其它节点,所述其它节点上部署有容器组并在所述容器组中运行至少一个应用程序的插件,其中:
所述管理节点用于接收任务处理请求,所述任务处理请求是针对目标应用程序而发送的,所述至少一个应用程序包括所述目标应用程序,基于预先建立的应用程序与插件之间的对应关系,将所述任务处理请求转发至与所述目标应用程序的插件对应的目标节点,所述目标节点为所述其它节点中的至少一个节点;
所述其它节点中的目标节点用于接收所述任务处理请求,通过在目标容器组中运行与所述目标应用程序对应的插件以处理所述任务处理请求。
在一些实施例中,所述目标容器组还用于运行所述目标应用程序。
在一些实施例中,所述目标节点还部署有其它容器组,所述其它容器组用于运行所述目标应用程序。
第四方面,本申请实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本申请实施例所述的方法。
第五方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本申请实施例提供的所述的方法。
本申请实施例所提供的基于容器集群的任务处理方法及装置、K8S集群、存储介质,在接收针对所述容器组中的目标应用程序而发送的任务处理请求后,能够基于预先建立的目标应用程序与插件之间的对应关系,将该任务处理请求转发至存储有插件的节点,从而使该节点中的插件处理该任务处理请求,因而能够在不对应用程序进行修改的情况下,也能够通过插件处理相应的任务。这样,实现了在不对原应用程序改动的情况下拓展和/或增强应用程序的功能,解决背景技术中所提出的技术问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本申请的实施例,并与说明书一起用于说明本申请的技术方案。
图1为本申请实施例提供的一种基于容器集群的任务处理方法的流程示意图;
图2为本申请实施例提供的另一种基于容器集群的任务处理方法的流程示意图;
图3为本申请实施例提供的再一种基于容器集群的任务处理方法的流程示意图;
图4为本申请实施例中建立应用程序与插件之间的对应关系的流程示意图;
图5为本申请实施例提供的一种基于容器集群的任务处理装置的结构示意图;
图6为本申请实施例提供的一种K8S集群的结构示意图;
图7为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的具体技术方案做进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
需要指出,本申请实施例所涉及的术语“第一\第二\第三”用以区别类似或不同的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
申请人在提出本申请的过程中还发现:相关技术中,采用集成一个成熟的实现方案来对于已有的应用程序进行功能拓展和增强时,开发人员将被集成方提供的SDK(Software Development Kit,软件开发工具包)导入集成方应用程序中,根据规定的接口规范调用SDK中的能力资源,集成方与被集成方按照统一的接口规范进行对接与调用。但是这种方法也需要对原应用程序进行修改,除了带来更多改造与部署成本外,还会增加原应用程序的复杂性,还可能有引入安全漏洞的风险。
有鉴于此,本申请实施例提供一种基于容器集群的任务处理方法,该方法应用于K8S集群中的管理节点,管理节点可以是一个计算节点,例如一台具有计算能力的计算机设备,或者,还可以是一台虚拟机。如图1所示的方法应用于计算机设备中,在实施的过程中该计算机设备可以为各种类型的具有信息处理能力和显示能力的设备。例如,该计算机设备可以包括个人计算机、笔记本电脑、掌上电脑或服务器等;还可以为移动终端,例如所述移动终端可以包括手机或平板电脑。该方法所实现的功能可以通过计算机设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该计算机设备至少包括处理器和存储介质。
首先,介绍本申请实施例适用的一些技术术语或技术概念。
Kubernetes:又称为K8S,一个开源的容器编排系统,用于自动化部署、扩展和管理容器化应用程序。
KubernetesAPI:Kubernetes控制平面提供的HTTP API,用于用户、集群中的不同部分和集群外部组件相互通信。它定义了Kubernetes中所有资源的结构和行为,并提供对这些资源的操作。
Ingress:Ingress是对K8S集群中服务的外部访问进行管理的API(ApplicationProgramming Interface,程序接口)对象,典型的访问方式是HTTP(HyperText TransferProtocol,超文本传输协议)。Ingress可以提供负载均衡、SSL(Secure Sockets Layer,安全套接层)终结和基于名称的虚拟托管功能。
APItoken:用于访问Kubernetes API的安全凭据。
Rancher:一个开源的企业级容器管理平台,用于部署和管理Kubernetes集群。
节点:节点是Kubernetes集群中的一个计算机。节点可以是物理机器或虚拟机。节点运行Kubernetes代理,Kubernetes代理负责管理容器组。
RestAPI:REST API是Representational State Transfer API的缩写,它是一种用于访问和操作资源的软件接口。REST API使用HTTP协议来传输数据,并使用URI(UniformResource Identifier,统一资源标识符)来表示资源。
Pod:Kubernetes的核心概念,它是一个由一个或多个容器(即容器组)组成的集群。
Service:Kubernetes中的一个抽象概念,它是一个逻辑组件,它可以将一组Pod暴露为一个单一的IP地址和端口。Service可以用于实现负载均衡、服务发现和可用性。
Image:即镜像,Image是一个可执行软件包,它包含了应用程序及其依赖项。
ConfigMap:Kubernetes中的资源,用来存储配置数据,并将这些配置数据传递给容器。
Ingress:Kubernetes中的资源,用来将外部流量路由到Kubernetes集群中的服务。Ingress可以使用HTTP路由、TLS(Transport Layer Security,传输层安全性协议)终端、负载均衡和自定义规则来控制外部流量。
Volume:Kubernetes中的资源,可以将数据存储在宿主机上,并将数据挂载到容器中。
接着,请参见图1,图1是本申请实施例提供的一种基于容器集群的任务处理方法的实现流程示意图,该方法应用于K8S集群中的管理节点,管理节点与K8S集群中的其它节点通信连接,其它节点上部署有容器组并在容器组中运行至少一个应用程序的插件,包括如下实施步骤:
S101、接收任务处理请求;
首先对本申请实施例中的K8S集群进行简单介绍。本申请实施例的K8S集群可以包括多个节点,这些节点可以是物理机器,也可以是虚拟机器。其中,管理节点与K8S集群中的至少一个其它节点通信连接。其它节点上部署有容器组,这些容器组中运行至少一个应用程序的插件,管理节点可以对这些插件进行管理。示例性地,管理节点通过API对接的方式实现对K8S集群资源和应用程序的管理和操作。示例性地,K8S集群管理员可以创建K8S集群的最高权限用户,生成对应的APItoken。管理节点持此APItoken,按照KubernetesAPI、RancherAPI等规范进行对接。在一种可选的实施方式中,本申请实施例可以基于Rancher开发管理节点,从而对K8S集群进行部署和管理。
本申请实施例的应用程序可以是指业务应用程序,这些业务应用程序用于实现某项或某几项业务的功能。管理节点可以对容器组中的插件进行管理,并且管理节点可以接收K8S集群外的设备针对目标应用程序发送的任务处理请求。上述至少一个应用程序包括目标应用程序,例如,在容器组中运行的多个应用程序中,当前任务处理请求是针对其中的一个应用程序A发送的,则该应用程序A可以称为目标应用程序。
在一种具体的实现方式中,管理节点可以基于SCG(Spring Cloud Gateway,微服务网关)创建一个入口控制器(Ingress Controller),用来接管集群入站流量,SCG按照Ingress规范进行开发。
S102、基于预先建立的应用程序与插件之间的对应关系,将任务处理请求转发至与目标应用程序的插件对应的目标节点,以使目标节点运行插件以处理任务处理请求。
为了对应用程序的功能进行拓展和增强,本申请实施例可以预先建立一套应用程序与插件之间的对应关系。示例性地,可以将应用程序A分别与插件a、插件b和插件c建立对应关系,以分别实现第一功能、第二功能和第三功能。这样,当管理节点接收任务处理请求后,如果该任务处理请求是请求实现功能a,则可以通过插件a处理该任务处理请求以实现功能a。可以理解的是,插件通常运行于容器组中,而容器组通常部署于节点上,基于此,管理节点可以将该任务处理请求转发至与应用程序A的插件a对应的目标节点,以使目标节点运行插件a以处理该任务处理请求。
出于安全性考虑,管理节点可以禁止插件对任务处理请求进行修改。管理节点除了实现上述功能外,还可以基于K8S实现负载均衡(LoadBalancer)和TLS(Transport LayerSecurity,传输层安全性协议)功能,以提高K8S集群的性能稳定性和数据安全性,本申请实施例不再赘述。
通过实施本申请实施例,在不对应用程序进行修改的情况下,也能够通过插件处理相应的任务。这样,实现了在不对原应用程序改动的情况下拓展和/或增强应用程序的功能。
在一种可选的实施方式中,不同的插件用于处理不同的任务,上述步骤S102具体为:
基于预先建立的应用程序与不同插件之间的对应关系,将当前任务处理请求转发至与目标应用程序的目标插件对应的目标节点,以使目标节点中的目标插件处理当前任务的技术效果。
本申请实施例中,不同的插件可以用于处理不同的任务,以实现不同的拓展功能。示例性地,仍以应用程序A为例进行说明:假设应用程序A对应三个插件,分别为插件a、插件b和插件c,其中,插件a用于处理任务i,以实现第一功能;插件b用于处理任务ii,以实现第二功能;插件c用于处理任务iii,以实现第三功能。对于当前的任务i,当管理节点接收针对任务i的任务处理请求后,可以将该任务处理请求转发至与应用程序A的插件a对应的目标节点,以使该目标节点中的插件a处理当前任务i;同理,对于当前任务ii,当管理节点接收针对任务ii的任务处理请求后,可以将该任务处理请求转发至与应用程序A的插件b对应的目标节点,以使该目标节点中的插件b处理当前任务ii。
通过实施本申请实施例,在不对应用程序进行修改的情况下,也能够通过不同的插件处理不同的任务。这样,实现了在不对原应用程序改动的情况下,为应用程序拓展和/或增强多个不同的功能的技术效果。
在一种可选的实施方式中,如图2所示,本申请实施例的基于容器集群的任务处理还可以包括:
S201、获取第一信息和第二信息,并基于第一信息和第二信息封装不同的API接口。
该步骤可以位于步骤S101之前。
本申请实施例中,管理节点可以获取与节点相关的信息,即第一信息。示例性地,第一信息包括但不限于:节点信息、中央处理器(CPU)信息、内存信息、容量信息等基础信息,以及资源使用情况等信息;管理节点还可以获取与容器组中运行的应用程序相关的信息,即第二信息。示例性地,第二信息包括但不限于:集群内运行中的应用相关联的Pod、Service、Image、ConfigMap等相关的配置信息和数据。进而,管理节点可以将上述第一信息和第二信息封装为不同的API接口,例如,封装为不同的RestAPI接口。上述第一信息和第二信息可以理解为K8S集群中的能力资源。
在一种可选的实施方式中,在对第二信息进行封装时,管理节点对第二信息中涉及应用程序隐私内容(例如秘钥)的信息不进行封装,以提高数据安全性。
S202、向插件开放API接口,以使插件调用第一信息和第二信息。
管理节点封装得到不同的API接口后,可以向插件开放这些API接口,插件便能通过这些接口与管理节点对接,从而调用第一信息和第二信息。
通过实施本申请实施例,能够为插件开放能力资源的接口,从而使插件通过接口调用第一信息和第二信息以实现相应拓展功能。
在一种可选的实施方式中,如图3所示,本申请实施例的基于容器集群的任务处理方法还可以包括:
S301、获取插件的镜像文件和第三信息;
S302、将插件的镜像文件存储至K8S集群的节点中;
S303、展示第三信息。
步骤S301可以位于步骤S101之前。本申请实施例中,管理节点可以获取与插件相关的信息,即第三信息。开发人员在开发插件时,除了按照规范将插件与管理节点对接外,还可以开发应用程序订阅信息的接口,用于在操作者为应用程序订阅插件时同步相关配置信息。插件完成开发后,开发人员可以向管理节点上传插件的镜像文件,待完成插件上架流程后,管理节点可以将插件的镜像文件存储至K8S集群的节点中,从而部署插件至K8S集群。管理节点还可以向操作者展示不同插件的第三信息,例如,在显示界面中展示各个插件的第三信息,以供操作者直观地了解不同插件能够实现的功能,从而便捷地为应用程序订阅相关插件。
通过实施本申请实施例,能够使插件部署于K8S集群中,并通过向操作者展示不同插件的第三信息,能够使操作者基于可视化操作,便捷地为应用程序订阅相关插件。
在一种可选的实施方式中,本申请实施例的基于容器集群的任务处理方法还可以包括:
建立应用程序与插件之间的对应关系。
该步骤可以位于步骤S101之前。本申请实施例可以建立应用程序与插件之间的对应关系。示例性地,展示界面中展示有插件a、插件b和插件c,以及与它们相关的第三信息。展示界面中还可以展示这些插件能够实现的功能,例如,展示插件a用于处理任务i,以实现第一功能;展示插件b用于处理任务ii,以实现第二功能;展示插件c用于处理任务iii,以实现第三功能。假设操作者希望为当前应用程序扩展第一功能和第二功能,则在他从展示界面中看到上述信息时,便可以为应用程序订阅插件a和插件b,从而建立应用程序与插件之间的对应关系。
本申请实施例通过建立应用程序与插件之间的对应关系,从而能够便捷地为应用程序拓展和/或增强多个不同的功能。
在一种可选的实施方式中,第三信息包括插件的配置模板,如图4所示,本申请实施例的建立应用程序与插件之间的对应关系的过程具体包括:
S401、接收针对当前应用程序的插件配置命令;
S402、向当前应用程序发送针对当前插件的权限需求请求;
在获取针对权限需求请求的授权回复以及针对配置模板的配置信息后,S403、建立当前应用程序与当前插件之间的对应关系。
本申请实施例中,管理节点可以从KubernetesAPI获取集群内运行的应用程序数据并向操作者展示,操作者可以为这些应用程序配置已上架的插件。操作者可以向管理节点发送针对当前应用程序的插件配置命令,该插件配置命令用于为当前应用程序配置至少一个插件。配置时,管理节点可以根据插件上架时提供的权限需求向应用程序请求授权,操作者按照插件的第三信息中所包括的配置模板填写配置信息。管理节点获取针对权限需求请求的授权回复以及针对配置模板的配置信息后,便可以建立当前应用程序与当前插件之间的对应关系,便完成了插件的配置过程,操作者便为当前应用程序订阅了当前插件。
本申请实施例通过建立应用程序与插件之间的对应关系,能够使操作者方便地为应用程序配置插件,从而为应用程序拓展和/或增强多个不同的功能,提高了用户体验。
在一种可选的实施方式中,在步骤S403之后,本申请实施例的基于容器集群的任务处理方法还可以包括:
步骤A、生成第四信息;
步骤B、将第四信息和配置信息同步至当前插件。
本申请实施例的第四信息包含当前应用程序与当前插件之间对应关系,例如,插件配置信息。管理节点可以将第四信息通过接口同步给插件,并开放相应的接口调用权限,为应用程序拓展和/或增强多个不同的功能。
在一种可选的实施方式中,K8S集群中存储有与应用程序操作相关的最小资源单元,针对需要调用最小资源单元的第一插件,本申请实施例的基于容器集群的任务处理方法还可以包括:
在第一插件获取应用程序的完全操作权限的情况下,向第一插件开放最小资源单元。
本申请实施例中,管理节点可以根据已获取的与应用程序相关的Pod、Service、Image、ConfigMap等配置和数据,将其封装为应用程序启停、修改实例数量、更换镜像等最小资源单元(又称原子能力),通过RestAPI的方式开放给插件使用。由于这些资源对于运行中的应用程序会产生较大的影响,因此在为应用程序配置插件时,应用程序需授予插件完全操作权限,管理节点才允许开放此资源供该插件调用,以提高应用程序运行过程中的稳定性。
在一种可选的实施方式中,K8S集群中存储有与应用程序相关的文件,针对需要读取文件的第二插件,本申请实施例的基于容器集群的任务处理方法还可以包括:
在第二插件关联有文件的存储路径的情况下,向第二插件开放存储路径下文件的读取功能。
本申请实施例中,可以在为应用程序配置插件时,为该插件关联相应文件的存储路径。这样,插件在实现相应功能过程中,便可以读取应用程序的相关文件。示例性地,管理节点可以创建volume资源并挂载到指定路径,以RestAPI方式向插件开放挂载目录下的文件读取功能。如此,管理节点通过对插件的权限进行管理,提高了应用程序运行过程中的稳定性。
应该理解的是,虽然上述各流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述各流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
基于前述的实施例,本申请实施例提供一种基于容器集群的任务处理装置,该装置包括所包括的各模块、以及各模块所包括的各单元,可以通过处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等。
图5为本申请实施例提供的基于容器集群的任务处理装置的结构示意图,如图5所示,所述装置500包括请求接收模块501和任务转发模块502,其中:
请求接收模块501,用于接收任务处理请求,任务处理请求是针对目标应用程序而发送的,至少一个应用程序包括目标应用程序;
任务转发模块502,用于基于预先建立的应用程序与插件之间的对应关系,将任务处理请求转发至与目标应用程序的插件对应的目标节点,以使目标节点运行插件以处理任务处理请求,目标节点为其它节点中的至少一个节点。
在一些实施方式中,不同的插件用于处理不同的任务,任务转发模块具体用于:
基于预先建立的应用程序与不同插件之间的对应关系,将当前任务处理请求转发至与目标应用程序的目标插件对应的目标节点,以使目标节点中的目标插件处理当前任务。
在一些实施方式中,本申请实施例的基于容器集群的任务处理装置还包括:
节点及应用信息获取模块,用于获取第一信息和第二信息,并基于第一信息和第二信息封装不同的API接口,其中,第一信息为与节点相关的信息,第二信息为与容器组中运行的应用程序相关的信息;
接口开放模块,用于向插件开放API接口,以使插件调用第一信息和第二信息。
在一些实施方式中,本申请实施例的基于容器集群的任务处理装置还包括:
插件信息获取模块,用于获取插件的镜像文件和第三信息,第三信息为与插件相关的信息;
存储模块,用于将插件的镜像文件存储至K8S集群的节点中;
展示模块,用于展示第三信息。
在一些实施方式中,本申请实施例的基于容器集群的任务处理装置还包括:
对应关系建立模块,用于建立应用程序与插件之间的对应关系。
在一些实施方式中,对应关系建立模块具体用于:
接收针对当前应用程序的插件配置命令,插件配置命令用于为当前应用程序配置至少一个插件;
向当前应用程序发送针对当前插件的权限需求请求;
在获取针对权限需求请求的授权回复以及针对配置模板的配置信息后,建立当前应用程序与当前插件之间的对应关系。
在一些实施方式中,本申请实施例的基于容器集群的任务处理装置还包括:
信息生成模块,用于生成第四信息,第四信息包含当前应用程序与当前插件之间对应关系;
信息同步模块,用于将第四信息和配置信息同步至当前插件。
在一些实施方式中,K8S集群中存储有与应用程序操作相关的最小资源单元,针对需要调用最小资源单元的第一插件,本申请实施例的基于容器集群的任务处理装置还包括:
资源开放模块,用于在第一插件获取应用程序的完全操作权限的情况下,向第一插件开放最小资源单元。
在一些实施方式中,K8S集群中存储有与应用程序相关的文件,针对需要读取文件的第二插件,本申请实施例的基于容器集群的任务处理装置还包括:
功能开放模块,用于在第二插件关联有文件的存储路径的情况下,向第二插件开放存储路径下文件的读取功能。
实施本申请实施例提供的基于容器集群的任务处理装置,请求接收模块在接收针对容器组中的目标应用程序而发送的任务处理请求后,任务转发模块能够基于预先建立的目标应用程序与插件之间的对应关系,将该任务处理请求转发至存储有插件的节点,从而使该节点中的插件处理该任务处理请求,因而能够在不对应用程序进行修改的情况下,也能够通过插件处理相应的任务。这样,实现了在不对原应用程序改动的情况下拓展和/或增强应用程序的功能。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,本申请实施例中图5所示的基于容器集群的任务处理装置对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。也可以采用软件和硬件结合的形式实现。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得电子设备执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
本申请实施例提供一种K8S集群,如图6所示,K8S集群600包括通信连接的管理节点601和其它节点602,其它节点602上部署有容器组并在容器组中运行至少一个应用程序的插件,其中:
管理节点用于接收任务处理请求,任务处理请求是针对目标应用程序而发送的,至少一个应用程序包括目标应用程序,基于预先建立的应用程序与插件之间的对应关系,将任务处理请求转发至与目标应用程序的插件对应的目标节点,目标节点为其它节点中的至少一个节点;
其它节点中的目标节点用于接收任务处理请求,通过在目标容器组中运行与目标应用程序对应的插件以处理任务处理请求。
在一些实施方式中,目标容器组还用于运行目标应用程序,也即,目标容器组既可以运行插件,也可以运行目标应用程序。
在一些实施方式中,目标节点还部署有其它容器组,其它容器组用于运行目标应用程序,也即,目标容器组可以用以运行插件,其它容器组用以运行目标应用程序。
基于K8S的特性,本申请实施例将插件部署到K8S集群内,无需关心插件具体部署的位置,可以由K8S根据集群内节点的资源使用情况自动管理,从而实现更加灵活、更加智能的插件管理模式。
本申请实施例提供一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现上述方法。
本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中提供的方法中的步骤。
本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法实施例提供的方法中的步骤。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的基于容器集群的任务处理装置可以实现为一种计算机程序的形式,计算机程序可在如图7所示的计算机设备上运行。计算机设备的存储器中可存储组成上述装置的各个程序模块。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的方法中的步骤。
这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质、存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”或“一些实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”或“在一些实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如对象A和/或对象B,可以表示:单独存在对象A,同时存在对象A和对象B,单独存在对象B这三种情况。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者设备中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个模块或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的模块可以是、或也可以不是物理上分开的,作为模块显示的部件可以是、或也可以不是物理模块;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部模块来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能模块可以全部集成在一个处理单元中,也可以是各模块分别单独作为一个单元,也可以两个或两个以上模块集成在一个单元中;上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得电子设备执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (14)
1.一种基于容器集群的任务处理方法,其特征在于,应用于K8S集群中的管理节点,所述管理节点与所述K8S集群中的其它节点通信连接,所述其它节点上部署有容器组并在所述容器组中运行至少一个应用程序的插件,所述方法包括:
接收任务处理请求,所述任务处理请求是针对目标应用程序而发送的,所述至少一个应用程序包括所述目标应用程序;
基于预先建立的应用程序与插件之间的对应关系,将所述任务处理请求转发至与所述目标应用程序的插件对应的目标节点,以使所述目标节点运行所述插件以处理所述任务处理请求,所述目标节点为所述其它节点中的至少一个节点。
2.根据权利要求1所述的方法,其特征在于,不同的插件用于处理不同的任务,所述基于预先建立的应用程序与插件之间的对应关系,将所述任务处理请求转发至与所述目标应用程序的插件对应的目标节点,包括:
基于预先建立的所述应用程序与不同插件之间的对应关系,将当前任务处理请求转发至与所述目标应用程序的目标插件对应的目标节点,以使所述目标节点中的目标插件处理所述当前任务。
3.根据权利要求1所述的方法,其特征在于,所述接收任务处理请求之前,所述方法还包括:
获取第一信息和第二信息,并基于所述第一信息和所述第二信息封装不同的API接口,其中,所述第一信息为与节点相关的信息,所述第二信息为与容器组中运行的应用程序相关的信息;
向所述插件开放所述API接口,以使所述插件调用所述第一信息和所述第二信息。
4.根据权利要求1所述的方法,其特征在于,所述接收任务处理请求之前,所述方法还包括:
获取所述插件的镜像文件和第三信息,所述第三信息为与所述插件相关的信息;
将所述插件的镜像文件存储至所述K8S集群的节点中;
展示所述第三信息。
5.根据权利要求4所述的方法,其特征在于,所述接收任务处理请求之前,所述方法还包括:
建立所述应用程序与所述插件之间的对应关系。
6.根据权利要求5所述的方法,其特征在于,所述第三信息包括所述插件的配置模板,所述建立所述应用程序与所述插件之间的对应关系,包括:
接收针对当前应用程序的插件配置命令,所述插件配置命令用于为所述当前应用程序配置至少一个插件;
向所述当前应用程序发送针对当前插件的权限需求请求;
在获取针对所述权限需求请求的授权回复以及针对所述配置模板的配置信息后,建立所述当前应用程序与所述当前插件之间的对应关系。
7.根据权利要求6所述的方法,其特征在于,所述建立所述当前应用程序与所述当前插件之间的对应关系之后,所述方法还包括:
生成第四信息,所述第四信息包含所述当前应用程序与所述当前插件之间对应关系;
将所述第四信息和所述配置信息同步至所述当前插件。
8.根据权利要求1所述的方法,其特征在于,所述K8S集群中存储有与所述应用程序操作相关的最小资源单元,针对需要调用所述最小资源单元的第一插件,所述方法还包括:
在所述第一插件获取所述应用程序的完全操作权限的情况下,向所述第一插件开放所述最小资源单元。
9.根据权利要求1所述的方法,其特征在于,所述K8S集群中存储有与所述应用程序相关的文件,针对需要读取所述文件的第二插件,所述方法还包括:
在所述第二插件关联有所述文件的存储路径的情况下,向所述第二插件开放所述存储路径下所述文件的读取功能。
10.一种基于容器集群的任务处理装置,其特征在于,应用于K8S集群中的管理节点,所述管理节点与所述K8S集群中的其它节点通信连接,所述其它节点上部署容器组并在所述容器组中运行至少一个应用程序的插件,所述装置包括:
请求接收模块,用于接收任务处理请求,所述任务处理请求是针对目标应用程序而发送的,所述至少一个应用程序包括所述目标应用程序;
任务转发模块,用于基于预先建立的应用程序与插件之间的对应关系,将所述任务处理请求转发至与所述目标应用程序的插件对应的目标节点,以使所述目标节点运行所述插件以处理所述任务处理请求,所述目标节点为所述其它节点中的至少一个节点。
11.一种K8S集群,其特征在于,所述集群包括通信连接的管理节点和其它节点,所述其它节点上部署有容器组并在所述容器组中运行至少一个应用程序的插件,其中:
所述管理节点用于接收任务处理请求,所述任务处理请求是针对目标应用程序而发送的,所述至少一个应用程序包括所述目标应用程序,基于预先建立的应用程序与插件之间的对应关系,将所述任务处理请求转发至与所述目标应用程序的插件对应的目标节点,所述目标节点为所述其它节点中的至少一个节点;
所述其它节点中的目标节点用于接收所述任务处理请求,通过在目标容器组中运行与所述目标应用程序对应的插件以处理所述任务处理请求。
12.根据权利要求11所述的K8S集群,其特征在于,所述目标容器组还用于运行所述目标应用程序。
13.根据权利要求11所述的K8S集群,其特征在于,所述目标节点还部署有其它容器组,所述其它容器组用于运行所述目标应用程序。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311241381.8A CN117193884A (zh) | 2023-09-25 | 2023-09-25 | 基于容器集群的任务处理方法及装置、k8s集群、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311241381.8A CN117193884A (zh) | 2023-09-25 | 2023-09-25 | 基于容器集群的任务处理方法及装置、k8s集群、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117193884A true CN117193884A (zh) | 2023-12-08 |
Family
ID=89005135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311241381.8A Pending CN117193884A (zh) | 2023-09-25 | 2023-09-25 | 基于容器集群的任务处理方法及装置、k8s集群、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117193884A (zh) |
-
2023
- 2023-09-25 CN CN202311241381.8A patent/CN117193884A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108809722B (zh) | 一种部署Kubernetes集群的方法、装置和存储介质 | |
CN109194502B (zh) | 多租户容器云计算系统的管理方法 | |
US10462000B2 (en) | Micro-services for configuring switches | |
US10462018B2 (en) | Managing a number of secondary clouds by a master cloud service manager | |
CN111736955B (zh) | 一种数据存储方法、装置、设备及可读存储介质 | |
KR101481900B1 (ko) | 다운로드가능한 플러그가능 서비스 | |
CN110572484B (zh) | 一种基于容器的生产环境仿真方法 | |
CN112925647A (zh) | 云边协同系统、集群资源的控制方法及装置 | |
US20190166196A1 (en) | Data replication for a virtual networking system | |
CN109120444B (zh) | 云资源管理方法、处理器以及存储介质 | |
CN111049876A (zh) | 一种轻量电信云边缘计算系统架构 | |
CN112187958A (zh) | 微服务注册、发现转发的方法及装置 | |
US11627169B2 (en) | Network-based Media Processing (NBMP) workflow management through 5G Framework for Live Uplink Streaming (FLUS) control | |
US20220209991A1 (en) | Systems and methods for automated network configurations with a network as a service (naas) system | |
CN112099913A (zh) | 一种基于OpenStack实现虚拟机安全隔离的方法 | |
JP2022550402A (ja) | ネットワークリソース管理方法、システム、ネットワーク機器と可読記憶媒体 | |
US11689636B2 (en) | Delegating network data exchange | |
KR20230069088A (ko) | 컨테이너 클러스터 관리 방법 및 그 시스템 | |
CN104598525B (zh) | 一种应用复制方法、设备及系统 | |
CN113923023A (zh) | 权限配置和数据处理的方法、装置、电子设备及介质 | |
CN113079207A (zh) | 一种实现端口或网络高可用的方法、系统、终端及介质 | |
CN117251177A (zh) | 基于容器化技术的微服务部署方法、装置、电子设备 | |
CN117193884A (zh) | 基于容器集群的任务处理方法及装置、k8s集群、存储介质 | |
CN111736807B (zh) | 租户功能定制方法、装置及基于租户的办公系统 | |
CN104980329B (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 |