一种服务网格的多层网络协议处理方法及装置制造方法及图纸

技术编号:31978548 阅读:18 留言:0更新日期:2022-01-20 01:32
本发明专利技术提供一种服务网格的多层网络协议处理方法及装置,涉及云计算技术领域,该方法包括以下步骤:为服务网格的待部署应用的命名空间打上标签;在服务网格中部署插件组件,将服务网格的端口暴露至服务器集群外部;在打上标签的命名空间中部署应用;为服务网格部署网络流量处理组件,扩展服务网格并在服务网格中形成非侵入式工具集;网络流量处理组件生成多层网络协议相关的缺省配置,以及,在边缘和服务代理配置之上进行抽象,生成一层面向用户的配置自定义资源,并通过配置自定义资源对多层网络协议上网络流量进行处理,本发明专利技术提供一致、有效的把所有多层网络协议都纳入处理处理的方式,且对应用是透明的、无入侵的。无入侵的。无入侵的。

【技术实现步骤摘要】
一种服务网格的多层网络协议处理方法及装置


[0001]本专利技术涉及云计算
,尤其涉及一种服务网格的多层网络协议处理方法及装置。

技术介绍

[0002]Kubernetes(K8s)作为目前主流的容器编排平台,用于承载各类云计算服务,云平台上越来越多的容器化微服务给平台带来了更多复杂性,也给运维人员和开发人员带来很大挑战。
[0003]在这样的背景下,服务网格(Service Mesh)应运而生。Service Mesh通过对微服务建立逻辑上的“边界”,把庞大的服务治理问题,分而治之。通过Service Mesh可以提供一个对应用透明的基础设施层,可以解决目前在分布式应用/微服务中遇到的常见挑战,例如,如何找到服务提供者?如何保证服务之间的通信安全?如何得知服务之间的调用关系?如何进行流量处理如灰度发布?等等,因此利用Service Mesh可以轻松获取服务之间的调用关系,对微服务的流量进行细粒度处理,如灰度发布、负载均衡、指标监控等等。
[0004]Istio作为连接、安全加固、控制和观察服务的开放平台,是ServiceMesh的最佳实践,也是Sevcie Mesh事实上的标准。Istio的实现方式是通过对每个Pod注入流量代理(Sidecar Proxy)容器实现的,伴随应用部署一个Sidecar Proxy容器,正因为Sidecar Proxy容器的出现,所有Pod出向和入向流量的流量都会被拦截,并被加以分析和处理,对这些流量进行分析和处理,以达到在不修改应用代码的情况下对服务进行流量处理、安全加密,遥测数据收集的目的。由于Pod是Kubernetes创建或部署的最小/最简单的基本单位,一个Pod代表服务器集群上正在运行的一个进程,包括为Pod注入Sidecar Proxy容器、对流量自动拦截,都是对应用透明的。用户可以在不对应用做任何修改的前提下,做到对服务进行流量处理、负载均衡、恢复发布、遥测数据收集。这些服务治理能力的实现,得益于基于智能代理(Envoy)实现的Sidecar Proxy容器的协议解析、处理能力。Sidecar Proxy容器不仅需要可以处理开放式系统互联通信(Open System Interconnection,OSI)网络模型的三、四层协议上的网络流量,最重要的是还需要对七层网络协议上的网络流量进行处理。
[0005]Istio固然强大,但是也具有一定的局限性,主要的局限性在七层网络协议上网络流量的处理。目前Istio只支持超文本传输协议(HyperTextTransferProtocol,HTTP)和谷歌远程过程调用(googleRemoteProcedureCall,gRPC)。但在实际应用场景中,微服务中经常还会使用到的其他七层网络协议,如Dubbo、Thrift、Redis等。如果用户的应用通信标准不是HTTP或gRPC,Istio就只能在3

6层对流量进行处理,比如基于三层的网际互连协议(InternetProtocol,IP)地址,四层的传输控制协议(TransmissionControlProtocol,TCP)端口对这些协议进行路由。在指标采集方面,Istio只能收集到TCP层面的指标,例如TCP收发包数量或者打开/关闭的TCP链接数量等。这就意味着,如果用户想要处理七层网络协议上网络流量,就只能通过改造应用自身去实现这些功能,对应用造成入侵,这和服务治理的初衷背道而驰:将微服务通信和治理的共性问题从应用代码下沉到Service Mesh基础设施
层。
[0006]因此,当微服务应用迁移并部署到Service Mesh时,能够使用一致的方式且无入侵地对所有的这些七层网络协议进行统一纳入处理,以充分利用Service Mesh基础设施提供的云原生能力的方法是目前业界亟待解决的重要课题。

技术实现思路

[0007]本专利技术提供一种服务网格的多层网络协议处理方法及装置,用以解决现有技术中服务网格处理七层网络协议上网络流量需要改造应用自身,进而对应用造成入侵的缺陷,实现提供一致、有效的把所有多层网络协议都纳入处理的方式,且对应用是透明的、无入侵的。
[0008]本专利技术提供一种服务网格的多层网络协议处理方法,包括以下步骤:
[0009]为服务网格的待部署应用的命名空间打上标签;其中,所述服务网格部署在服务器集群中,所述标签表示自动注入流量代理容器;
[0010]在所述服务网格中部署插件组件,将所述服务网格的端口暴露至所述服务器集群外部;
[0011]在打上所述标签的所述命名空间中部署应用;
[0012]为所述服务网格部署网络流量处理组件,扩展所述服务网格并在所述服务网格中形成非侵入式工具集;
[0013]所述网络流量处理组件生成多层网络协议相关的缺省配置,以及,在边缘和服务代理配置之上进行抽象,生成一层面向用户的配置自定义资源,并通过所述配置自定义资源对多层网络协议上网络流量进行处理。
[0014]根据本专利技术提供的一种服务网格的多层网络协议处理方法,所述服务网格采用Istio。
[0015]根据本专利技术提供的一种服务网格的多层网络协议处理方法,所述服务器集群采用Kubernetes集群。
[0016]根据本专利技术提供的一种服务网格的多层网络协议处理方法,所述为服务网格的待部署应用的命名空间打上标签步骤之前,该方法还包括以下步骤:
[0017]部署服务器集群,并在所述服务器集群中部署服务网格。
[0018]根据本专利技术提供的一种服务网格的多层网络协议处理方法,所述网络流量处理组件采用Aeraki项目。
[0019]根据本专利技术提供的一种服务网格的多层网络协议处理方法,所述插件组件包括Kiali、Promethus、Grafana、Istio

ingress

gateway中的一种或者多种的组合。
[0020]本专利技术还提供一种服务网格的多层网络协议处理装置,包括:
[0021]标记模块,用于为服务网格的待部署应用的命名空间打上标签;其中,所述服务网格部署在服务器集群中,所述标签表示自动注入流量代理容器;
[0022]暴露模块,用于在所述服务网格中部署插件组件,将所述服务网格的端口暴露至所述服务器集群外部;
[0023]应用部署模块,用于在打上所述标签的所述命名空间中部署应用;
[0024]组件部署模块,用于为所述服务网格部署网络流量处理组件,扩展所述服务网格
并在所述服务网格中形成非侵入式工具集;
[0025]协议处理模块,用于所述网络流量处理组件生成多层网络协议相关的缺省配置,以及,在边缘和服务代理配置之上进行抽象,生成一层面向用户的配置自定义资源,并通过所述配置自定义资源对多层网络协议上网络流量进行处理。
[0026]本专利技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种服务网格的多层网络协议处理方法,其特征在于,包括以下步骤:为服务网格的待部署应用的命名空间打上标签;其中,所述服务网格部署在服务器集群中,所述标签表示自动注入流量代理容器;在所述服务网格中部署插件组件,将所述服务网格的端口暴露至所述服务器集群外部;在打上所述标签的所述命名空间中部署应用;为所述服务网格部署网络流量处理组件,扩展所述服务网格并在所述服务网格中形成非侵入式工具集;所述网络流量处理组件生成多层网络协议相关的缺省配置,以及,在边缘和服务代理配置之上进行抽象,生成一层面向用户的配置自定义资源,并通过所述配置自定义资源对多层网络协议上网络流量进行处理。2.根据权利要求1所述的服务网格的多层网络协议处理方法,其特征在于,所述服务网格采用Istio。3.根据权利要求1所述的服务网格的多层网络协议处理方法,其特征在于,所述服务器集群采用Kubernetes集群。4.根据权利要求1

3任一项所述的服务网格的多层网络协议处理方法,其特征在于,所述为服务网格的待部署应用的命名空间打上标签步骤之前,该方法还包括以下步骤:部署服务器集群,并在所述服务器集群中部署服务网格。5.根据权利要求1所述的服务网格的多层网络协议处理方法,其特征在于,所述网络流量处理组件采用Aeraki项目。6.根据权利要求1所述的服务网格的多层网络协议处理方法,其特征在于,所述插件组件包括Kiali、Promethus、Grafana、Istio
‑...

【专利技术属性】
技术研发人员:于靖洋
申请(专利权)人:浪潮软件科技有限公司
类型:发明
国别省市:

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

1