CN114938378A - 一种基于kubernetes的资源过滤方法、系统、设备及存储介质 - Google Patents
一种基于kubernetes的资源过滤方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN114938378A CN114938378A CN202210449483.8A CN202210449483A CN114938378A CN 114938378 A CN114938378 A CN 114938378A CN 202210449483 A CN202210449483 A CN 202210449483A CN 114938378 A CN114938378 A CN 114938378A
- Authority
- CN
- China
- Prior art keywords
- resource
- kubernets
- request
- filter
- agent
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种基于kubernetes的资源过滤方法、系统、设备及存储介质,涉及kubernetes技术领域,基于kubernetes的资源过滤方法包括以下步骤:通过负载均衡器接收扩展插件的代理请求,通过请求头的user‑agent、请求体的resource字段和请求体的verb字段匹配对应的过滤器,接收kube‑apiserver组件传输的kubernetes资源,过滤器基于预设的过滤匹配规则对kubernetes资源进行过滤。有益效果在于在kubernetes环境下通过不同的过滤器实现自定义的不同kubernetes资源的过滤,保证扩展插件基于代理请求获得的kubernetes资源,是过滤后最优的kubernetes资源。可以实现多种kubernetes资源的过滤,并且不依赖于kubernetes的版本。
Description
技术领域
本申请属于kubernetes技术领域,更具体地说,本申请涉及一种基于kubernetes的资源过滤方法、系统、设备及存储介质。
背景技术
随着容器技术的快速发展,kubernetes的使用越来越普及,现有的技术方案通过endpointSlice实现kubernetes资源的过滤,但技术方案存在以下缺陷:
第一,endpointSlice对于kubernetes的要求比较高,只能在1.18版本以上的kubernetes开启endpointSlice切片功能才能实现kubernetes资源的过滤。第二,endpointSlice只能解决endpoint资源的过滤,无法针对自定义的需求进行其他kubernetes资源的过滤。
发明内容
本申请的目的在于提供一种基于kubernetes的资源过滤方法、系统、设备及存储介质,以解决上述现有技术中存在的无法针对自定义的需求进行其他kubernetes资源过滤的技术问题。
为实现上述技术目的,本申请采用的技术方案如下:
一种基于kubernetes的资源过滤方法,包括以下步骤:
通过负载均衡器接收扩展插件的代理请求,获取并解析所述代理请求的请求头和请求体,以解析得到所述请求头的user-agent、所述请求体的resource字段和所述请求体的verb字段;
通过所述请求头的user-agent、所述请求体的resource字段和所述请求体的verb字段匹配对应的过滤器;
接收kube-apiserver组件传输的kubernetes资源,所述过滤器基于预设的过滤匹配规则对所述kubernetes资源进行过滤,通过所述负载均衡器将过滤后的kubernetes资源传输至对应的所述扩展插件。
优选地,接收kube-apiserver组件传输的kubernetes资源,具体包括以下步骤:
基于所述代理请求判断本地是否有对应的kubernetes资源;
若本地不存在对应的kubernetes资源,通过所述负载均衡器向kube-apiserver组件请求获取所述kubernetes资源;
接收所述kube-apiserver组件传输的所述kubernetes资源。
优选地,还包括步骤:
通过第一监听接口监听kube-apiserver组件的kubernetes资源是否是最新的kubernetes资源;
若所述第一监听接口监听到所述kube-apiserver组件的kubernetes资源发生变更,对比本地cache包的resourceversion版本和变更的kubernetes资源的resourceversion版本是否一致;
若resourceversion版本不一致,则更新本地的kubernetes资源。
优选地,还包括步骤:
所述第一监听接口监听到所述kube-apiserver组件的kubernetes资源发生变更,判断变更的所述kubernetes资源是否是configmap配置;
若变更的所述kubernetes资源是configmap配置,则进一步判断是否是有关所述过滤器的configmap配置进行变更;
若是有关所述过滤器的configmap配置进行变更,则实时更新本地的所述过滤器的配置信息。
优选地,还包括步骤:
所述扩展插件设置有第二监听接口,所述扩展插件通过所述第二监听接口监听所述过滤器的configmap配置是否是最新的configmap配置;
若所述第二监听接口监听到所述过滤器的configmap配置发生变更,对比所述扩展插件里的configmap配置的resourceversion版本和变更的所述过滤器的configmap配置的resourceversion版本是否一致;
若resourceversion版本不一致,则所述代理插件重新发送代理请求。
优选地,所述过滤器至少包括serviceTopologyFilter过滤器、endpointsFilter过滤器、masterServiceFilter过滤器和discardCloudService过滤器中的一种或几种。
优选地,所述过滤器基于预设的过滤匹配规则对所述kubernetes资源进行过滤,具体包括以下步骤:
每一所述过滤器设置有不同的预设的过滤匹配规则,预设的过滤匹配规则通过kubernets configmap进行配置;
基于不同的预设的过滤匹配规则所述kubernetes资源经过对应的数据过滤链路,以计算得到过滤后的kubernetes资源。
一种基于kubernetes的资源过滤系统,包括:
扩展插件,所述扩展插件用于发送代理请求;
代理组件,所述代理组件包括获取解析模块、匹配模块、过滤模块和通讯模块;
所述获取解析模块用于通过负载均衡器接收扩展插件的代理请求,获取并解析所述代理请求的请求头和请求体,以解析得到所述请求头的user-agent、所述请求体的resource字段和所述请求体的verb字段;
所述匹配模块用于通过所述请求头的user-agent、所述请求体的resource字段和所述请求体的verb字段匹配对应的过滤器;
所述过滤模块用于接收kube-apiserver组件传输的kubernetes资源,所述过滤器基于预设的过滤匹配规则对所述kubernetes资源进行过滤;
所述通讯模块用于通过所述负载均衡器将过滤后的kubernetes资源传输至对应的所述扩展插件;
kube-apiserver组件,所述kube-apiserver组件用于提供kubernetes资源。
一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行:
通过负载均衡器接收扩展插件的代理请求,获取并解析所述代理请求的请求头和请求体,以解析得到所述请求头的user-agent、所述请求体的resource字段和所述请求体的verb字段;
通过所述请求头的user-agent、所述请求体的resource字段和所述请求体的verb字段匹配对应的过滤器;
接收kube-apiserver组件传输的kubernetes资源,所述过滤器基于预设的过滤匹配规则对所述kubernetes资源进行过滤,通过所述负载均衡器将过滤后的kubernetes资源传输至对应的所述扩展插件。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:
通过负载均衡器接收扩展插件的代理请求,获取并解析所述代理请求的请求头和请求体,以解析得到所述请求头的user-agent、所述请求体的resource字段和所述请求体的verb字段;
通过所述请求头的user-agent、所述请求体的resource字段和所述请求体的verb字段匹配对应的过滤器;
接收kube-apiserver组件传输的kubernetes资源,所述过滤器基于预设的过滤匹配规则对所述kubernetes资源进行过滤,通过所述负载均衡器将过滤后的kubernetes资源传输至对应的所述扩展插件。
本申请提供的有益效果在于:
本申请通过负载均衡器接收扩展插件的代理请求,通过请求头的user-agent、请求体的resource字段和请求体的verb字段匹配对应的过滤器,过滤器基于预设的过滤匹配规则对kubernetes资源进行过滤。在kubernetes环境下通过不同的过滤器实现自定义的不同kubernetes资源的过滤,保证扩展插件基于代理请求获得的kubernetes资源,是过滤后最优的kubernetes资源。可以实现多种kubernetes资源的过滤,并且不依赖于kubernetes的版本。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是基于kubernetes的资源过滤方法的流程图;
图2是基于kubernetes的资源过滤系统的框架图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例1:
如图1所示,本实施例包括一种基于kubernetes的资源过滤方法,包括以下步骤:通过负载均衡器接收扩展插件的代理请求,获取并解析代理请求的请求头和请求体,以解析得到请求头的user-agent、请求体的resource字段和请求体的verb字段。
通过请求头的user-agent、请求体的resource字段和请求体的verb字段匹配对应的过滤器。接收kube-apiserver组件传输的kubernetes资源,过滤器基于预设的过滤匹配规则对kubernetes资源进行过滤,通过负载均衡器将过滤后的kubernetes资源传输至对应的扩展插件。
在本实施例中,扩展插件至少包括coredns扩展插件、kubelet扩展插件、kube-proxy扩展插件和custom-addons扩展插件中的一种或几种。扩展插件生成代理请求,基于代理请求获取services、endpoint等kubernetes资源。
接收kube-apiserver组件传输的kubernetes资源,具体包括以下步骤:基于代理请求判断本地是否有对应的kubernetes资源。若本地不存在对应的kubernetes资源,通过负载均衡器向kube-apiserver组件请求获取kubernetes资源。接收kube-apiserver组件传输的kubernetes资源。
在本实施例中,接收到扩展插件的代理请求后,判断本地是否缓存有代理请求对应的kubernetes资源,若本地缓存有代理请求对应的kubernetes资源,则相应的过滤器基于预设的过滤匹配规则直接根据本地缓存的kubernetes资源进行过滤。若本地缓存中没有代理请求对应的kubernetes资源,则通过负载均衡器向远端的kube-apiserver组件请求获取kubernetes资源,接收kube-apiserver组件传输的kubernetes资源。
还包括步骤:通过第一监听接口监听kube-apiserver组件的kubernetes资源是否是最新的kubernetes资源。若第一监听接口监听到kube-apiserver组件的kubernetes资源发生变更,对比本地cache包的resourceversion版本和变更的kubernetes资源的resourceversion版本是否一致。若resourceversion版本不一致,则更新本地的kubernetes资源。
在本实施例中,resourceVersion是kubernetes资源里的一个字段,用来判断版本是否一致。resourceVersion字段存储在kubernetes资源的cache包里。若第一监听接口监听到kube-apiserver组件的kubernetes资源发生变更,对比本地缓存的kubernetes资源中的cache包的resourceversion版本和变更的kubernetes资源中的cache包的resourceversion版本是否一致。若resourceversion版本不一致,则通过负载均衡器向kube-apiserver组件请求获取最新的kubernetes资源,从而更新本地的kubernetes资源。
还包括步骤:第一监听接口监听到kube-apiserver组件的kubernetes资源发生变更,判断变更的kubernetes资源是否是configmap配置。若变更的kubernetes资源是configmap配置,则进一步判断是否是有关过滤器的configmap配置进行变更。若是有关过滤器的configmap配置进行变更,则实时更新本地的过滤器的配置信息。
在本实施例中,configmap配置存储在kubernetes资源的cache包里,configmap配置存储有过滤器的配置信息,若监听到变更的kubernetes资源是configmap配置,则进一步判断是否是有关过滤器的configmap配置进行了变更。若是有关过滤器的configmap配置进行了变更,则实时更新本地的过滤器的配置信息。
过滤器至少包括serviceTopologyFilter过滤器、endpointsFilter过滤器、masterServiceFilter过滤器和discardCloudService过滤器中的一种或几种。
过滤器基于预设的过滤匹配规则对kubernetes资源进行过滤,具体包括以下步骤:每一过滤器设置有不同的预设的过滤匹配规则,预设的过滤匹配规则通过kubernetsconfigmap进行配置。基于不同的预设的过滤匹配规则kubernetes资源经过对应的数据过滤链路,以计算得到过滤后的kubernetes资源。
在本实施例中,预设的过滤匹配规则包括但不限于以下四种配置:
第一种配置为:filter_discardcloudservice:w4/services#list;watch。
其中,filter_discardcloudservice表示为discardCloudService过滤器,w4表示为请求头的user-agent,services表示为请求体的resource字段,list表示为请求体的verb字段,watch同样表示为请求体的verb字段。
其中,resource字段用于表示kubernetes资源的具体名称,verb字段用于表示代理请求的请求类型。
discardCloudService过滤器针对两种service,一种service类型是LoadBalancer,另一种是特定名称的service,可以理解为discardCloudService过滤器可以过滤指定类型的资源,也可以过滤明确名称的资源,因为边缘端无法访问,所以discardCloudService过滤器会将以上类型的资源直接过滤掉。
第二种配置为:filter_endpoints:coredns/endpoints#list;watch。
其中,filter_endpoints表示为endpointsFilter过滤器过滤器,coredns表示为请求头的user-agent,endpoints表示为请求体的resource字段,list表示为请求体的verb字段,watch同样表示为请求体的verb字段。
其中,resource字段用于表示kubernetes资源的具体名称,verb字段用于表示代理请求的请求类型。
endpointsFilter过滤器针对endpoints资源进行数据过滤,endpointsFilter过滤器首先判断endpoint端点是否存在对应的service,即node标签和endpoint标签是否匹配,若node标签和endpoint标签相匹配,再判断endpoint资源里的node节点名称是否对应,若ndpoint资源里的node节点名称相对应,则过滤后重组response data生成过滤后的endpoints资源并返回给扩展插件。
第三种配置为:filter_masterservice:w6/services#list,w5/services#list。
其中,filter_masterservice表示为masterServiceFilter过滤器,w6表示为请求头的user-agent,w5同样表示为请求头的user-agent,services表示为请求体的resource字段,list表示为请求体的verb字段。
其中,resource字段用于表示kubernetes资源的具体名称,verb字段用于表示代理请求的请求类型。
masterServiceFilter过滤器针对现有方案中边缘端的pod无法使用InClusterConfig访问kubernetes集群资源,InClusterConfig是一种配置,InClusterConfig配置用于访问kubernetes-api服务提供鉴权认证的功能,InClusterConfig配置是通过获取host port以及ca证书生成的。masterServiceFilter过滤器通过将host port的地址修改为代理组件的地址达到无缝访问。
第四种配置为:filter_servicetopology:coredns/endpointslices#list;watch。
其中,filter_servicetopology表示为serviceTopologyFilter过滤器,coredns表示为请求头的user-agent,endpointslices表示为请求体的resource字段,list表示为请求体的verb字段,watch同样表示为请求体的verb字段。
其中,resource字段用于表示kubernetes资源的具体名称,verb字段用于表示代理请求的请求类型。
serviceTopologyFilter过滤器针对EndpointSlice资源进行数据过滤,serviceTopologyFilter过滤器首先通过kubernetes.io/service-name找到endpointSlice资源所对应的services资源,之后判断servces资源是否存在相应的自定义Annotation配置项,如果存在相应的自定义Annotation配置项,通过Annotations配置项的value判断数据过滤规则,过滤后重组response data生成过滤后的EndpointSlice资源并返回给扩展插件。
实施例2:
与实施例1的不同之处在于,扩展插件设置有第二监听接口。
本实施例包括一种基于kubernetes的资源过滤方法,包括以下步骤:通过负载均衡器接收扩展插件的代理请求,获取并解析代理请求的请求头和请求体,以解析得到请求头的user-agent、请求体的resource字段和请求体的verb字段。
通过请求头的user-agent、请求体的resource字段和请求体的verb字段匹配对应的过滤器。接收kube-apiserver组件传输的kubernetes资源,过滤器基于预设的过滤匹配规则对kubernetes资源进行过滤,通过负载均衡器将过滤后的kubernetes资源传输至对应的扩展插件。
接收kube-apiserver组件传输的kubernetes资源,具体包括以下步骤:基于代理请求判断本地是否有对应的kubernetes资源。若本地不存在对应的kubernetes资源,通过负载均衡器向kube-apiserver组件请求获取kubernetes资源。接收kube-apiserver组件传输的kubernetes资源。
还包括步骤:通过第一监听接口监听kube-apiserver组件的kubernetes资源是否是最新的kubernetes资源。若第一监听接口监听到kube-apiserver组件的kubernetes资源发生变更,对比本地cache包的resourceversion版本和变更的kubernetes资源的resourceversion版本是否一致。若resourceversion版本不一致,则更新本地的kubernetes资源。
还包括步骤:第一监听接口监听到kube-apiserver组件的kubernetes资源发生变更,判断变更的kubernetes资源是否是configmap配置。若变更的kubernetes资源是configmap配置,则进一步判断是否是有关过滤器的configmap配置进行变更。若是有关过滤器的configmap配置进行变更,则实时更新本地的过滤器的配置信息。
过滤器至少包括serviceTopologyFilter过滤器、endpointsFilter过滤器、masterServiceFilter过滤器和discardCloudService过滤器中的一种或几种。
过滤器基于预设的过滤匹配规则对kubernetes资源进行过滤,具体包括以下步骤:每一过滤器设置有不同的预设的过滤匹配规则,预设的过滤匹配规则通过kubernetsconfigmap进行配置。基于不同的预设的过滤匹配规则kubernetes资源经过对应的数据过滤链路,以计算得到过滤后的kubernetes资源。
还包括步骤:扩展插件设置有第二监听接口,扩展插件通过第二监听接口监听过滤器的configmap配置是否是最新的configmap配置。若第二监听接口监听到过滤器的configmap配置发生变更,对比扩展插件里的configmap配置的resourceversion版本和变更的过滤器的configmap配置的resourceversion版本是否一致。若resourceversion版本不一致,则代理插件重新发送代理请求。
在本实施例中,configmap配置存储在kubernetes资源的cache包里,configmap配置存储有过滤器的配置信息,configmap配置包括resourceVersion,resourceVersion是kubernetes资源里的一个字段,用来判断版本是否一致。resourceVersion字段存储在kubernetes资源的cache包的configmap配置里。若第二监听接口监听到过滤器的configmap配置发生变更,对比扩展插件里的configmap配置的resourceversion版本和变更的过滤器的configmap配置的resourceversion版本是否一致。若resourceversion版本不一致,则代理插件重新发送代理请求,达到代理插件主动触发更新kubernetes资源代理请求的效果。
实施例3:
如图2所示,本实施例包括一种基于kubernetes的资源过滤系统,包括:扩展插件,扩展插件用于发送代理请求。kube-apiserver组件,kube-apiserver组件用于提供kubernetes资源。
代理组件,代理组件包括获取解析模块、匹配模块、过滤模块和通讯模块。
获取解析模块用于通过负载均衡器接收扩展插件的代理请求,获取并解析代理请求的请求头和请求体,以解析得到请求头的user-agent、请求体的resource字段和请求体的verb字段。
匹配模块用于通过请求头的user-agent、请求体的resource字段和请求体的verb字段匹配对应的过滤器。
过滤模块用于接收kube-apiserver组件传输的kubernetes资源,过滤器基于预设的过滤匹配规则对kubernetes资源进行过滤。
通讯模块用于通过负载均衡器将过滤后的kubernetes资源传输至对应的扩展插件。
在本实施例中,扩展插件至少包括coredns扩展插件、kubelet扩展插件、kube-proxy扩展插件和custom-addons扩展插件中的一种或几种。代理组件采用proxy代理组件。过滤器至少包括serviceTopologyFilter过滤器、endpointsFilter过滤器、masterServiceFilter过滤器和discardCloudService过滤器中的一种或几种。
本申请的技术方案具有普遍的适用性,对kubernetes无侵入,只需要修改扩展插件,将扩展插件接入到代理组件即可,所有数据过滤以及数据缓存等操作都通过代理组件实现。
本说明书实施例3的基于kubernetes的资源过滤系统可以作为上述图1所示的基于kubernetes的资源过滤方法的执行主体,因此该基于kubernetes的资源过滤系统能够实现方法在图1所实现的功能。相关之处参见实施例1和实施例2的部分说明即可。
实施例4:
在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成基于kubernetes的资源过滤方法的装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
通过负载均衡器接收扩展插件的代理请求,获取并解析代理请求的请求头和请求体,以解析得到请求头的user-agent、请求体的resource字段和请求体的verb字段。
通过请求头的user-agent、请求体的resource字段和请求体的verb字段匹配对应的过滤器。
接收kube-apiserver组件传输的kubernetes资源,过滤器基于预设的过滤匹配规则对kubernetes资源进行过滤,通过负载均衡器将过滤后的kubernetes资源传输至对应的扩展插件。
上述如本说明书图1所示实施例揭示的基于kubernetes的资源过滤方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central ProcessingUnit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
应理解,本说明书实施例的电子设备可以实现上述装置在图1所示的实施例的功能,本文不再赘述。
当然,除了软件实现方式之外,本说明书的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
此外,本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1所示实施例的方法,并具体用于执行以下方法:
通过负载均衡器接收扩展插件的代理请求,获取并解析代理请求的请求头和请求体,以解析得到请求头的user-agent、请求体的resource字段和请求体的verb字段。
通过请求头的user-agent、请求体的resource字段和请求体的verb字段匹配对应的过滤器。
接收kube-apiserver组件传输的kubernetes资源,过滤器基于预设的过滤匹配规则对kubernetes资源进行过滤,通过负载均衡器将过滤后的kubernetes资源传输至对应的扩展插件。
应理解,上述指令当被包括多个应用程序的便携式电子设备执行时,能够使上文所述的基于kubernetes的资源过滤系统实现图1所示实施例的功能,本文不再赘述。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。此外,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。
需要说明的是:
说明书中提到的“一个实施例”或“实施例”意指结合实施例描述的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,说明书通篇各个地方出现的短语“一个实施例”或“实施例”并不一定均指同一个实施例。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
此外,需要说明的是,本说明书中所描述的具体实施例,其零、部件的形状、所取名称等可以不同。凡依本申请专利构思所述的构造、特征及原理所做的等效或简单变化,均包括于本申请专利的保护范围内。本申请所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,只要不偏离本申请的结构或者超越本权利要求书所定义的范围,均应属于本申请的保护范围。
Claims (10)
1.一种基于kubernetes的资源过滤方法,其特征在于,包括以下步骤:
通过负载均衡器接收扩展插件的代理请求,获取并解析所述代理请求的请求头和请求体,以解析得到所述请求头的user-agent、所述请求体的resource字段和所述请求体的verb字段;
通过所述请求头的user-agent、所述请求体的resource字段和所述请求体的verb字段匹配对应的过滤器;
接收kube-apiserver组件传输的kubernetes资源,所述过滤器基于预设的过滤匹配规则对所述kubernetes资源进行过滤,通过所述负载均衡器将过滤后的kubernetes资源传输至对应的所述扩展插件。
2.如权利要求1所述的一种基于kubernetes的资源过滤方法,其特征在于,接收kube-apiserver组件传输的kubernetes资源,具体包括以下步骤:
基于所述代理请求判断本地是否有对应的kubernetes资源;
若本地不存在对应的kubernetes资源,通过所述负载均衡器向kube-apiserver组件请求获取所述kubernetes资源;
接收所述kube-apiserver组件传输的所述kubernetes资源。
3.如权利要求1所述的一种基于kubernetes的资源过滤方法,其特征在于,还包括步骤:
通过第一监听接口监听kube-apiserver组件的kubernetes资源是否是最新的kubernetes资源;
若所述第一监听接口监听到所述kube-apiserver组件的kubernetes资源发生变更,对比本地cache包的resourceversion版本和变更的kubernetes资源的resourceversion版本是否一致;
若resourceversion版本不一致,则更新本地的kubernetes资源。
4.如权利要求3所述的一种基于kubernetes的资源过滤方法,其特征在于,还包括步骤:
所述第一监听接口监听到所述kube-apiserver组件的kubernetes资源发生变更,判断变更的所述kubernetes资源是否是configmap配置;
若变更的所述kubernetes资源是configmap配置,则进一步判断是否是有关所述过滤器的configmap配置进行变更;
若是有关所述过滤器的configmap配置进行变更,则实时更新本地的所述过滤器的配置信息。
5.如权利要求1所述的一种基于kubernetes的资源过滤方法,其特征在于,还包括步骤:
所述扩展插件设置有第二监听接口,所述扩展插件通过所述第二监听接口监听所述过滤器的configmap配置是否是最新的configmap配置;
若所述第二监听接口监听到所述过滤器的configmap配置发生变更,对比所述扩展插件里的configmap配置的resourceversion版本和变更的所述过滤器的configmap配置的resourceversion版本是否一致;
若resourceversion版本不一致,则所述代理插件重新发送代理请求。
6.如权利要求1所述的一种基于kubernetes的资源过滤方法,其特征在于,所述过滤器至少包括serviceTopologyFilter过滤器、endpointsFilter过滤器、masterServiceFilter过滤器和discardCloudService过滤器中的一种或几种。
7.如权利要求1所述的一种基于kubernetes的资源过滤方法,其特征在于,所述过滤器基于预设的过滤匹配规则对所述kubernetes资源进行过滤,具体包括以下步骤:
每一所述过滤器设置有不同的预设的过滤匹配规则,预设的过滤匹配规则通过kubernets configmap进行配置;
基于不同的预设的过滤匹配规则所述kubernetes资源经过对应的数据过滤链路,以计算得到过滤后的kubernetes资源。
8.一种基于kubernetes的资源过滤系统,其特征在于,包括:
扩展插件,所述扩展插件用于发送代理请求;
代理组件,所述代理组件包括获取解析模块、匹配模块、过滤模块和通讯模块;
所述获取解析模块用于通过负载均衡器接收扩展插件的代理请求,获取并解析所述代理请求的请求头和请求体,以解析得到所述请求头的user-agent、所述请求体的resource字段和所述请求体的verb字段;
所述匹配模块用于通过所述请求头的user-agent、所述请求体的resource字段和所述请求体的verb字段匹配对应的过滤器;
所述过滤模块用于接收kube-apiserver组件传输的kubernetes资源,所述过滤器基于预设的过滤匹配规则对所述kubernetes资源进行过滤;
所述通讯模块用于通过所述负载均衡器将过滤后的kubernetes资源传输至对应的所述扩展插件;
kube-apiserver组件,所述kube-apiserver组件用于提供kubernetes资源。
9.一种电子设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行:
通过负载均衡器接收扩展插件的代理请求,获取并解析所述代理请求的请求头和请求体,以解析得到所述请求头的user-agent、所述请求体的resource字段和所述请求体的verb字段;
通过所述请求头的user-agent、所述请求体的resource字段和所述请求体的verb字段匹配对应的过滤器;
接收kube-apiserver组件传输的kubernetes资源,所述过滤器基于预设的过滤匹配规则对所述kubernetes资源进行过滤,通过所述负载均衡器将过滤后的kubernetes资源传输至对应的所述扩展插件。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:
通过负载均衡器接收扩展插件的代理请求,获取并解析所述代理请求的请求头和请求体,以解析得到所述请求头的user-agent、所述请求体的resource字段和所述请求体的verb字段;
通过所述请求头的user-agent、所述请求体的resource字段和所述请求体的verb字段匹配对应的过滤器;
接收kube-apiserver组件传输的kubernetes资源,所述过滤器基于预设的过滤匹配规则对所述kubernetes资源进行过滤,通过所述负载均衡器将过滤后的kubernetes资源传输至对应的所述扩展插件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210449483.8A CN114938378B (zh) | 2022-04-22 | 2022-04-22 | 一种基于kubernetes的资源过滤方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210449483.8A CN114938378B (zh) | 2022-04-22 | 2022-04-22 | 一种基于kubernetes的资源过滤方法、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114938378A true CN114938378A (zh) | 2022-08-23 |
CN114938378B CN114938378B (zh) | 2023-06-27 |
Family
ID=82861967
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210449483.8A Active CN114938378B (zh) | 2022-04-22 | 2022-04-22 | 一种基于kubernetes的资源过滤方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114938378B (zh) |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6088805A (en) * | 1998-02-13 | 2000-07-11 | International Business Machines Corporation | Systems, methods and computer program products for authenticating client requests with client certificate information |
CN102474700A (zh) * | 2009-08-05 | 2012-05-23 | 弗里塞恩公司 | 用于过滤网络流量的方法和系统 |
CN110768833A (zh) * | 2019-10-25 | 2020-02-07 | 北京宝兰德软件股份有限公司 | 基于kubernetes的应用编排部署方法及装置 |
US20200186441A1 (en) * | 2018-12-11 | 2020-06-11 | Sap Se | Standardized format for containerized applications |
CN111339118A (zh) * | 2020-03-27 | 2020-06-26 | 中国建设银行股份有限公司 | 基于Kubernetes的资源变更历史记录方法及装置 |
US20200241864A1 (en) * | 2019-01-29 | 2020-07-30 | Salesforce.Com, Inc. | Cloud services release orchestration with a reusable deployment pipeline |
US20200296055A1 (en) * | 2019-03-15 | 2020-09-17 | Mojatatu Networks | System and method for scaling analytics collection |
WO2021017279A1 (zh) * | 2019-07-30 | 2021-02-04 | 平安科技(深圳)有限公司 | 基于Kubernetes和网络域的集群安全管理方法、装置及存储介质 |
US20210072966A1 (en) * | 2019-09-05 | 2021-03-11 | International Business Machines Corporation | Method and system for service rolling-updating in a container orchestrator system |
CN112506612A (zh) * | 2020-12-10 | 2021-03-16 | 北京浪潮数据技术有限公司 | 一种集群巡检方法、装置、设备及可读存储介质 |
CN112769938A (zh) * | 2021-01-12 | 2021-05-07 | 烽火通信科技股份有限公司 | 一种基于QUIC的Kubernetes云边通信系统与方法 |
CN112866333A (zh) * | 2020-12-28 | 2021-05-28 | 上海领健信息技术有限公司 | 基于云原生的微服务场景优化方法、系统、设备和介质 |
CN113037881A (zh) * | 2021-02-05 | 2021-06-25 | 中国—东盟信息港股份有限公司 | 一种基于Kubernetes的云原生服务不间断的IP替换方法 |
CN113242150A (zh) * | 2021-06-03 | 2021-08-10 | 上海天旦网络科技发展有限公司 | K8s中基于Calico网络插件的数据包抓取方法及系统 |
US20210409346A1 (en) * | 2020-06-26 | 2021-12-30 | Red Hat, Inc. | Metadata driven static determination of controller availability |
CN113949707A (zh) * | 2021-09-30 | 2022-01-18 | 上海浦东发展银行股份有限公司 | 基于OpenResty和K8S的容器云服务发现和负载均衡方法 |
WO2022062650A1 (zh) * | 2020-09-28 | 2022-03-31 | 苏州浪潮智能科技有限公司 | 基于kubernetes的计算设备共享方法、装置、设备及存储介质 |
WO2022068744A1 (zh) * | 2020-09-30 | 2022-04-07 | 华为技术有限公司 | 获取报文头信息、生成报文的方法、设备及存储介质 |
-
2022
- 2022-04-22 CN CN202210449483.8A patent/CN114938378B/zh active Active
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6088805A (en) * | 1998-02-13 | 2000-07-11 | International Business Machines Corporation | Systems, methods and computer program products for authenticating client requests with client certificate information |
CN102474700A (zh) * | 2009-08-05 | 2012-05-23 | 弗里塞恩公司 | 用于过滤网络流量的方法和系统 |
US20200186441A1 (en) * | 2018-12-11 | 2020-06-11 | Sap Se | Standardized format for containerized applications |
US20200241864A1 (en) * | 2019-01-29 | 2020-07-30 | Salesforce.Com, Inc. | Cloud services release orchestration with a reusable deployment pipeline |
US20200296055A1 (en) * | 2019-03-15 | 2020-09-17 | Mojatatu Networks | System and method for scaling analytics collection |
WO2021017279A1 (zh) * | 2019-07-30 | 2021-02-04 | 平安科技(深圳)有限公司 | 基于Kubernetes和网络域的集群安全管理方法、装置及存储介质 |
US20210072966A1 (en) * | 2019-09-05 | 2021-03-11 | International Business Machines Corporation | Method and system for service rolling-updating in a container orchestrator system |
CN110768833A (zh) * | 2019-10-25 | 2020-02-07 | 北京宝兰德软件股份有限公司 | 基于kubernetes的应用编排部署方法及装置 |
CN111339118A (zh) * | 2020-03-27 | 2020-06-26 | 中国建设银行股份有限公司 | 基于Kubernetes的资源变更历史记录方法及装置 |
US20210409346A1 (en) * | 2020-06-26 | 2021-12-30 | Red Hat, Inc. | Metadata driven static determination of controller availability |
WO2022062650A1 (zh) * | 2020-09-28 | 2022-03-31 | 苏州浪潮智能科技有限公司 | 基于kubernetes的计算设备共享方法、装置、设备及存储介质 |
WO2022068744A1 (zh) * | 2020-09-30 | 2022-04-07 | 华为技术有限公司 | 获取报文头信息、生成报文的方法、设备及存储介质 |
CN112506612A (zh) * | 2020-12-10 | 2021-03-16 | 北京浪潮数据技术有限公司 | 一种集群巡检方法、装置、设备及可读存储介质 |
CN112866333A (zh) * | 2020-12-28 | 2021-05-28 | 上海领健信息技术有限公司 | 基于云原生的微服务场景优化方法、系统、设备和介质 |
CN112769938A (zh) * | 2021-01-12 | 2021-05-07 | 烽火通信科技股份有限公司 | 一种基于QUIC的Kubernetes云边通信系统与方法 |
CN113037881A (zh) * | 2021-02-05 | 2021-06-25 | 中国—东盟信息港股份有限公司 | 一种基于Kubernetes的云原生服务不间断的IP替换方法 |
CN113242150A (zh) * | 2021-06-03 | 2021-08-10 | 上海天旦网络科技发展有限公司 | K8s中基于Calico网络插件的数据包抓取方法及系统 |
CN113949707A (zh) * | 2021-09-30 | 2022-01-18 | 上海浦东发展银行股份有限公司 | 基于OpenResty和K8S的容器云服务发现和负载均衡方法 |
Non-Patent Citations (1)
Title |
---|
左灿;刘晓洁;: "一种改进的Kubernetes动态资源调度方法", 数据通信, no. 02 * |
Also Published As
Publication number | Publication date |
---|---|
CN114938378B (zh) | 2023-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109315004B (zh) | Pdu类型的设置方法及相关实体 | |
CN107360261A (zh) | 一种http请求处理方法、装置及电子设备 | |
CN114124929B (zh) | 跨网络的数据处理方法和装置 | |
CN110769009B (zh) | 用户身份认证方法及系统 | |
WO2019075662A1 (zh) | 一种网关多连接的方法及装置 | |
CN113656194A (zh) | 对账结果数据的通知方法、装置、电子装置及存储介质 | |
CN114090623A (zh) | 一种缓存资源的创建方法、装置、电子设备及存储介质 | |
CN114598750B (zh) | 一种数据请求处理方法、装置及存储介质 | |
CN112511366A (zh) | 测试系统、方法、装置、设备及存储介质 | |
CN117579308A (zh) | 一种基于istio的鉴权方法及系统 | |
CN114938378A (zh) | 一种基于kubernetes的资源过滤方法、系统、设备及存储介质 | |
CN112202739A (zh) | 一种流量监控方法和装置 | |
CN113766186B (zh) | 网络摄像机配置界面的跳转方法、装置、系统和电子装置 | |
CN113746851B (zh) | 一种支持实时解析grpc请求的代理系统和方法 | |
CN113852509B (zh) | 一种设备接入方法、系统、介质及电子终端 | |
CN115914319A (zh) | 一种虚拟现实设备的远程管理方法和系统 | |
WO2021155529A1 (zh) | 资源删除方法、装置、设备及存储介质 | |
CN109547552B (zh) | Api请求处理方法、装置、存储介质及电子设备 | |
CN112367304B (zh) | 请求限制方法、装置、计算机设备和存储介质 | |
CN112055058A (zh) | 数据的存储方法、装置及计算机可读存储介质 | |
CN113132324B (zh) | 样本鉴定方法及系统 | |
CN113949738B (zh) | 一种广告推送方法、装置和计算机可读存储介质 | |
CN112165465B (zh) | 外发第三方平台的数据处理方法、装置和电子装置 | |
CN113271320B (zh) | 一种终端认证方法、装置、系统、介质及设备 | |
CN110708208B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |