一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于ARP代理的容器公网IP绑定的系统、装置和方法与流程

2022-06-17 20:09:54 来源:中国专利 TAG:
基于arp代理的容器公网ip绑定的系统、装置和方法
技术领域
:1.本公开总体上涉及通信领域,更具体地涉及用于容器的网络通信的系统、方法和装置。
背景技术
::2.目前主流公有云厂商(诸如阿里云)采用的公网ip绑定方案大致为:首先规划一个固定ip地址范围的dhcp地址池,通过关联用户视图获取弹性网卡,采用nat映射方式,将公网ip映射到云账户的弹性网卡上。然而,为了实现这样的公网ip绑定方案,云后端系统除了需要实现弹性网卡的功能外,还需要实现在机房交换机上实现nat映射。对于小型的云共享场景而言,这样的公网ip绑定方案过于繁琐,并且实现成本高,灵活性较差。3.此外,虽然cdn 边缘计算项目采用容器kubernetes作为底座,常用kubernetescni网络插件已具备弹性子网划分,弹性子网隔离,弹性ip等功能。但是基于物理机的kubernetes不具备公有云iaas设施中的vpc,弹性网卡等功能,这给pod直接绑定公网ip,给用户直接公网访问pod的场景带来一定的技术挑战。4.因此,期望提出一种能够以更灵活的方式和更低的成本实现公网ip绑定的系统、装置和方法。技术实现要素:5.在下文中给出了关于本公开的简要概述,以便提供关于本公开的一些方面的基本理解。但是,应当理解,这个概述并不是关于本公开的穷举性概述。它并不是意图用来确定本公开的关键性部分或重要部分,也不是意图用来限定本公开的范围。其目的仅仅是以简化的形式给出关于本公开的某些概念,以此作为稍后给出的更详细描述的前序。6.根据本公开的一个方面,提供一种用于网络通信的系统,包括:地址解析协议arp代理解析模块,被配置为动态接收来自开放虚拟机房交换机ovn模块的iptables规则和弹性子网podip绑定信息,并将所述iptables规则和所述弹性子网podip绑定信息上传至arp控制管理模块;在端口处侦听来自机房交换机的报文请求并对报文请求进行解析和校验;以及基于解析和校验后的报文请求中所包含的目的地址ip、所述iptables规则以及所述弹性子网podip绑定信息,检测与目的地址ip相符合的pod,并对报文请求进行应答,以告知机房交换机对应的通信链路。7.根据本公开的另一个方面,提供一种用于网络通信的方法,包括:动态接收来自开放虚拟机房交换机ovn模块的iptables规则和弹性子网podip绑定信息,并将所述iptables规则和所述弹性子网podip绑定信息上传至arp控制管理模块;在端口处侦听来自机房交换机的报文请求并对报文请求进行解析和校验;以及基于解析和校验后的报文请求中所包含的目的地址ip、所述iptables规则以及所述弹性子网podip绑定信息,检测与目的地址ip相符合的pod,并对报文请求进行应答,以告知机房交换机对应的通信链路。8.根据本公开的又一个方面,提供一种用于网络通信的装置,包括:存储器,其上存储有指令;以及处理器,被配置为执行存储在所述存储器上的指令,以执行上述用于网络通信的方法。9.根据本公开的再一个方面,提供一种计算机可读存储介质,包括计算机可执行指令,所述计算机可执行指令在由一个或多个处理器执行时,使得所述一个或多个处理器执行上述用于网络通信的方法。10.通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得更为清楚。附图说明11.构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。12.参照附图,根据下面的详细描述,可以更清楚地理解本公开,其中:13.图1示出了根据本公开的实施例的用于网络通信的系统的示意图;14.图2示出了根据本公开的实施例的用于网络通信的方法的示意图;以及15.图3示出了可以实现根据本公开的实施例的计算装置的示例性配置。具体实施方式16.参考附图进行以下详细描述,并且提供以下详细描述以帮助全面理解本公开的各种示例实施例。以下描述包括各种细节以帮助理解,但是这些细节仅被认为是示例,而不是为了限制本公开,本公开是由随附权利要求及其等同内容限定的。在以下描述中使用的词语和短语仅用于能够清楚一致地理解本公开。另外,为了清楚和简洁起见,可能省略了对公知的结构、功能和配置的描述。本领域普通技术人员将认识到,在不脱离本公开的精神和范围的情况下,可以对本文描述的示例进行各种改变和修改。17.鉴于现有技术存在的上述问题,本发明公开了一种基于地址解析协议arp的容器公网ip绑定方案。本发明在容器pass层解决公网ip绑定问题,而非目前头部公有云厂商的vpc层面通过nat方式解决的公网ip绑定问题。18.接下来,将参照图1至图3对根据本发明的用于网络通信的系统、方法和装置进行详细描述。19.图1示出了根据本公开的实施例的用于网络通信的系统100。20.如图1所示,根据本公开的本公开的实施例的用于网络通信的系统100包括:地址解析协议(arp)代理解析模块102、开放虚拟机房交换机(openvirtualswitch,ovn)模块104、以及arp控制管理模块106。21.arp代理解析模块102动态接收来自ovn模块104(具体而言,为如下所述的ovn控制平面模块1044)的iptables规则和弹性子网podip绑定信息,并将iptables规则和弹性子网podip绑定信息上传至arp控制管理模块106。22.在根据本公开的实施例的一些方面中,arp代理模块102以daemonset形式部署在kubernetes集群中的各个节点处。kubernetes(简称k8s)是用8代替8个字符“ubernete”而成的缩写。是一个开源的、用于管理云平台中多个主机上的容器化的应用。kubernetes的目标是让部署容器化的应用简单并且高效。kubernetes提供了应用部署,规划,更新,维护的一种机制。daemonset保证在每个节点(node)上都运行一个容器副本,常用来部署一些集群的日志、监控或者其他系统管理应用。23.pod作为kubernetes的复制单元被应用。具体而言,kubernetes不直接运行容器;相反,它将一个或多个容器封装到一个称为pod的高级结构中。相同pod中的任何容器都将共享相同的名称空间和本地网络。容器可以很容易地与其他容器在相同的容器中进行通信,就像它们在同一台机器上同时保持一定程度的隔离。24.pod可以容纳多个容器,但在可能的情况下应该限制自己。因为pod作为一个单位被放大和缩小时,所有在一个pod里的容器都必须在一起缩放,不管它们是否需要。这将导致资源的浪费和成本增加。为了解决这个问题,pod应该保持尽可能小的大小,通常只保留一个主进程和紧密耦合的辅助容器。25.此外,在单个pod实例无法承载负载的情况下,可以配置kubernetes以在必要时将pod的新副本部署到集群中。即使在没有重载的情况下,在生产系统中任何时候都要有多个副本,以保证负载均衡和故障抵抗。26.此外,arp代理解析模块102在端口处侦听来自机房交换机200的报文请求并对报文请求进行解析和校验。27.进一步而言,arp代理解析模块102基于解析和校验后的报文请求中所包含的目的地址ip、所述iptables规则以及所述弹性子网podip绑定信息,检测与目的地址ip相符合的pod,并对报文请求进行应答,以告知机房交换机200对应的通信链路。28.机房交换机200接收来自用户300经由公网路由器传送的数据包,校验数据包中所包含的目的地址ip是否为本机房ip网段,并且当目的地址ip为本机房ip网段时,发起报文请求。29.此外,机房交换机200还基于由arp代理模块200告知的通信链路,将所述数据包发送至ovn模块104(具体而言,为如下所述的ovn控制平面模块1044)。30.ovn模块104包括ovn弹性子网管理模块1042和ovn控制平面模块1044。31.openvswitch(ovs)以其丰富的功能和相对优秀的性能,成为openstack中广泛使用的虚拟机房交换机。ovs模仿物理机房交换机装置的工作流程,实现了很多物理机房交换机当时才支持的许多网络功能。ovn是openvswitch项目组为ovs开发sdn控制器,同其他sdn产品相比,ovn对ovs及openstack有更好的兼容性和性能。ovn提供了许多原生的虚拟网络功能,提升了ovs的工作效率和性能。32.具体而言,ovs类似单机软件,它并没有集群的信息,也无法了解整个集群的虚拟网络状况,也就无法只通过自身来构建集群规模的虚拟网络,好比是单机的docker。ovn相当于是ovs的k8s,它提供了一个集中式的ovs控制器。这样可以从集群角度对整个网络设施进行编排。33.ovn弹性子网管理模块1042设置弹性子网并给弹性子网设置公网ip网段。34.此外,ovn弹性子网管理模块1042还创建iptables规则和pod,并将弹性子网绑定至所创建的pod,以得到弹性子网podip绑定信息。35.在根据本公开的实施例的一些方面中,ovn弹性子网模块1042以pod形式部署在kubernetes集群中。36.在根据本公开的实施例的一些方面中,ovn弹性子网管理模块1042需要规划公网网段ip,从而确保规划的网段ip报文能够正确通过公网路由到达机房交换机200侧。例如,网段125.88.39.200-125.88.39.230被规划为kubernetes集群所属机房网段。37.此外,利用etcd来存储相关ip信息。etcd是coreos团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。38.ovn控制平面模块1044将iptables规则和弹性子网podip绑定信息写入控制平面下的集群节点中,并且将iptables规则和弹性子网podip绑定信息上传至arp代理模块102。39.此外,ovn控制平面模块1044接管来自机房交换机200的数据包,对数据包进行目的地址转换(dnat),并将转换后的数据包发送至符合的pod的容器内部网络。40.arp控制管理模块106基于iptables规则和弹性子网podip绑定信息,管理kubernetes集群中的各个pod。41.在根据本公开的实施例的一些方面中,arp控制管理模块106同样以pod形式部署在kubernetes集群中。42.下面将参照图2进一步描述参照图1所述的arp代理解析模块102、ovn模块104、arp控制管理模块106以及机房交换机200之间的信息交互过程。43.图2示出了根据本公开的实施例的用于网络通信的方法的示意图200。44.如图2所示,在步骤s202处,arp代理解析模块102动态接收来自ovn控制平面模块1044的iptables规则和弹性子网podip绑定信息。45.虽然未示出,但要注意的是,iptables规则和弹性子网podip绑定信息由ovn弹性子网管理模块1042创建,并由ovn控制平面模块1044写入控制平面下的集群节点中。46.接下来,在步骤s204处,arp代理解析模块102将所述iptables规则和所述弹性子网podip绑定信息上传至arp控制管理模块106。47.接下来,在步骤s206处,机房交换机200接收来自用户300经由公网路由器传送的数据包,并校验数据包中所包含的目的地址ip是否为本机房ip网段。48.接下来,在步骤s208处,当目的地址ip为本机房ip网段时,机房交换机200发起报文请求。49.接下来,在步骤s210处,arp代理解析模块102在端口处侦听来自机房交换机200的报文请求并对报文请求进行解析和校验。此外,arp代理解析模块102还基于解析和校验后的报文请求中所包含的目的地址ip、所述iptables规则以及所述弹性子网podip绑定信息,检测与目的地址ip相符合的pod,并对报文请求进行应答,以告知机房交换机200对应的通信链路。50.接下来,在步骤s212处,机房交换机200基于由arp代理模块102告知的通信链路,将所述数据包发送至ovn控制平面模块1044。要注意的是,虽然未示出,但ovn控制平面模块1044接管来自机房交换机200的数据包,对数据包进行目的地址转换,并将转换后的数据包发送至符合的pod的容器内部网络。51.图3示出了能够实现根据本公开的实施例的计算装置300的示例性配置。52.计算装置300是能够应用本公开的上述方面的硬件装置的实例。计算装置300可以是被配置为执行处理和/或计算的任何机器。计算装置300可以是但不限制于工作站、服务器、台式计算机、膝上型计算机、平板计算机、个人数据助手(pda)、智能电话、车载计算机或以上组合。53.如图3所示,计算装置300可以包括可以经由一个或多个接口与总线302连接或通信的一个或多个元件。总线302可以包括但不限于,工业标准架构(industrystandardarchitecture,isa)总线、微通道架构(microchannelarchitecture,mca)总线、增强isa(eisa)总线、视频电子标准协会(vesa)局部总线、以及外设组件互连(pci)总线等。计算装置300可以包括例如一个或多个处理器304、一个或多个输入装置306以及一个或多个输出装置308。一个或多个处理器304可以是任何种类的处理器,并且可以包括但不限于一个或多个通用处理器或专用处理器(诸如专用处理芯片)。处理器302例如可以被配置为实现如上参照图2所述的方法中的各项操作。输入装置306可以是能够向计算装置输入信息的任何类型的输入装置,并且可以包括但不限于鼠标、键盘、触摸屏、麦克风和/或远程控制器。输出装置308可以是能够呈现信息的任何类型的装置,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。54.计算装置300还可以包括或被连接至非暂态存储装置314,该非暂态存储装置314可以是任何非暂态的并且可以实现数据存储的存储装置,并且可以包括但不限于盘驱动器、光存储装置、固态存储器、软盘、柔性盘、硬盘、磁带或任何其他磁性介质、压缩盘或任何其他光学介质、缓存存储器和/或任何其他存储芯片或模块、和/或计算机可以从其中读取数据、指令和/或代码的其他任何介质。计算装置300还可以包括随机存取存储器(ram)310和只读存储器(rom)312。rom312可以以非易失性方式存储待执行的程序、实用程序或进程。ram310可提供易失性数据存储,并存储与计算装置300的操作相关的指令。计算装置300还可包括耦接至数据链路318的网络/总线接口316。网络/总线接口316可以是能够启用与外部装置和/或网络通信的任何种类的装置或系统,并且可以包括但不限于调制解调器、网络卡、红外线通信装置、无线通信装置和/或芯片集(诸如蓝牙tm装置、802.11装置、wifi装置、wimax装置、蜂窝通信设施等)。55.根据本发明的用于网络通信的系统、方法和装置通过ovn弹性子网模块设置弹性子网,设置公网ip网段,将ovn弹性子网绑定至namespace上,并在该namespace上创建pod,从而实现将弹性子网绑定至pod。ovn控制平面模块以流表形式将弹性子网podip绑定信息写到数据控制平面下的集群节点中,并将流表信息和pod信息上报至arp代理解析模块。arp代理解析模块接受流表信息和pod信息,并将其上传至arp控制管理模块,以对kubernetes集群中的各pod进行总体控制。另一方面,arp代理解析模块在端口处侦听来自机房交换机的报文请求,对报文请求进行解析和校验,并基于解析和校验后的报文请求中所包含的目的地址ip、所述流表信息以及所述弹性子网podip绑定信息,检测与目的地址ip相符合的pod,并对报文请求进行应答,以告知机房交换机对应的通信链路,从而使得机房交换机能够将所述数据包发送至ovn控制平面模块。ovn控制平面模块进而接管来自机房交换机200的数据包,对数据包进行目的地址转换,并将转换后的数据包发送至符合的pod的容器内部网络。56.换句话说,通过根据本发明的用于网络通信的系统、方法和装置,能够在提供pod级别的弹性子网划分能力,并为子网提供网络策略、网络资源限额等能力的同时,也提供pod公网ip绑定能力、公网ip网段细粒度划分能力等,从而使得公网数据包从三层网络到机房交换机二层网络后,打通二层至kubernetes中的pod的数据包通道。57.本公开可以被实现为装置、系统、集成电路和非瞬时性计算机可读介质上的计算机程序的任何组合。可以将一个或多个处理器实现为执行本公开中描述的部分或全部功能的集成电路(ic)、专用集成电路(asic)或大规模集成电路(lsi)、系统lsi,超级lsi或超lsi组件。58.本公开包括软件、应用程序、计算机程序或算法的使用。可以将软件、应用程序、计算机程序或算法存储在非瞬时性计算机可读介质上,以使诸如一个或多个处理器的计算机执行上述步骤和附图中描述的步骤。例如,一个或多个存储器以可执行指令存储软件或算法,并且一个或多个处理器可以关联执行该软件或算法的一组指令,以根据本公开中描述的实施例提供各种功能。59.软件和计算机程序(也可以称为程序、软件应用程序、应用程序、组件或代码)包括用于可编程处理器的机器指令,并且可以以高级过程性语言、面向对象编程语言、功能性编程语言、逻辑编程语言或汇编语言或机器语言来实现。术语“计算机可读介质”是指用于向可编程数据处理器提供机器指令或数据的任何计算机程序产品、装置或装置,例如磁盘、光盘、固态存储装置、存储器和可编程逻辑装置(pld),包括将机器指令作为计算机可读信号来接收的计算机可读介质。60.举例来说,计算机可读介质可以包括动态随机存取存储器(dram)、随机存取存储器(ram)、只读存储器(rom)、电可擦只读存储器(eeprom)、紧凑盘只读存储器(cd-rom)或其他光盘存储装置、磁盘存储装置或其他磁性存储装置,或可以用于以指令或数据结构的形式携带或存储所需的计算机可读程序代码以及能够被通用或专用计算机或通用或专用处理器访问的任何其它介质。如本文中所使用的,磁盘或盘包括紧凑盘(cd)、激光盘、光盘、数字多功能盘(dvd)、软盘和蓝光盘,其中磁盘通常以磁性方式复制数据,而盘则通过激光以光学方式复制数据。上述的组合也包括在计算机可读介质的范围内。61.提供本公开的主题作为用于执行本公开中描述的特征的装置、系统、方法和程序的示例。但是,除了上述特征之外,还可以预期其他特征或变型。可以预期的是,可以用可能代替任何上述实现的技术的任何新出现的技术来完成本公开的部件和功能的实现。62.另外,以上描述提供了示例,而不限制权利要求中阐述的范围、适用性或配置。在不脱离本公开的精神和范围的情况下,可以对所讨论的元件的功能和布置进行改变。各种实施例可以适当地省略、替代或添加各种过程或部件。例如,关于某些实施例描述的特征可以在其他实施例中被结合。63.另外,在本公开的描述中,术语“第一”、“第二”、“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性和顺序。64.类似地,虽然在附图中以特定次序描绘了操作,但是这不应该被理解为要求以所示的特定次序或者以顺序次序执行这样的操作,或者要求执行所有图示的操作以实现所希望的结果。在某些情况下,多任务处理和并行处理可以是有利的。65.另外,本公开的实施方式还可以包括以下示例:66.(1)一种用于网络通信的系统,包括:67.地址解析协议arp代理解析模块,被配置为68.动态接收来自开放虚拟机房交换机ovn模块的iptables规则和弹性子网podip绑定信息,并将所述iptables规则和所述弹性子网podip绑定信息上传至arp控制管理模块;69.在端口处侦听来自机房交换机的报文请求并对报文请求进行解析和校验;以及70.基于解析和校验后的报文请求中所包含的目的地址ip、所述iptables规则以及所述弹性子网podip绑定信息,检测与目的地址ip相符合的pod,并对报文请求进行应答,以告知机房交换机对应的通信链路。71.(2)根据上述(1)所述的系统,其特征在于,还包括:72.所述ovn模块,包括ovn弹性子网管理模块和ovn控制平面模块,其中73.所述ovn弹性子网管理模块被配置为74.设置弹性子网并给弹性子网设置公网ip网段;以及75.创建所述iptables规则和pod,并将弹性子网绑定至所创建的pod,以得到所述弹性子网podip绑定信息;以及76.所述ovn控制平面模块被配置为77.将所述iptables规则和所述弹性子网podip绑定信息写入控制平面下的集群节点中;并且78.将所述iptables规则和所述弹性子网podip绑定信息上传至所述arp代理模块。79.(3)根据上述(2)所述的系统,其特征在于,80.所述机房交换机校验来自公网的数据包所包含的目的地址ip是否为本机房ip网段;并且81.当目的地址ip为本机房ip网段时,发起所述报文请求;以及82.基于由所述arp代理模块告知的通信链路,将所述数据包发送至所述ovn控制平面模块。83.(4)根据上述(3)所述的系统,其特征在于84.所述ovn控制平面模块还被配置为85.维护目的地址转换dnat规则表,接管所述数据包,并对所述数据包进行目的地址转换;以及86.将转换后的数据包发送至所述符合的pod的容器内部网络。87.(5)根据上述(1)所述的系统,其特征在于,还包括:88.所述arp控制管理模块,被配置为89.基于所述iptables规则和所述弹性子网podip绑定信息,管理各个pod。90.(6)根据上述(2)所述的系统,其特征在于,91.所述arp代理模块以daemonset形式部署在kubernetes集群中的各个节点处;并且92.所述arp控制管理模块和所述ovn弹性子网模块以pod形式部署在kubernetes集群中。93.(7)一种用于网络通信的方法,包括:94.动态接收来自开放虚拟机房交换机ovn模块的iptables规则和弹性子网podip绑定信息,并将所述iptables规则和所述弹性子网podip绑定信息上传至arp控制管理模块;95.在端口处侦听来自机房交换机的报文请求并对报文请求进行解析和校验;以及96.基于解析和校验后的报文请求中所包含的目的地址ip、所述iptables规则以及所述弹性子网podip绑定信息,检测与目的地址ip相符合的pod,并对报文请求进行应答,以告知机房交换机对应的通信链路。97.(8)一种用于网络通信的装置,包括:98.存储器,其上存储有指令;以及99.处理器,被配置为执行存储在所述存储器上的指令,以执行根据上述(1)至(6)中的任一项所述的方法。100.(9)一种计算机可读存储介质,包括计算机可执行指令,所述计算机可执行指令在由一个或多个处理器执行时,使得所述一个或多个处理器执行根据上述(1)至(6)中的任一项所述的方法。101.虽然已经通过示例对本公开的一些特定示例性实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。在此公开的各示例性实施例可以任意组合,而不脱离本公开的精神和范围。本领域的技术人员还应理解,可以对示例性实施例进行多种修改而不脱离本公开的范围和精神。本公开的范围由所附权利要求来限定。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献