System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种超大规模Kubernetes集群下网关服务List资源优化的方法技术_技高网

一种超大规模Kubernetes集群下网关服务List资源优化的方法技术

技术编号:40954560 阅读:2 留言:0更新日期:2024-04-18 20:30
本发明专利技术公开了一种超大规模Kubernetes集群下网关服务List资源优化的方法,所述优化方法包括以下几个步骤:第一步,系统初始化,第二步,创建ClusterPolicy对象,第三步,创建Policy对象,第四步,代理客户端请求,第五步,开启apiserver过载保护,第六步,移除客户端代理规则;本发明专利技术通过gateway和ResourceVersion的设计,通过扩展负载均衡策略实现动态代理请求,并匹配ResourceVersion规则实现gateway精准代理apiserver,避免出现大量穿透底层的List请求,负载均衡插件可动态缓存每个集群资源对象的ResourceVersion,在客户端发起List请求时提前匹配ResourceVersion规则,通过匹配算法定位合适的apiserver进行转发,避免Too Large Resource Version触发的全量数据加载问题,同时大幅减少List全量数据请求可以降低apiserver的内存压力和网络带宽传输压力,性能可以大幅提升。

【技术实现步骤摘要】

本专利技术涉及云计算领域,特别涉及一种超大规模kubernetes集群下网关服务list资源优化的方法。


技术介绍

1、超大规模kubernetes集群目前只支持5000节点,对于5000+节点和百万级别容器规模,会出现如下的性能瓶颈:一、http2协议造成apierver负载不均衡,因为apiserver与client基于http2协议连接,多个请求复用底层同一个tcp连接且长时间不断开,apiserver在滚动升级或者某个实例重启时,会引起后启动的apiserver在长时间内只有少数的请求数,极端情况下,负载较高的apiserver会出现oom,甚至引起雪崩;二、4层负载无法指定灵活的路由策略,4层负载均衡作用于传输层,负责消息传递,但无法根据请求的内容(比如verb、url等字段)制定灵活的负载均衡和路由策略,也无法在网关层对请求级别进行限流降级等处理。


技术实现思路

1、本专利技术的目的在于提供一种超大规模kubernetes集群下网关服务list资源优化的方法,以解决上述
技术介绍
中提出的问题。

2、为实现上述目的,本专利技术提供如下技术方案:一种超大规模kubernetes集群下网关服务list资源优化的方法,所述优化方法包括以下几个步骤:

3、第一步,系统初始化,在gateway部署前,先在控制平面所在集群注册policy和clusterpolicy crd对象,gateway启动时加载loadbalance controller,loadbalancecontroller通过watch上述对象的事件(新增、删除、更新)更新本地缓存的负载均衡规则;

4、第二步,创建clusterpolicy对象,通过向gateway控制平面发起创建clusterpolicy对象请求,并添加resourceversion匹配规则,创建完成后,controller实时更新本地缓存并全局生效;

5、第三步,创建policy对象,policy是namespace级别,用于匹配单个apiserver组,优先级高于clusterpolicy,根据policy设定的resource version规则生效策略,在更新本地缓存选择直接覆盖或者策略合并;

6、进一步,更新本地缓存方式默认为直接覆盖方式;

7、第四步,代理客户端请求,gateway检测到代理客户端的请求时,预先判定当前upstreamcluster是否存在代理规则,并选择优先级最高的规则进行加载,如果存在,则解析触发resourceversion规则,并根据规则代理到指定apiserver;否则按照默认策略进行代理;

8、第五步,开启apiserver过载保护,gateway所扮演的代理客户端如果频繁触发list全量资源请求,其次数超过阀值时将拒绝代理请求;

9、第六步,移除客户端代理规则,删除policy或clusterpolicy会触发本地负载策略更新,后续请求将按照默认策略进行负载。

10、优选的,所述gateway设置在代理客户端和apiserver之间,所述代理客户端与gateway之间设置有七层负载,所述gateway与apiserver之间设置有四层负载,所述gateway用于扮演代理客户端,所述gateway扮演客户端的方式为采用impersonate机制。

11、优选的,所述resourceversion规则如下:

12、

13、

