System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及kubernetes容器编排及网关代理,具体而言,涉及一种k8s网关服务watch资源优化方法及系统。
技术介绍
1、在大规模kubernetes(k8s)集群建设的过程中,kubegateway网关服务的定位是为其代理的海量集群提供稳定的流量治理服务。
2、目前在实际生产实践中,kubegateway网关服务在代理请求选择后端实例时,采用基于服务发现的方式,将请求以轮询的方式选择后端kube-apiserver实例,并将请求代理到选择的kube-apiserver实例上,参见图1所示。
3、然而,由于多个kube-apiserver副本的本地缓存中维护的资源版本(即resourceversion)不一致,各kube-apiserver中缓存的最小资源版本是不同的,因此导致客户端在发起watch请求时,如果请求被代理到不匹配的实例上,就会触发too old版本号错误。比如被网关服务代理到缓存中已经不存在该资源版本的实例上,就会频繁出现tooold版本错误。
技术实现思路
1、鉴于此,本专利技术的目的在于设计一种服务器固件套餐化管理方法,网关服务在选择rs时以多个实例缓存的最小资源版本为依据,从而避免出现版本错误,同时缓解kube-apiserver实例对重试请求的压力,进一步提升apiserver性能。
2、本专利技术提供一种k8s网关服务watch资源优化方法,包括以下步骤:
3、s1、初始化kubernetes集群,
4、k8s(kubernetes,容器编排平台):kubernetes是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。
5、kube-apiserver(kubernetes api服务):暴露kubernetes各类资源的api接口,负责用户、控制器等的api请求响应。
6、s2、根据所述kube-apiserver实例的缓存资源的最小资源版本号,由网关服务组件kubegateway选择后端apiserver实例。
7、kubegateway(kubernetes网关服务):kubegateway是一个专为kube-apiserver的http2流量设计定制的七层负载均衡代理,用于海量集群代理和流量治理服务。
8、进一步地,所述s1步骤的初始化kubernetes集群,上报kube-apiserver实例的缓存资源的最小资源版本号的方法包括以下步骤:
9、s11、配置kubernetes代理,由kube-apiserver组件向网关服务组件kubegateway发起注册请求;
10、s12、由所述网关服务组件kubegateway纳管kubernetes集群的多个kube-apiserver实例;
11、s13、由kube-apiserver组件向网关服务组件kubegateway周期性地上报kube-apiserver实例的缓存资源的最小资源版本号;
12、s14、由网关服务组件kubegateway将该kube-apiserver实例的实例名及其上报的最小资源版本号作为二元组,实现本地缓存。
13、进一步地,所述s2步骤的由网关服务组件kubegateway选择后端apiserver实例的方法包括以下步骤:
14、s21、由客户端或kubelet组件向网关服务组件kubegateway发起watch监听请求;
15、watch(kubernetes中提供资源实时性的一种接口):kubernetes client-go客户端工具中的一种接口实现,主要用于集群中各种控制器(包括自定义控制器)缓存资源的目的,通常与list(全量拉取接口)同时使用,提供各种资源的准确性,实时性。
16、s22、由网关服务组件kubegatewa找出小于当前所述watch监听请求中的资源版本号的kube-apiserver实例;
17、s23、由网关服务组件kubegateway将所述watch监听请求代理转发到后端apiserver实例中;
18、s24、由所述后端apiserver实例响应所述watch监听请求。
19、进一步地,所述s22步骤的由网关服务组件kubegatewa找出小于当前所述watch监听请求中的资源版本号的kube-apiserver实例的方法为:
20、网关服务组件kubegatewa遍历所述本地缓存,找到小于当前所述watch监听请求中的资源版本号的kube-apiserver实例。
21、本专利技术还提供k8s网关服务watch资源系统,执行如上述所述的k8s网关服务watch资源优化方法,包括:
22、系统初始化模块:用于初始化kubernetes集群,上报kube-apiserver实例的缓存资源的最小资源版本号;
23、选择后端实例模块:用于根据所述kube-apiserver实例的缓存资源的最小资源版本号,由网关服务组件kubegateway选择后端apiserver实例。
24、进一步地,所述系统初始化模块包括:
25、发起注册请求单元:用于配置kubernetes代理,由kube-apiserver组件向网关服务组件kubegateway发起注册请求;
26、网关服务纳管实例单元:用于通过所述网关服务组件kubegateway纳管kubernetes集群的多个kube-apiserver实例;
27、上报版本号单元:用于通过kube-apiserver组件向网关服务组件kubegateway周期性地上报kube-apiserver实例的缓存资源的最小资源版本号;
28、本地缓存单元:用于通过网关服务组件kubegateway将该kube-apiserver实例的实例名及其上报的最小资源版本号作为二元组,实现本地缓存。
29、进一步地,所述选择后端实例模块包括:
30、发起watch监听请求单元:用于通过客户端或kubelet组件向网关服务组件kubegateway发起watch监听请求;
31、搜索资源版本号单元:用于通过网关服务组件kubegateway遍历所述本地缓存,找到小于当前所述watch监听请求中的资源版本号的kube-apiserver实例;
32、转发watch监听请求单元:用于通过网关服务组件kubegateway将所述watch监听请求代理转发到后端apiserver实例中;
33、后端实例响应watch监听请求单元:用于通过所述后端apiserver实例响应所述watch监听请求。
34、本专利技术还提供一种k8s网关服务watch资源本文档来自技高网...
【技术保护点】
1.一种K8s网关服务Watch资源优化方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的K8s网关服务Watch资源优化方法,其特征在于,所述S1步骤的初始化Kubernetes集群,上报Kube-Apiserver实例的缓存资源的最小资源版本号的方法包括以下步骤:
3.根据权利要求2所述的K8s网关服务Watch资源优化方法,其特征在于,所述S2步骤的由网关服务组件KubeGateway选择后端Apiserver实例的方法包括以下步骤:
4.根据权利要求3所述的K8s网关服务Watch资源方法,其特征在于,所述S22步骤的由网关服务组件KubeGatewa找出小于当前所述Watch监听请求中的资源版本号的Kube-Apiserver实例的方法为:
5.K8s网关服务Watch资源系统,执行如权利要求1-4任一项所述的K8s网关服务Watch资源优化方法,其特征在于,包括:
6.根据权利要求5所述的K8s网关服务Watch资源优化系统,其特征在于,所述系统初始化模块包括:
7.根据权利要求5所述的K
8.一种K8s网关服务Watch资源优化装置,其特征在于,安装有如根据权利要求5-7任一项所述的K8s网关服务Watch资源优化系统。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1-4任一项所述的K8s网关服务Watch资源优化方法的步骤。
10.一种计算机设备,所述计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-4任一项所述的K8s网关服务Watch资源优化方法的步骤。
...【技术特征摘要】
1.一种k8s网关服务watch资源优化方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的k8s网关服务watch资源优化方法,其特征在于,所述s1步骤的初始化kubernetes集群,上报kube-apiserver实例的缓存资源的最小资源版本号的方法包括以下步骤:
3.根据权利要求2所述的k8s网关服务watch资源优化方法,其特征在于,所述s2步骤的由网关服务组件kubegateway选择后端apiserver实例的方法包括以下步骤:
4.根据权利要求3所述的k8s网关服务watch资源方法,其特征在于,所述s22步骤的由网关服务组件kubegatewa找出小于当前所述watch监听请求中的资源版本号的kube-apiserver实例的方法为:
5.k8s网关服务watch资源系统,执行如权利要求1-4任一项所述的k8s网关服务watc...
【专利技术属性】
技术研发人员:李志武,徐兴文,李召,徐赛,毛燕茹,
申请(专利权)人:天翼云科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。