一种针对SpringCloud应用的Istio平台接入方法及装置与流程

专利检索2025-11-26  13


本发明涉及软件,特别涉及一种针对springcloud应用的istio平台接入方法及装置。


背景技术:

1、随着服务网格技术的发展和大规模应用,服务网格治理平台istio也越来越多地被用于生产环境中,用来对容器服务的流量进行治理。

2、但是,对于传统springcloud架构的微服务来说,想要接入istio的治理并不容易,需要对代码,配置进行一定程度的修改,重新编译,打包。这增加了不少接入的成本,且修改代码的过程中可能产生一定的风险,从而阻碍了服务网格的推广。


技术实现思路

1、基于此,本申请实施例提供了一种针对springcloud应用的istio平台接入方法及装置,能够springcloud微服务无需做任何改造获得istio流量治理的能力,提高了springcloud应用的接入效率。

2、第一方面,提供了一种针对springcloud应用的istio平台接入方法,该方法包括:

3、s1,使用k8s的部署工具将springcloud应用部署到集群中,利用istio的注入机制,在springcloud应用pod启动时自动注入sidecar;

4、s2,使用k8s的资源定义文件创建svc资源,并在svc资源上设置对应标签;

5、s3,通过controller组件去k8s当中检测所有包含所述标签的svc资源,查询到同名endpoint资源,并找到资源中spec部分的ip列表;

6、s4,controller组件根据提取的ip列表和svc资源,编写envoyfilter的定义;其中,所述envoyfilter用于配置envoy代理的rds拦截规则;

7、s5,在istiod在下发rds策略时,检查编写的envoyfilter资源,controller创建的envoyfilter中的rds补充部分会被istiod识别并下发到相应的springcloud应用sidecar中;

8、s6,当springcloud应用发出请求时,其请求首先会被sidecar代理拦截;根据rds规则检查请求的目标ip是否与envoyfilter资源中定义的匹配规则相符,当匹配成功时进入istio的流量治理流程以完成接入。

9、可选地,所述方法还包括:

10、s7,通过asm产品页面或开源jaeger调用链页面观察,验证发现springcloud的流量完全被istio纳管。

11、可选地,s1,使用k8s的部署工具将springcloud应用部署到集群中,所述k8s的部署工具可以包括kubectl和helm。

12、可选地,s4,controller组件根据提取的ip列表和svc资源,编写envoyfilter的定义,包括:

13、通过envoyfilter定制envoy代理配置的资源;controller组件根据提取的ip列表和svc资源信息,编写envoyfilter的定义,定义中包含了rds的拦截规则;所述拦截规则用于指定被envoy代理拦截的请求,并进行后续的处理。

14、可选地,s5具体包括:

15、当istiod下发rds策略时,检查集群中所有的envoyfilter资源;如果找到了由controller创建的、针对特定svc资源的envoyfilter,istiod会识别其中的rds补充部分,并将其下发到相应的springcloud应用sidecar中;sidecar中的envoy代理就会根据下发规则进行请求拦截和流量治理。

16、可选地,s6中当匹配成功时进入istio的流量治理流程,包括:

17、如果匹配成功,请求将进入istio的流量治理流程,包括路由、限流、熔断。

18、第二方面,提供了一种针对springcloud应用的istio平台接入装置,该装置包括:

19、部署模块,用于使用k8s的部署工具将springcloud应用部署到集群中,利用istio的注入机制,在springcloud应用pod启动时自动注入sidecar;

20、创建模块,用于使用k8s的资源定义文件创建svc资源,并在svc资源上设置对应标签;

21、检测模块,用于通过controller组件去k8s当中检测所有包含所述标签的svc资源,查询到同名endpoint资源,并找到资源中spec部分的ip列表;

22、编写模块,controller组件根据提取的ip列表和svc资源,编写envoyfilter的定义;其中,所述envoyfilter用于配置envoy代理的rds拦截规则;

23、下发模块,用于在istiod在下发rds策略时,检查编写的envoyfilter资源,controller创建的envoyfilter中的rds补充部分会被istiod识别并下发到相应的springcloud应用sidecar中;

24、接入模块,用于当springcloud应用发出请求时,其请求首先会被sidecar代理拦截;根据rds规则检查请求的目标ip是否与envoyfilter资源中定义的匹配规则相符,当匹配成功时进入istio的流量治理流程以完成接入。

25、第三方面,提供了一种电子设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述第一方面任一所述的针对springcloud应用的istio平台接入方法。

26、第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述第一方面任一所述的针对springcloud应用的istio平台接入方法。

27、第五方面,提供了一种计算机程序产品,包括计算机程序/指令,计算机程序/指令被处理器执行时实现上述第一方面任一所述的针对springcloud应用的istio平台接入方法。

28、本申请实施例提供的技术方案带来的有益效果包括在springcloud应用无需做任何代码,配置的变更场景,实现了istio的接入,获得了istio的治理能力。



技术特征:

1.一种针对springcloud应用的istio平台接入方法,其特征在于,所述方法包括:

2.根据权利要求1所述的istio平台接入方法,其特征在于,所述方法还包括:

3.根据权利要求1所述的istio平台接入方法,其特征在于,s1,使用k8s的部署工具将springcloud应用部署到集群中,所述k8s的部署工具可以包括kubectl和helm。

4.根据权利要求1所述的istio平台接入方法,其特征在于,s4,controller组件根据提取的ip列表和svc资源,编写envoyfilter的定义,包括:

5.根据权利要求1所述的istio平台接入方法,其特征在于,s5具体包括:

6.根据权利要求1所述的istio平台接入方法,其特征在于,s6中当匹配成功时进入istio的流量治理流程,包括:

7.一种针对springcloud应用的istio平台接入装置,其特征在于,所述装置包括:

8.一种电子设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至6任一所述方法的步骤。

9.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一所述方法的步骤。

10.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至6中任一项所述方法的步骤。


技术总结
本申请公开了一种针对SpringCloud应用的Istio平台接入方法及装置。本方法通过K8S部署工具将SpringCloud应用部署至集群,并利用Istio的注入机制自动注入Sidecar。接着,创建SVC资源并设置标签,以便后续Controller组件检测。Controller组件会查找包含特定标签的SVC资源,并编写EnvoyFilter定义以配置RDS拦截规则。Istiod在下发RDS策略时,会识别并应用这些EnvoyFilter,实现流量治理。最后,通过ASM产品页面或开源JAEGER等调用链页面观察,验证SpringCloud流量是否完全由Istio纳管。本方法确保了SpringCloud应用能够充分利用Istio的流量治理功能,提升应用的可靠性和性能。

技术研发人员:黄力,廖建
受保护的技术使用者:北京凌云雀科技有限公司
技术研发日:
技术公布日:2024/5/29
转载请注明原文地址:https://win.8miu.com/read-1158843.html

最新回复(0)