14、其中,创建一个namespace为upstream-0,名称为upstream-policy的负载策略对象,labels中policy.loadbalance.gateway.io/last-merge:override表示上一次的策略合并规则,loadbalanceclass:standard表示采用标准负载均衡算法库,集成了轮询、连接数等自定义负载均衡算法,policy关联了resourceversion规则,规则每隔5秒向upstream-0对应的apiserver组拉取resourceversion,并策略更新本地缓存。

15、优选的,所述触发resourceversion规则的条件如下:

16、如果客户端携带的resourceversion不为空字符串且不为0,则选择代理超大规模kubernetes集群中resourceversion相等的apiserver进行代理;如果不存在相等的情况,则选择apiserver组中,resourceversion大于客户端携带值且值最大的进行代理;如果不存在比客户端值大的apiserver,则忽略当前请求;

17、如果客户端携带的resourceversion为0,则选择缓存中resource version值最大的apiserver进行代理;

18、如果客户端携带resourceversion为空字符串,则随机选择apiserver进行代理,此时会穿透至底层存储。

19、优选的,所述loadbalancecontroller包括loadbalanceclass,所述loadbalanceclass包括轮询、客户端连接数和resourceversion等负载均衡算法。

20、优选的,所述轮询包括请求解析插件、路由匹配插件、用户认证插件、流量治理插件、负载策略插件和反向代理插件。

21、本专利技术的技术效果和优点:

22、本专利技术通过gateway和resourceversion的设计,通过扩展负载均衡策略实现动态代理请求,并通过匹配resourceversion规则实现gateway精准代理apiserver,避免出现大量穿透底层的list请求,负载均衡插件可动态缓存每个集群资源对象的resourceversion,在客户端发起list请求时提前匹配resourceversion规则,通过匹配算法定位合适的apiserver进行转发,避免too large resource version触发的全量数据加载问题,同时大幅减少list全量数据请求可以降低apiserver的内存压力和网络带宽传输压力,性能可以大幅提升。

本文档来自技高网...

【技术保护点】

1.一种超大规模Kubernetes集群下网关服务List资源优化的方法,其特征在于,所述优化方法包括以下几个步骤:

2.根据权利要求1所述的一种超大规模Kubernetes集群下网关服务List资源优化的方法,其特征在于,所述gateway设置在代理客户端和apiserver之间,所述代理客户端与gateway之间设置有七层负载,所述gateway与apiserver之间设置有四层负载,所述gateway用于扮演代理客户端,所述gateway扮演客户端的方式为采用Impersonate机制。

3.根据权利要求1所述的一种超大规模Kubernetes集群下网关服务List资源优化的方法,其特征在于,所述ResourceVersion规则如下:

4.根据权利要求1所述的一种超大规模Kubernetes集群下网关服务List资源优化的方法,其特征在于,所述触发ResourceVersion规则的条件如下:

5.根据权利要求1所述的一种超大规模Kubernetes集群下网关服务List资源优化的方法,其特征在于,所述LoadBalanceController包括LoadBalanceClass,所述LoadBalanceClass包括轮询、客户端连接数和ResourceVersion等负载均衡算法。

6.根据权利要求5所述的一种超大规模Kubernetes集群下网关服务List资源优化的方法,其特征在于,所述轮询包括请求解析插件、路由匹配插件、用户认证插件、流量治理插件、负载策略插件和反向代理插件。

...

【技术特征摘要】

1.一种超大规模kubernetes集群下网关服务list资源优化的方法,其特征在于,所述优化方法包括以下几个步骤:

2.根据权利要求1所述的一种超大规模kubernetes集群下网关服务list资源优化的方法,其特征在于,所述gateway设置在代理客户端和apiserver之间,所述代理客户端与gateway之间设置有七层负载,所述gateway与apiserver之间设置有四层负载,所述gateway用于扮演代理客户端,所述gateway扮演客户端的方式为采用impersonate机制。

3.根据权利要求1所述的一种超大规模kubernetes集群下网关服务list资源优化的方法,其特征在于,所述resourceversion规则如下:

...

【专利技术属性】
技术研发人员:徐赛徐兴文李召宁博李志武毛燕茹
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

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

1