CN111143034B - 一种控制网络数据转发平面的方法、装置及系统 - Google Patents
一种控制网络数据转发平面的方法、装置及系统 Download PDFInfo
- Publication number
- CN111143034B CN111143034B CN201911340923.0A CN201911340923A CN111143034B CN 111143034 B CN111143034 B CN 111143034B CN 201911340923 A CN201911340923 A CN 201911340923A CN 111143034 B CN111143034 B CN 111143034B
- Authority
- CN
- China
- Prior art keywords
- data
- data forwarding
- network
- software
- configuration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000012544 monitoring process Methods 0.000 claims abstract description 11
- 230000008569 process Effects 0.000 claims description 34
- 238000004891 communication Methods 0.000 claims description 24
- 230000002159 abnormal effect Effects 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 20
- 238000001514 detection method Methods 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 7
- 230000006978 adaptation Effects 0.000 description 4
- 244000035744 Hura crepitans Species 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003032 molecular docking Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种控制网络数据转发平面的方法、装置及系统,用于解决现有技术中存在的Kubernetes网络性能较差以及无法直接与虚拟机网络对接的技术问题。所述方法包括:监测Kubernetes的分布式键值对存储系统ETCD中配置数据的数据状态,若数据状态为有数据更新,则从ETCD中获取第一配置数据;判断第一配置数据与第二配置数据是否匹配,其中,第二配置数据为数据转发软件当前的配置数据,数据转发软件的网络数据转发平面用于将Kubernetes中的网络数据转发给Kubernetes中的容器或者Kubernetes外的虚拟机;若不匹配,则将第一配置数据发送给数据转发软件,完成对数据转发软件的配置更新。
Description
技术领域
本发明涉及网络数据转发应用技术领域,尤其涉及一种控制网络数据转发平面的方法、装置及系统。
背景技术
容器技术和服务器虚拟化技术都属于虚拟化技术,目标都是将一套应用程序所需的执行环境打包起来,建立一个孤立环境,方便在不同的硬件中移动,但两者的运作思维截然不同,简单来说,传统虚拟化技术如vSphere或Hyper-V是以操作系统为中心的虚拟化技术,而容器技术则是一种以应用程序为中心的虚拟化技术。传统虚拟化技术从操作系统OS层下手,目标是建立一个可以用来执行整套操作系统的沙盒独立执行环境,习惯以虚拟机来称呼。容器技术则是直接将一个应用程序所需的相关程序代码、函式库、环境配置文件都打包起来建立沙盒独立执行环境,容器技术产生的环境就称为容器。另外还有一个最大的区别是虚拟机的内核使用的是虚拟机内部的,和宿主机的是相互隔离的,但容器使用的内核是宿主机的,正是因为这个原因虚拟机在工作过程中会产生大量的系统调用导致系统性能降低,而容器就没有这个问题,但从安全性角度来分析,也是因为以上技术原因导致容器的安全性相比虚拟机安全性较低。
而随着虚拟化技术的发展,容器和虚拟机混合部署的场景越来越常见,现有技术中容器和虚拟机的网络一般都不兼容,而且性能较低,所以常采用容器管理平台Kubernetes实现容器与虚拟机的统一化网络管理,但由于Kubernetes默认对接容器的方案采用的是容器网络接口(Container Network Interface,CNI)方式,而CNI方式目前仅对容器网络的适配较好,对虚拟机网络的适配较弱。如果使用CNI方式对接容器网络或者虚拟机网络,会因为CNI一般都是经过Linux内核网络进行网络数据转发,从而造成网络性能下降,同时CNI方式需要另外的网络容器相互配合才能实现数通功能,可见现有技术中存在Kubernetes网络性能较差以及无法直接与虚拟机网络对接的问题。
发明内容
本申请实施例提供一种控制网络数据转发平面的方法、装置及系统,用于解决现有技术中存在的Kubernetes网络性能较差以及无法直接与虚拟机网络对接的技术问题。
第一方面,为解决上述技术问题,本申请实施例提供一种控制网络数据转发平面的方法,应用于容器管理平台Kubernetes,所述Kubernetes包括运行数据转发软件的容器,该方法的技术方案如下:
监测所述Kubernetes的分布式键值对存储系统ETCD中配置数据的数据状态,若数据状态为有数据更新,则从所述ETCD中获取第一配置数据;
判断所述第一配置数据与第二配置数据是否匹配,其中,所述第二配置数据为所述数据转发软件当前的配置数据,所述数据转发软件的网络数据转发平面用于将所述Kubernetes中的网络数据转发给所述Kubernetes中的容器或者所述Kubernetes外的虚拟机;
若不匹配,则将所述第一配置数据发送给所述数据转发软件,完成对所述数据转发软件的配置更新。
在本申请实施例中,可以通过监测Kubernetes的分布式键值对存储系统ETCD中的数据状态,若数据状态为有数据更新,则从ETCD中获取第一配置数据,判断第一配置数据与第二配置数据是否匹配,其中,第二配置数据为数据转发软件当前的配置数据,数据转发软件的网络数据转发平面用于将Kubernetes中的网络数据转发给Kubernetes中的容器或者Kubernetes外的虚拟机,若不匹配,则将第一配置数据发送给数据转发软件,完成对数据转发软件的配置更新,通过改善Kubernetes的网络架构,将数据转发软件的网络数据转发平面作为Kubernetes的网络数据转发平面,提升网络数据平面的稳定性、可靠性、数通能力和网络数据转发性能,并且让Kubernetes可以管理外界的虚拟机网络状态,实现容器和虚拟机共存的环境。
可选的,还包括:
将所述第一配置数据发送给所述数据转发软件之后的设定时间段,获取所述数据转发软件的第三配置数据,并检测所述数据转发软件的网络数据转发平面的运行状态;
若所述第三配置数据与所述第一配置数据不相匹配,或者,所述运行状态为异常,则将所述第一配置数据重新发送给所述数据转发软件。
可选的,检测所述数据转发软件的网络数据转发平面的运行状态,包括:
监测运行所述数据转发软件的容器的进程状态、所述数据转发软件的进程状态、所述数据转发软件的预设文件网络通信状态;
若所述数据转发软件容器的进程状态、所述数据转发软件的进程状态、及所述数据转发软件的预设文件网络通信状态中,任一状态异常,则确定所述数据转发软件的网络数据转发平面的运行状态为异常。
可选的,将所述第一配置数据发送给所述数据转发软件之后,还包括:
获取到需要转发到虚拟机的网络数据,将所述网络数据发送给所述数据转发软件,使得所述数据转发软件的网络数据转发平面通过虚拟机管理软件创建的网络端口将所述网络数据转发给虚拟机。
第二方面,提供一种控制网络数据转发平面的装置,应用于容器管理平台Kubernetes,所述Kubernetes包括运行数据转发软件的容器,包括:
获取模块,用于监测所述Kubernetes的分布式键值对存储系统ETCD中配置数据的数据状态,若数据状态为有数据更新,则从所述ETCD中获取第一配置数据;
判断模块,用于判断所述第一配置数据与第二配置数据是否匹配,其中,所述第二配置数据为所述数据转发软件当前的配置数据,所述数据转发软件的网络数据转发平面用于将所述Kubernetes中的网络数据转发给所述Kubernetes中的容器或者所述Kubernetes外的虚拟机;
处理模块,用于所述第一配置数据发送给所述数据转发软件,完成对所述数据转发软件的配置更新。
可选的,所述装置还包括:
检测模块,用于将所述第一配置数据发送给所述数据转发软件之后的设定时间段,获取所述数据转发软件的第三配置数据,并检测所述数据转发软件的网络数据转发平面的运行状态;
所述处理模块,还用于若所述第三配置数据与所述第一配置数据不相匹配,或者,所述运行状态为异常,则将所述第一配置数据重新发送给所述数据转发软件。
可选的,所述检测模块具体用于:
监测运行所述数据转发软件的容器的进程状态、所述数据转发软件的进程状态、所述数据转发软件的预设文件网络通信状态;
若所述数据转发软件容器的进程状态、所述数据转发软件的进程状态、及所述数据转发软件的预设文件网络通信状态中,任一状态异常,确定所述数据转发软件的网络数据转发平面的运行状态为异常。
可选的,所述装置包括:
所述处理模块,还用于获取到需要转发到虚拟机的网络数据,将所述网络数据发送给所述数据转发软件,使得所述数据转发软件的网络数据转发平面通过虚拟机管理软件创建的网络端口将所述网络数据转发给虚拟机。
第三方面,提供一种控制网络数据转发平面的系统,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行第一方面中的任一种实施方式包括的步骤。
第四方面,本申请实施例提供一种存储介质,该存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行第一方面中的任一种实施方式包括的步骤。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例。
图1为本申请实施例所提供的一种容器管理平台Kubernetes的结构示意图;
图2为本申请实施例所提供的控制网络数据转发平面的方法的流程示意图;
图3为本申请实施例所提供的控制网络数据转发平面的装置的结构示意图;
图4为本申请实施例中的控制网络数据转发平面的系统的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,能够以不同于此处的顺序执行所示出或描述的步骤。
本申请的说明书和权利要求书及上述附图中的术语“第一”和“第二”是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的保护。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例中,“至少一个”可以表示至少两个,例如可以是两个、三个或者更多个,本申请实施例不做限制。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,在不做特别说明的情况下,一般表示前后关联对象是一种“或”的关系。
目前,常采用容器管理平台Kubernetes实现容器与虚拟机的统一化网络管理,但由于Kubernetes默认对接容器的方案采用的是容器网络接口(Container NetworkInterface,CNI)方式,而CNI方式目前仅对容器网络的适配较好,对虚拟机网络的适配较弱。如果使用CNI方式对接容器网络或者虚拟机网络,会因为CNI一般都是经过Linux内核网络进行网络数据转发,从而造成网络性能下降,同时CNI方式需要另外的网络容器相互配合才能实现数通功能,可见现有技术中存在Kubernetes网络性能较差以及无法直接与虚拟机网络对接的问题。
鉴于此,本申请实施例提供一种控制网络数据转发平面的方法,该方法可以通过监测Kubernetes的分布式键值对存储系统ETCD中的数据状态,若数据状态为有数据更新,则从ETCD中获取第一配置数据,判断第一配置数据与第二配置数据是否匹配,其中,第二配置数据为数据转发软件当前的配置数据,数据转发软件的网络数据转发平面用于将Kubernetes中的网络数据转发给Kubernetes中的容器或者Kubernetes外的虚拟机,若不匹配,则将第一配置数据发送给数据转发软件,完成对数据转发软件的配置更新,通过改善Kubernetes的网络架构,将数据转发软件的网络数据转发平面作为Kubernetes的网络数据转发平面,提升网络数据平面的稳定性、可靠性、数通能力和网络数据转发性能,并且让Kubernetes可以管理外界的虚拟机网络状态,实现容器和虚拟机共存的环境。
为了更好的理解上述技术方案,下面通过说明书附图以及具体实施例对本申请技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。
图1为本申请实施例所提供方法可适用的一种容器管理平台Kubernetes的结构,Kubernetes简称K8S,它用于管理云平台中多个主机上的容器的应用,使用Kubernetes可以让部署容器化的应用简单并且高效。当然本申请实施例所提供的方法可以适用到多种Kubernetes上,应当理解图1所示的Kubernetes是对可适用本申请实施例所提供方法的Kubernetes的简单的说明,而不是对可适用本申请实施例所提供方法的Kubernetes的限定。
图1所示的Kubernetes包括硬件模块HardWare、内核Kernel、应用容器引擎Docker、容器网络接口(Container Network Interface,CNI)、数据平面转发套件(DataPlane Development Kit,DPDK)、数据转发软件(Vector Packet Processor,VPP)等组件,其中,DPDK与VPP是本申请实施例在Kubernetes原生网络架构新增的两个组件。
DPDK是由多家公司开发,主要基于Linux系统运行,用于快速数据包处理的函数库与驱动集合,使用DPDK可以极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率,相比Kubernetes原生网络架构,DPDK通过CNI使用Linux网络协议栈创建两个互通的网络接口,一个接入Linux网络协议栈,另外一个接入容器,打通容器和协议栈的网络,从而通过协议栈转发容器的网络数据包的方式,而DPDK把宿主机(承载物理网卡的机器,可以是电脑)“/sys/bus/pci/devices”目录挂载到运行数据转发软件的容器中,即把宿主机物理接口接入VPP,然后可以直接从物理网卡收发网络数据包,减少了Linux网络协议栈漫长的处理流程,极大提升了网络数据包收发效率。
VPP是一种高性能网络数据转发软件,用于处理网络数据包业务,VPP是基于向量的方法处理网络数据包,同时也因为VPP代码框架的特点进一步升级了网络数据包转发效率。另外VPP对外提供了vhost-user、veth等网络接口,容器或者虚拟机的网络可以直接加入到VPP,相比Kubernetes原生网络架构,本申请实施例在原有Kubernetes基础上使用Kubernetes的自定义资源定义(Custom Resource Definition,CRD)功能添加VPP控制器到Kubernetes平台,让VPP成为Kubernetes平台中的一种网络资源,可通过Kubernetes控制VPP的行为,如配置网络接口类型、配置路由等,也可以创建网络接口,如vhost-user、veth等提供给虚拟机或者容器使用,提供丰富的数通能力。
请参见图2,为申请实施例提供的一种控制网络数据转发平面的方法,该方法可以由前述图1所示的容器管理平台Kubernetes执行。该方法的具体流程描述如下。
步骤201:监测Kubernetes的分布式键值对存储系统ETCD中配置数据的数据状态,若数据状态为有数据更新,则从ETCD中获取第一配置数据。
在本申请实施例中,使用Kubernetes的CRD功能监测Kubernetes的分布式键值对存储系统ETCD中配置数据的数据状态,其中,CRD主要由三个模块构成:通知器、工作队列和控制循环,通知器监听ETCD中配置数据的数据状态,若数据状态为有数据更新,就将更新的配置数据保存到本地缓存,然后再同步到工作队列,控制循环从工作队列中获取更新的配置数据,即第一配置数据。
步骤202:判断第一配置数据与第二配置数据是否匹配。
在本申请实施例中,判断第一配置数据与第二配置数据是否匹配,其中,第二配置数据为数据转发软件当前的配置数据,配置数据用于配置数据转发软件的网络接口类型、路由等,使得数据转发软件的网络数据转发平面将Kubernetes中的网络数据转发给Kubernetes中的容器或者Kubernetes外的虚拟机。
步骤203:若不匹配,则将第一配置数据发送给数据转发软件,完成对数据转发软件的配置更新。
在本申请实施例中,若确定第一配置数据与第二配置数据不相匹配,则说明,数据转发软件当前的配置数据并不是最新的配置数据,或者,不是完整的配置数据,需将第一配置数据发送给数据转发软件,从而完成对数据转发软件的配置更新,根据新配置的数据转发软件的网络接口类型、路由等,使得数据转发软件的网络数据转发平面可以将Kubernetes中的网络数据转发给Kubernetes中的容器或者Kubernetes外的虚拟机。
将第一配置数据发送给数据转发软件之后,可能存在数据转发软件根据第一配置数据进行配置更新时出现异常的问题,基于该问题,在本申请实施例中,可在将第一配置数据发送给数据转发软件之后的设定时间段,获取数据转发软件的第三配置数据,并检测数据转发软件的网络数据转发平面的运行状态,若第三配置数据与第一配置数据不相匹配,或者,运行状态为异常,则说明数据转发软件当前的配置数据不是刚刚下发的第一配置数据,在下发第一配置数据给数据转发软件的过程中可能出现第一配置数据的部分数据遗失的情况,或者,数据转发软件成功接收到了第一配置数据,但在根据第一配置数据进行配置更新时出现异常,无法正常工作,所以需将第一配置数据重新发送给数据转发软件。
在具体的实施过程中,检测数据转发软件的网络数据转发平面的运行状态,可通过监测运行数据转发软件的容器的进程状态、数据转发软件的进程状态、数据转发软件的预设文件网络通信状态,如监测运行数据转发软件的容器的进程状态、数据转发软件的进程状态时可使用Linux命令ps直接检测进程是否正常,监测据转发软件的预设文件网络通信状态时,因数据转发软件的预设文件为Socket文件,则数据转发软件的预设文件网络通信状态可使用UNIX Socket与VPP发起请求查看是否能正常响应请求来判断通信是否正常,若数据转发软件容器的进程状态、数据转发软件的进程状态、及数据转发软件的预设文件网络通信状态中,以上三项中的任一项异常,则确定数据转发软件的网络数据转发平面的运行状态为异常。
将第一配置数据发送给数据转发软件之后,或者确定数据转发软件根据第一配置数据进行配置更新时出现异常,将第一配置数据重新发送给数据转发软件之后,可获取到需要转发到虚拟机的网络数据,将网络数据发送给数据转发软件,数据转发软件与虚拟机可通过虚拟机管理软件创建的网络端口建立网络通道,使得数据转发软件的网络数据转发平面通过虚拟机管理软件创建的网络端口将网络数据转发给虚拟机,其中,虚拟机管理软件创建的网络端口可为vhost-user和veth,若虚拟机支持vhost-user接口,则可以通过vhost-user接口连接VPP,实现高效的网络通道,若虚拟机不支持vhost-user接口,则可以使用veth方式加入peer接口,通过peer接口连接VPP,实现高效的网络通道。可见本申请实施例通过将数据转发软件的网络数据转发平面作为Kubernetes的网络数据转发平面,提升网络数据平面的稳定性、可靠性、数通能力和网络数据转发性能,并且让Kubernetes可以管理外界的虚拟机网络状态,实现容器和虚拟机共存的环境。
基于同一发明构思,本申请实施例提供一种控制网络数据转发平面的装置,该控制网络数据转发平面的装置能够实现前述的控制网络数据转发平面的方法对应的功能。该控制网络数据转发平面的装置可以是硬件结构、软件模块、或硬件结构加软件模块。该控制网络数据转发平面的装置可以由芯片系统实现,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。请参见图3所示,该控制网络数据转发平面的装置包括获取模块301、判断模块302、处理模块303,其中:
获取模块301,用于监测所述Kubernetes的分布式键值对存储系统ETCD中配置数据的数据状态,若数据状态为有数据更新,则从所述ETCD中获取第一配置数据
判断模块302,用于判断所述第一配置数据与第二配置数据是否匹配,其中,所述第二配置数据为所述数据转发软件当前的配置数据,所述数据转发软件的网络数据转发平面用于将所述Kubernetes中的网络数据转发给所述Kubernetes中的容器或者所述Kubernetes外的虚拟机;
处理模块303,用于所述第一配置数据发送给所述数据转发软件,完成对所述数据转发软件的配置更新。
可选的,所述装置还包括:
检测模块,用于将所述第一配置数据发送给所述数据转发软件之后的设定时间段,获取所述数据转发软件的第三配置数据,并检测所述数据转发软件的网络数据转发平面的运行状态;
所述处理模块303,还用于若所述第三配置数据与所述第一配置数据不相匹配,或者,所述运行状态为异常,则将所述第一配置数据重新发送给所述数据转发软件。
可选的,所述检测模块具体用于:
监测运行所述数据转发软件的容器的进程状态、所述数据转发软件的进程状态、所述数据转发软件的预设文件网络通信状态;
若所述数据转发软件容器的进程状态、所述数据转发软件的进程状态、及所述数据转发软件的预设文件网络通信状态中,任一状态异常,确定所述数据转发软件的网络数据转发平面的运行状态为异常。
可选的,所述装置还包括:
所述处理模块303,还用于获取到需要转发到虚拟机的网络数据,将所述网络数据发送给所述数据转发软件,使得所述数据转发软件的网络数据转发平面通过虚拟机管理软件创建的网络端口将所述网络数据转发给虚拟机。
基于同一发明构思,本申请实施例提供一种控制网络数据转发平面的系统,请参见图4所述,该控制网络数据转发平面的系统包括至少一个处理器402,以及与至少一个处理器连接的存储器401,本申请实施例中不限定处理器402与存储器401之间的具体连接介质,图4是以处理器402和存储器401之间通过总线400连接为例,总线400在图4中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不以此为限。总线400可以分为地址总线、数据总线、控制总线等,为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请实施例中,存储器401存储有可被至少一个处理器402执行的指令,至少一个处理器402通过调用存储器401存储的指令,可以执行前述的控制网络数据转发平面的方法中所包括的步骤。其中,处理器402是控制网络数据转发平面的系统的控制中心,可以利用各种接口和线路连接整个控制网络数据转发平面的系统的各个部分,通过执行存储在存储器401内的指令,从而实现控制网络数据转发平面的系统的各种功能。可选的,处理器402可包括一个或多个处理单元,处理器402可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器402中。在一些实施例中,处理器402和存储器401可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
存储器401作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器401可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器401是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器401还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
处理器402可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的控制网络数据转发平面的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
通过对处理器402进行设计编程,可以将前述实施例中介绍的控制网络数据转发平面的方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行前述的控制网络数据转发平面的方法的步骤,如何对处理器402进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
基于同一发明构思,本申请实施例还提供一种存储介质,该存储介质存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行如前述的控制网络数据转发平面的方法的步骤。
在一些可能的实施方式中,本申请提供的控制网络数据转发平面的方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在控制网络数据转发平面的系统上运行时,程序代码用于使该控制网络数据转发平面的系统执行本说明书上述描述的根据本申请各种示例性实施方式的控制网络数据转发平面的方法中的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (8)
1.一种控制网络数据转发平面的方法,其特征在于,应用于容器管理平台Kubernetes,所述Kubernetes包括运行数据转发软件VPP的容器,包括:
使用所述Kubernetes的自定义资源定义CRD功能中的通知器监测所述Kubernetes的分布式键值对存储系统ETCD中配置数据的数据状态,若数据状态为有数据更新,将配置数据同步到所述CRD中的工作队列,则基于所述CRD中的控制循环从所述ETCD中获取第一配置数据;
判断所述第一配置数据与第二配置数据是否匹配,其中,所述第二配置数据为所述数据转发软件当前的配置数据,所述数据转发软件的网络数据转发平面用于将所述Kubernetes中的网络数据转发给所述Kubernetes中的容器或者所述Kubernetes外的虚拟机;所述配置数据用于配置数据转发软件的网络接口类型、路由;
若不匹配,则将所述第一配置数据发送给所述数据转发软件,完成对所述数据转发软件的配置更新;
将所述第一配置数据发送给所述数据转发软件之后的设定时间段,获取所述数据转发软件的第三配置数据,并检测所述数据转发软件的网络数据转发平面的运行状态;
若所述第三配置数据与所述第一配置数据不相匹配,或者,所述运行状态为异常,则将所述第一配置数据重新发送给所述数据转发软件。
2.如权利要求1所述的方法,其特征在于,检测所述数据转发软件的网络数据转发平面的运行状态,包括:
监测运行所述数据转发软件的容器的进程状态、所述数据转发软件的进程状态、所述数据转发软件的预设文件网络通信状态;
若所述数据转发软件容器的进程状态、所述数据转发软件的进程状态、及所述数据转发软件的预设文件网络通信状态中,任一状态异常,则确定所述数据转发软件的网络数据转发平面的运行状态为异常。
3.如权利要求1所述的方法,其特征在于,将所述第一配置数据发送给所述数据转发软件之后,还包括:
获取到需要转发到虚拟机的网络数据,将所述网络数据发送给所述数据转发软件,使得所述数据转发软件的网络数据转发平面通过虚拟机管理软件创建的网络端口将所述网络数据转发给虚拟机。
4.一种控制网络数据转发平面的装置,其特征在于,应用于容器管理平台Kubernetes,所述Kubernetes包括运行数据转发软件VPP的容器,包括:
获取模块,用于使用所述Kubernetes的自定义资源定义CRD功能中的通知器监测所述Kubernetes的分布式键值对存储系统ETCD中配置数据的数据状态,若数据状态为有数据更新,将配置数据同步到所述CRD中的工作队列,则基于所述CRD中的控制循环从所述ETCD中获取第一配置数据
判断模块,用于判断所述第一配置数据与第二配置数据是否匹配,其中,所述第二配置数据为所述数据转发软件当前的配置数据,所述数据转发软件的网络数据转发平面用于将所述Kubernetes中的网络数据转发给所述Kubernetes中的容器或者所述Kubernetes外的虚拟机;所述配置数据用于配置数据转发软件的网络接口类型、路由;
处理模块,用于所述第一配置数据发送给所述数据转发软件,完成对所述数据转发软件的配置更新;
检测模块,用于将所述第一配置数据发送给所述数据转发软件之后的设定时间段,获取所述数据转发软件的第三配置数据,并检测所述数据转发软件的网络数据转发平面的运行状态;
所述处理模块,还用于若所述第三配置数据与所述第一配置数据不相匹配,或者,所述运行状态为异常,则将所述第一配置数据重新发送给所述数据转发软件。
5.如权利要求4所述的装置,其特征在于,所述检测模块具体用于:
监测运行所述数据转发软件的容器的进程状态、所述数据转发软件的进程状态、所述数据转发软件的预设文件网络通信状态;
若所述数据转发软件容器的进程状态、所述数据转发软件的进程状态、及所述数据转发软件的预设文件网络通信状态中,任一状态异常,确定所述数据转发软件的网络数据转发平面的运行状态为异常。
6.如权利要求4所述的装置,其特征在于,包括:
所述处理模块,还用于获取到需要转发到虚拟机的网络数据,将所述网络数据发送给所述数据转发软件,使得所述数据转发软件的网络数据转发平面通过虚拟机管理软件创建的网络端口将所述网络数据转发给虚拟机。
7.一种控制网络数据转发平面的系统,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行权利要求1-3任一项所述的方法包括的步骤。
8.一种存储介质,其特征在于,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行权利要求1-3任一项所述的方法包括的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911340923.0A CN111143034B (zh) | 2019-12-23 | 2019-12-23 | 一种控制网络数据转发平面的方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911340923.0A CN111143034B (zh) | 2019-12-23 | 2019-12-23 | 一种控制网络数据转发平面的方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111143034A CN111143034A (zh) | 2020-05-12 |
CN111143034B true CN111143034B (zh) | 2023-11-14 |
Family
ID=70519509
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911340923.0A Active CN111143034B (zh) | 2019-12-23 | 2019-12-23 | 一种控制网络数据转发平面的方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111143034B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111901244B (zh) * | 2020-07-10 | 2022-12-30 | 苏州浪潮智能科技有限公司 | 一种网络报文转发系统 |
CN111740869B (zh) * | 2020-08-19 | 2021-01-08 | 广东省新一代通信与网络创新研究院 | 基于物理网卡的kubernetes网络实现方法、系统、设备及介质 |
CN112565047B (zh) * | 2020-11-19 | 2022-03-04 | 浪潮思科网络科技有限公司 | 一种在docker中使用VPP构建网络的方法、装置、设备及介质 |
CN115379010B (zh) * | 2022-08-15 | 2024-04-26 | 杭州安恒信息技术股份有限公司 | 一种容器网络构建方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107613040A (zh) * | 2017-09-22 | 2018-01-19 | 北京京东尚科信息技术有限公司 | 一种域名系统 dns 服务器查询的方法和装置 |
CN110351149A (zh) * | 2019-07-26 | 2019-10-18 | 北京神州绿盟信息安全科技股份有限公司 | 一种维护网络数据转发平面的方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10567441B2 (en) * | 2018-01-14 | 2020-02-18 | Cisco Technology, Inc. | Distributed security system |
US20190207853A1 (en) * | 2019-03-07 | 2019-07-04 | Intel Corporation | Selection of inputs for lookup operations |
-
2019
- 2019-12-23 CN CN201911340923.0A patent/CN111143034B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107613040A (zh) * | 2017-09-22 | 2018-01-19 | 北京京东尚科信息技术有限公司 | 一种域名系统 dns 服务器查询的方法和装置 |
CN110351149A (zh) * | 2019-07-26 | 2019-10-18 | 北京神州绿盟信息安全科技股份有限公司 | 一种维护网络数据转发平面的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111143034A (zh) | 2020-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111143034B (zh) | 一种控制网络数据转发平面的方法、装置及系统 | |
US11960915B2 (en) | Method and apparatus for creating virtual machine based on parameter information of a virtual network interface card | |
CN107769949B (zh) | 一种应用组件部署方法及部署节点 | |
CN109074330A (zh) | 网络接口卡、计算设备以及数据包处理方法 | |
US20240111549A1 (en) | Method and apparatus for constructing android running environment | |
WO2012177359A2 (en) | Native cloud computing via network segmentation | |
CN109688191B (zh) | 流量调度方法及通信装置 | |
CN109391514B (zh) | 基于高可用性的设备部署方法、服务器、存储介质及装置 | |
US9921878B1 (en) | Singleton coordination in an actor-based system | |
CN107534577B (zh) | 一种网络业务实例化的方法及设备 | |
CN111143031A (zh) | 一种虚拟机的容量更改方法及装置 | |
KR102684903B1 (ko) | 네트워크 작업 방법, 장치, 설비 및 저장매체 | |
US20170279676A1 (en) | Topology-based virtual switching model with pluggable flow management protocols | |
CN110795209B (zh) | 一种控制方法和装置 | |
US20230367648A1 (en) | Edge Computing Method and System, Edge Device and Control Server | |
CN107360015B (zh) | 切换共享存储的方法和设备 | |
US12137155B2 (en) | Analyzing network data for debugging, performance, and identifying protocol violations using parallel multi-threaded processing | |
CN112015515B (zh) | 一种虚拟网络功能的实例化方法及装置 | |
US20210149577A1 (en) | Migration of storage for workloads between desktop and cloud environments | |
US10469374B2 (en) | Multiple provider framework for virtual switch data planes and data plane migration | |
US9348672B1 (en) | Singleton coordination in an actor-based system | |
CN109656674A (zh) | 一种计算机设备、虚拟化芯片及数据传输方法 | |
US10133496B1 (en) | Bindable state maintaining components | |
US20240356851A1 (en) | Disaggregation of network services to hardware-based network devices in software defined networks | |
EP4319084A1 (en) | Method and apparatus for deploying container service |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building Applicant after: NSFOCUS Technologies Group Co.,Ltd. Applicant after: NSFOCUS TECHNOLOGIES Inc. Address before: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building Applicant before: NSFOCUS INFORMATION TECHNOLOGY Co.,Ltd. Applicant before: NSFOCUS TECHNOLOGIES Inc. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |