一种在Kubernetes环境下基于OpenvSwitch的服务代理方法技术

技术编号:32536874 阅读:16 留言:0更新日期:2022-03-05 11:32
本申请涉及一种在Kubernetes环境下基于Open vSwitch的服务代理方法,属于通信技术领域,其包括在Open vSwitch接收到目标报文时,通过Open vSwitch将目标报文的报文信息基于OpenFlow协议发送至Ryu控制器;通过Ryu控制器将报文信息上报至网络控制器;通过网络控制器确定目标报文对应的网络策略,并将网络策略返回至Ryu控制器;通过Ryu控制器对网络策略翻译为OpenFlow协议的流表响应到Open vSwitch;通过Open vSwitch安装对应的流表,并按照流表进行目标报文的转发;将Kubernetes中原有的kube

【技术实现步骤摘要】
一种在Kubernetes环境下基于Open vSwitch的服务代理方法


[0001]本申请涉及一种在Kubernetes环境下基于Open vSwitch的服务代理方法,属于通信


技术介绍

[0002]Kubernetes是一个开源的容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理,是构建PaaS(Platform as a service)平台的基础平台,帮助用户将云端基础设施部署和创建到客户端,用户不再需要管理和控制云端的基础设置(包括网络、服务器、操作系统和存储),仅仅需要直接面向其所需要部署的应用进行管理即可。PaaS平台抽象掉了硬件和操作系统细节,以便于能够使用户更加关注自己的业务逻辑和扩展自己的业务。当在生产环境中部署一个应用程序(即这个业务)时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。
[0003]在Kubernetes中,通过名为Service的资源来实现到业务侧的负载均衡与故障隔离,同时也可以对外提供访问。Kubernetes实现这一负载均衡主要通过其内置的kube

proxy实现,kube

proxy通过在操作系统上安装对应的规则或者在Linux内核中直接配置IP虚拟服务器(IP Virtual Server,IPVS),实现负载均衡及对外访问能力。
[0004]然而,Kubernetes中的kube

proxy同时依赖Linux系统的控制面与转发面,报文处理依赖客户端代理(iptables)模块,在规则较多时性能下降;同时,报文需要进入系统中处理,安装规则繁多,容易造成冲突。另外,kube

proxy在Linux系统下和在Windows系统下表现出不同的行为,这为跨系统的功能开发带来了不便。kube

proxy依赖Linux操作系统处理报文,在系统中处理时对开放式系统互联通信参考模型(Open System Interconnection Reference Model,OSI)第二层的报文处理能力有限,并且不适合大量规则安装。

技术实现思路

[0005]本申请提供了一种在Kubernetes环境中基于Open vSwitch的服务代理方法,可以对操作系统数据平面进行一次抽象,使得整个网络系统可以在不同的系统中使用,程序仅仅需要为OpenFlow控制器安装对应的流表项即可,同时,本专利技术的网络控制器作为控制控制面能够取代kube

proxy,无需再为操作系统安装规则处理报文。另外,系统中仅仅安装NodePort类型的iptables规则,其他类型的Service均可交由Open vSwitch在内部直接处理并转发,而无需再进入系统中依靠iptables处理。同时,可以实现负载均衡、故障隔离的同时提供了数据面的抽象,控制面始终只需要通过OpenFlow协议与数据面通信并且下发流表即可,而无需再单独在不同的操作系统中安装不同的配置。基于Open vSwitch设计,通过OpenFlow协议为Open vSwitch安装流表,同时Open vSwitch能够按照预先的设定向Ryu控制器查询逐包的策略,能够支持OSI多层的报文处理,流审计也可以从OSI第二层一直覆盖到第四层。本申请提供如下技术方案:
[0006]提供在Kubernetes环境中基于Open vSwitch的服务代理方法,用于Kubernetes集
群中的节点中,所述节点安装有网络控制器、Ryu控制器和Open vSwitch;所述网络控制器通过所述Ryu控制器与所述Open vSwitch通信相连;所述方法包括:
[0007]在所述Open vSwitch接收到目标报文时,通过所述Open vSwitch将所述目标报文的报文信息基于OpenFlow协议发送至所述Ryu控制器;
[0008]通过所述Ryu控制器将所述报文信息上报至所述网络控制器;
[0009]通过所述网络控制器确定所述目标报文对应的网络策略,并将所述网络策略返回至所述Ryu控制器;
[0010]通过所述Ryu控制器对所述网络策略翻译为所述OpenFlow协议的流表响应到所述Open vSwitch;
[0011]通过所述Open vSwitch安装对应的流表,并按照所述流表进行所述目标报文的转发。
[0012]可选地,所述方法还包括:
[0013]通过所述网络控制器调用所述Ryu控制器发起流表操作指示,所述流表操作指示包括流表删除指示和流表添加指示;
[0014]通过所述Open vSwitch按照所述流表操作指示操作对应的流表。
[0015]可选地,所述Kubernetes集群中Service的类型包括NodePort类型,所述在所述Open vSwitch接收到目标报文时,通过所述Open vSwitch将所述目标报文的报文信息基于OpenFlow协议发送至所述Ryu控制器之前,还包括:
[0016]响应于用户通过NodePort访问所述NodePort类型的Service,通过Linux系统的iptables确定一个端点并对所述目标报文进行目标网络地址转换DNAT;
[0017]通过系统路由选中到所述Open vSwitch的接口,并在所述目标报文进入所述Open vSwitch前对所述目标报文进行源网络地址转换SNAT;
[0018]通过所述Open vSwitch的接口将DNAT和SNAT后的目标报文传送至所述Open vSwitch。
[0019]可选地,所述端点与所述Open vSwitch位于同一所述节点内,所述通过所述Open vSwitch安装对应的流表,并按照所述流表进行所述目标报文的转发,包括:
[0020]通过所述Open vSwitch将所述目标报文转发至所述端点。
[0021]可选地,所述端点安装在与所述节点相独立的其它节点中,所述节点与所述其它节点之间通过隧道通信相连;
[0022]所述通过所述Open vSwitch安装对应的流表,并按照所述流表进行所述目标报文的转发,包括:
[0023]通过所述Open vSwitch将所述目标报文转发至所述其它节点的Open vSwitch中,以使所述其它节点的Open vSwitch将所述目标报文转发至所述端点。
[0024]可选地,所述Kubernetes集群中Service的类型包括ClusterIP类型;所述在所述Open vSwitch接收到目标报文时,通过所述Open vSwitch将所述目标报文的报文信息基于OpenFlow协议发送至所述Ryu控制器,包括:
[0025]响应于所述Kubernetes集群中的容器Pod访问所述ClusterIP类型的Service,通过所述Open vSwitch接收所述Pod的目标报文,并将所述目标报文上报至所述Ryu控本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种在Kubernetes环境下基于Open vSwitch的服务代理方法,其特征在于,用于Kubernetes集群中的节点中,所述节点安装有网络控制器、Ryu控制器和Open vSwitch;所述网络控制器通过所述Ryu控制器与所述Open vSwitch通信相连;所述方法包括:在所述Open vSwitch接收到目标报文时,通过所述Open vSwitch将所述目标报文的报文信息基于OpenFlow协议发送至所述Ryu控制器;通过所述Ryu控制器将所述报文信息上报至所述网络控制器;通过所述网络控制器确定所述目标报文对应的网络策略,并将所述网络策略返回至所述Ryu控制器;通过所述Ryu控制器对所述网络策略翻译为所述OpenFlow协议的流表响应到所述Open vSwitch;通过所述Open vSwitch安装对应的流表,并按照所述流表进行所述目标报文的转发。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:通过所述网络控制器调用所述Ryu控制器发起流表操作指示,所述流表操作指示包括流表删除指示和流表添加指示;通过所述Open vSwitch按照所述流表操作指示操作对应的流表。3.根据权利要求1所述的方法,其特征在于,所述Kubernetes集群中Service的类型包括NodePort类型,所述在所述Open vSwitch接收到目标报文时,通过所述Open vSwitch将所述目标报文的报文信息基于OpenFlow协议发送至所述Ryu控制器之前,还包括:响应于用户通过NodePort访问所述NodePort类型的Service,通过Linux系统的iptables确定一个端点并对所述目标报文进行目标网络地址转换DNAT;通过系统路由选中到所述Open vSwitch的接口,并在所述目标报文进入所述Open vSwitch前对所述目标报文进行源网络地址转换SNAT;通过所述Open vSwitch的接口将DNAT和SNAT后的目标报文传送至所述Open vSwitch。4.根据权利要求3所述的方法,其特征在于,所述端点与所述Open vSwitch位于同一所述节点内,所述通过所述Open vSwitch安装对应的流表,并按照所述流表进行所述目标报文的转发,包括:通过所述Open vSwitch将所述目标报文转发至所述端点。5.根据权利要求3所述的方法,其特征在于...

【专利技术属性】
技术研发人员:花磊高远梁兵崔骥赵安全张振华
申请(专利权)人:苏州博纳讯动软件有限公司
类型:发明
国别省市:

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

1