CN109743261B - 一种基于sdn的容器网络资源调度方法 - Google Patents

一种基于sdn的容器网络资源调度方法 Download PDF

Info

Publication number
CN109743261B
CN109743261B CN201910013572.6A CN201910013572A CN109743261B CN 109743261 B CN109743261 B CN 109743261B CN 201910013572 A CN201910013572 A CN 201910013572A CN 109743261 B CN109743261 B CN 109743261B
Authority
CN
China
Prior art keywords
network
container
sdn
centralized control
resource
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
Application number
CN201910013572.6A
Other languages
English (en)
Other versions
CN109743261A (zh
Inventor
王承松
郦苏丹
邓文平
陈红艳
王宏
彭伟
唐竹
汪泉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201910013572.6A priority Critical patent/CN109743261B/zh
Publication of CN109743261A publication Critical patent/CN109743261A/zh
Application granted granted Critical
Publication of CN109743261B publication Critical patent/CN109743261B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

针对现有技术无法根据容器网络的需求进行资源切分与保障的问题,本发明提供一种基于SDN的容器网络资源调度方法,包括以下步骤:第一步,基于SDN/NFV技术进行网络软硬件资源统一抽象与描述;第二步,对容器网络实施资源分配与回收,将资源整合成资源池,组建并管理网络地址资源池和网络设备资源池,按需提供网络设备资源,网络销毁时及时回收网络设备资源;第三步,基于SDN集中控制的思想,在容器网内部署集中控制服务器,实施网络态势感知与路由一体化。本发明通过集中感知网络态势,结合任务的需求对容器网络资源进行合理切分与回收,构建集“组网、路由、监控”一体化的网络资源调度方法,从而实现容器网络资源的优化调度。

Description

一种基于SDN的容器网络资源调度方法
技术领域
本发明涉及计算机网络领域,特别是涉及一种基于SDN(Software DefinedNetwork,软件定义网络)的容器网络资源调度方法,可应用容器组网和网络资源调度中。
技术背景
目前容器集群的资源调度相关研究主要包括两个方面:Docker自身提供的资源限制功能以及容器集群管理平台提供的资源限制功能。Docker作为容器的管理者,提供了控制容器资源的功能。正如使用内核的namespace进行容器之间的隔离,Docker也是通过内核的cgroups来做容器的资源限制,主要包括CPU、内存和I/O。Docker本身并没有给出网络限制方案,因为目前网络是通过插件来实现,和容器本身的功能相对独立,不易实现,扩展性也很差。提供资源限制功能的容器集群管理平台主要有Kubernetes。在Kubernetes中,每个pod都有个资源调度标记,通过这个资源调度标记来对pod进行服务质量管理。在Kubernetes中,pod的资源调度级别有三种:Guaranteed(保障)、Burstable(突出)与Best-Effort(尽力转发)。
相关研究主要集中在CPU、内存、磁盘和I/O等资源的资源调度,对容器网络的资源调度研究较少,也没有成熟的商业应用。特别需要指出的是,传统IP网络的资源调度技术虽然在理论和实践上相对来说比较成熟,但是与容器网络结合还有待进一步研究。
近年来,SDN技术的出现使得我们在网络配置、管理、监控方面有了更大的灵活性。作为一种新型的网络架构,SDN基于网络抽象的思想,将网络中的控制层和数据层分离开来,提供对分布式网络的集中管理和动态维护能力,从而有效解决传统IP网络在维护、扩展和实验创新上的弊端。SDN网络主要包含应用、控制和数据这3个层面:控制层将网络各节点的控制功能从逻辑上集中;应用层利用控制层提供的可编程接口实现各种网络应用;数据层负责进行数据流的转发。利用SDN控制器维护的全局视图反映网络中各路径的使用情况,流量可以据此进行动态的转发以实现负载的均衡。
因此,依据现有的容器组网框架,将SDN思想引入到容器资源调度为容器网络资源调度提供了新的思路。
发明内容
针对现有技术无法根据容器网络的需求进行资源切分与保障的问题,引入SDN集中控制的思想,提出一种基于SDN的容器网络资源调度方法。本发明将网络软硬件资源统一抽象与描述,通过集中感知网络态势,结合任务的需求对容器网络资源进行合理切分与回收,构建集“组网、路由、监控”一体化的网络资源调度方法,从而实现容器网络资源的优化调度。
具体技术方案如下:
一种基于SDN的容器网络资源调度方法,包括以下步骤:
第一步,基于SDN/NFV(Network Function Virtualization,网络功能虚拟化)技术进行网络软硬件资源统一抽象与描述;
第二步,对容器网络实施资源分配与回收。将资源整合成资源池,组建并管理网络地址资源池和网络设备资源池,按需提供网络设备资源,网络销毁时及时回收网络设备资源;
第三步,基于SDN集中控制的思想,在容器网内部署集中控制服务器,实施网络态势感知与路由一体化。
作为本发明技术方案的进一步改进,所述第一步基于SDN/NFV技术进行网络软硬件资源统一抽象与描述,具体方法如下:
1.1对网络设备功能进行抽象,利用SDN对网络的行为进行集中编程控制,利用NFV进行软硬件解耦和功能抽象,使网络设备不再依赖于专用硬件,资源可以充分灵活共享。
1.2对网络服务最小单元进行抽象,基于网络设备功能的抽象,设计可编排的最小单元作为网络服务单元(网络对象),包含设备(虚拟/物理)、端口Port(虚拟/物理)、链路Link(End-End link,Net-Net link,End-Net link)、网络Network(L2/L3/flow-based)、IP服务(DHCP/DNS/NAT)、安全服务(FW/LB/IPS)。
1.3根据容器网络组网方案的实现手段、网络特点等对网络组网方案进行抽象。将容器跨主机组网方案抽象为以下几种:(1)基于隧道的overlay网络,按隧道类型不同,采用不同的实现方案。如Docker原生的overlay网络就是基于VxLAN隧道实现的,ovn则需要通过geneve或者stt隧道来实现的,flannel最新版本也开始默认基于VxLAN实现overlay网络;(2)基于包封装的overlay网络,基于UDP封装等数据包包装方式,在docker集群上实现跨主机网络;(3)基于三层实现SDN网络,基于三层协议和路由,直接在三层上实现跨主机网络,并且通过iptables实现网络的安全隔离。
作为本发明技术方案的进一步改进,所述第二步对容器网络实施资源分配与回收,具体方法如下:
2.1根据软硬件资源抽象的结果将容器网络资源整合成网络地址资源池和网络设备资源池;
2.2为网络服务单元静态分配网络资源,包括IP地址和网络设备的静态分配。
2.3对网络资源进行动态调整,一方面根据配置信息自动对各容器网络分配和回收子网地址池,以及分配和回收容器IP地址,另一方面采用一致性算法确保集群内网络服务单元状态信息的一致性。在此基础上实现容器网络集群对网络设备动态的增加、删除和修改。具体方法为:
2.3.1对IP地址进行动态调整,当Kubernetes发出需要添加Pod的请求时,返回步骤2.2;当Kubernetes发出需要删除Pod的请求时,则进行Pod网络的清理工作,系统调用server/connection.go中的deleteConnection函数:首先删除之前创建的端口,然后再释放原来的IP供网络中的新Pod使用。删除操作不需要进入容器网络namespace,在主机网络namespace即可完成。
2.3.2对网络设备进行动态调整,所有网络服务单元首先运行控制代理,控制代理将对网络服务单元进行操作监听和服务发现,获取集群中任何网络服务单元的保活信息,并采用一致性算法确保集群内网络服务单元状态信息的一致性。在此基础上实现容器网络集群对网络服务单元动态的增加、删除、查询和标签值修改。
作为本发明技术方案的进一步改进,所述第三步实施网络态势感知与路由有一体化,具体方法如下:
3.1网络态势感知。通过转发层的感知模块探测网络拓扑,感知底层网络拓扑变化和流量情况,在控制面通过集中控制数据库维护一个整网的拓扑视图。同时监控网络状态,如拥塞等异常情况,并提供网路感知信息获取接口,为容器网络资源调度提供必要参考和依据。
3.2集中控制服务器基于linux cgroup技术对全局链路状态信息和各节点的路由信息进行分析后统一进行调度和路由优化控制,形成全局的网络资源控制策略,下发到各路由节点的控制代理,最终回注到节点,实现在全网范围内的最优网络资源调度效果。
3.3集中控制服务器对容器网络状态进行持续性跟踪评估。
作为本发明技术方案的进一步改进,所述步骤2.2为网络服务单元静态分配网络资源,具体流程如下:
2.2.1利用容器云平台Kubemetes创建Pod的infra容器;
2.2.2infra容器创建成功后,创建一个端口,将端口放入infra容器网络的namespace内,并对该端口进行网络配置;
2.2.3Kubemetes创建自定义网络类型并指定网段,然后以json格式将具体的网络配置信息封装在Request Body中;
2.2.4在自定义的网段中利用Request Body中的requestIP参数指定固定IP地址给Pod使用,如果requestIP参数留空,转2.2.5;
2.2.5Kubemetes自动选择合适的IP即网络中未使用的最小IP给Pod使用;
2.2.6启用完成IP地址配置的端口,Pod未来将使用它作为对外通信的网络接口;
2.2.7切换回主机网络的namespace,如果网络设置成功,则向Kubemetes返回0(设置正常),否则返回1(设置失败),并继续等待下一次设置容器网络的请求。
作为本发明技术方案的进一步改进,所述步骤3.1网络态势感知,具体方法为:
3.1.1基于SDN的集中控制思想,在容器网内部署一台集中控制服务器,在每台物理服务器节点上部署控制代理;
3.1.2通过控制代理从节点内部获取链路状态信息和路由信息;
3.1.3控制代理端采用TCP协议通过网络套接字(Network Socket)将采集到的信息发送给集中控制服务器;
3.1.4集中控制服务器对控制代理发送过来的原始数据进行汇总,分析整合后存储到集中控制数据库,形成全局视图。
作为本发明技术方案的进一步改进,所述步骤3.2具体流程如下:
3.2.1集中控制服务器对全局链路状态信息和各节点的路由信息进行分析,对集群中主机的网络资源利用率和业务容器的负载进行统计;
3.2.2集中控制服务器根据主机网络资源利用率的统计结果和每个容器所在的位置,计算每两个容器之间的最佳路径,实施基于容器迁移的负载均衡;
3.2.3集中控制服务器根据业务容器负载的统计结果采用net_prio对容器网络流量进行分级,根据容器节点运行业务的优先级设置相应数据分组的优先级,其中,net_prio是cgroup中的网络优先权子系统,可以为各个cgroup中的应用程序动态配置每个网络接口的流量优先级;
3.2.4集中控制服务器根据容器业务负载情况和net_prio划分的容器网络流量优先级对容器网络资源进行动态调度,给负载较重的容器节点增加网络带宽;
3.2.5集中控制服务器采用net_cls对容器发送的所有数据加上标签,然后使用traffic controller(流量控制器)根据数据包上的标签进行流量控制,限制容器所使用的网络带宽,其中net_cls用于cgroup中给报文打上分类等级的标签,用于过滤分类。
作为本发明技术方案的进一步改进,所述步骤3.3集中控制服务器对容器网络状态进行持续性跟踪评估,具体方法为:
3.3.1控制代理定期查询每个容器发送及接收的网络数据量;
3.3.2控制代理统计同期使用网络的信息,并将这些信息通过网络套接字(Network Socket)暴露出来供集中控制服务器使用;
3.3.3集中控制服务器对资源调整前后网络的运行情况进行对比分析,如果出现网络拥塞或运行故障时则执行回滚操作,否则,转3.3.1。
采用本发明提供的技术方案可以达到以下技术效果:
1.本发明第一步,基于SDN/NFV技术对容器网络进行软硬件资源进行抽象,SDN结合NFV通过标准的南向接口屏蔽了底层物理转发设备的差异,实现了网络资源的虚拟化,同时开放了灵活的北向接口供上层业务按需进行网络配置并调用网络资源。
2.本发明第二步在步骤2.1,通过将容器网络资源整合成资源池,可实现灵活、弹性的资源部署,提高资源利用率。
3.本发明第二步在步骤2.2和步骤2.3,通过静态分配与动态调整相结合的方式,能够实现按需提供网络资源,并在网络设备销毁时及时回收网络资源。
4.本发明第三步,通过部署集中控制服务器,实现对容器网络的全局监控和路由优化,并实现对网络资源长期的优化调度。
附图说明
图1是本发明中基于SDN的网络资源调度方法框架图;
图2是本发明中网络设备功能抽象示意图;
图3是本发明中网络资源分配与回收流程图;
图4是本发明中网络态势感知与路由一体化流程图;
图5是本发明中容器迁移流程图。
具体实施方式
以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
如图1所示,本发明提供一种基于SDN的容器网络资源调度方法,包括以下步骤:
第一步,基于SDN/NFV技术进行网络软硬件资源统一抽象与描述。具体方法为:
S101:结合图2,对网络设备功能进行抽象,利用SDN对网络的行为进行集中编程控制,利用NFV进行软硬件解耦和功能抽象,使网络设备不再依赖于专用硬件,资源可以充分灵活共享。
S102:对网络服务最小单元进行抽象,基于网络设备功能的抽象,设计可编排的最小单元作为网络服务单元(网络对象),包含设备(虚拟/物理)、端口Port(虚拟/物理)、链路Link(End-End link,Net-Net link,End-Net link)、网络Network(L2/L3/flow-based)、IP服务(DHCP/DNS/NAT)、安全服务(FW/LB/IPS)。
S103:根据容器网络组网方案的实现手段、网络特点等对网络组网方案进行抽象。将容器跨主机组网方案抽象为以下几种:(1)基于隧道的overlay网络,按隧道类型不同,采用不同的实现方案。如Docker原生的overlay网络就是基于VxLAN隧道实现的,ovn则需要通过geneve或者stt隧道来实现的,flannel最新版本也开始默认基于VxLAN实现overlay网络;(2)基于包封装的overlay网络,基于UDP封装等数据包包装方式,在docker集群上实现跨主机网络;(3)基于三层实现SDN网络,基于三层协议和路由,直接在三层上实现跨主机网络,并且通过iptables实现网络的安全隔离。
第二步,对容器网络实施资源分配与回收。将资源整合成资源池,组建并管理网络地址资源池和网络设备资源池,按需提供网络设备资源,网络销毁时及时回收网络设备资源。如图3所示,具体流程为:
S201:根据软硬件资源抽象的结果将容器网络资源整合成网络地址资源池和网络设备资源池;
S202:为网络服务单元静态分配网络资源,包括IP地址和网络设备的静态分配。具体方法如下:
S202.1:利用容器云平台Kubemetes创建Pod的infra容器;
S202.2:infra容器创建成功后,创建一个端口,将端口放入infra容器网络的namespace内,并对该端口进行网络配置;
S202.3:Kubemetes创建自定义网络类型并指定网段,然后以json格式将具体的网络配置信息封装在Request Body中;
S202.4:在自定义的网段中利用Request Body中的requestIP参数指定固定IP地址给pod使用,如果requestlP参数留空,转S202.5;
S202.5:Kubemetes自动选择合适的IP即网络中未使用的最小IP给Pod使用;
S202.6:启用完成IP地址配置的端口,Pod未来将使用它作为对外通信的网络接口;
S202.7:切换回主机网络的namespace,如果网络设置成功,则向Kubemetes返回0(设置正常),否则返回1(设置失败),并继续等待下一次设置容器网络的请求。
S203:对网络资源进行动态调整,一方面根据配置信息自动对各容器网络分配和回收子网地址池,以及分配和回收容器IP地址,另一方面采用一致性算法确保集群内网络服务单元状态信息的一致性。在此基础上实现容器网络集群对网络设备动态的增加、删除和修改。具体方法为:
S203.1:对IP地址进行动态调整,当Kubernetes发出需要添加Pod的请求时,返回S202;当Kubernetes发出需要删除Pod的请求时,则进行Pod网络的清理工作,系统调用server/connection.go中的deleteConnection函数。首先删除之前创建的端口,然后再释放原来的IP供网络中的新Pod使用。删除操作不需要进入容器网络namespace,在主机网络namespace即可完成。
S203.2:对网络设备进行动态调整,所有网络服务单元首先运行控制代理,控制代理将对网络服务单元进行操作监听和服务发现,获取集群中任何网络服务单元的保活信息,并采用一致性算法确保集群内网络服务单元状态信息的一致性。在此基础上实现容器网络集群对网络服务单元动态的增加、删除、查询和标签值修改。
第三步,基于SDN集中控制的思想,在容器网内部署集中控制服务器,实施网络态势感知与路由一体化。如图4所示,具体流程为:
S301:网络态势感知。通过转发层的感知模块探测网络拓扑,感知底层网络拓扑变化和流量情况,在控制面通过集中控制数据库维护一个整网的拓扑视图。同时监控网络状态,如拥塞等异常情况,并提供网路感知信息获取接口,为容器网络资源调度提供必要参考和依据。具体方法为:
S301.1:基于SDN的集中控制思想,在容器网内部署一台集中控制服务器,在每台物理服务器节点上部署控制代理;
S301.2:通过控制代理从节点内部获取链路状态信息和路由信息;
S301.3:控制代理端采用TCP协议通过Network Socket将采集到的信息发送给集中控制服务器;
S301.4:集中控制服务器对控制代理发送过来的原始数据进行汇总,分析整合后存储到集中控制数据库,形成全局视图。
S302:集中控制服务器基于linux cgroup技术对全局链路状态信息和各节点的路由信息进行分析后统一进行调度和路由优化控制,形成全局的网络资源控制策略,下发到各路由节点的控制代理,最终回注到节点,实现在全网范围内的最优网络资源调度效果。具体方法为:
S302.1:集中控制服务器对全局链路状态信息和各节点的路由信息进行分析,对集群中主机的网络资源利用率和业务容器的负载进行统计;
S302.2:集中控制服务器根据主机网络资源利用率的统计结果和每个容器所在的位置,计算每两个容器之间的最佳路径,实施基于容器迁移的负载均衡,容器网络实时迁移主要包括打包传输和容器恢复两个阶段,处理流程如图5所示:
打包传输这一阶段可以分为如下四个步骤:
1)停止容器工作:将所有进程关闭,同时禁止网络。
2)打包容器镜像:将运行中的容器进行打包成镜像,并重新命名。
3)传输镜像:将打包生成的镜像进行传输。
4)移除容器:关闭容器,卸载容器文件系统。
容器恢复阶段的操作与检查点生成的操作类似,为检查点生成的逆操作,包含三个阶段:
1)加载镜像:赋予新镜像文件权限,并加载到主机内。
2)重新启动容器:依据保存在检查点文件中的信息,创建一个相同状态的容器。
3)恢复容器工作:恢复容器中执行的任务,使网络处于可用状态,继续之前的正常运行。
S302.3:集中控制服务器根据业务容器负载的统计结果采用net_prio对容器网络流量进行分级,根据容器节点运行业务的优先级设置相应数据分组的优先级;
S302.4:集中控制服务器根据容器业务负载情况和net_prio划分的容器网络流量优先级对容器网络资源进行动态调度,给负载较重的容器节点增加网络带宽;
S302.5:集中控制服务器采用net_cls对容器发送的所有数据加上标签,然后使用traffic controller(流量控制器)根据数据包上的标签进行流量控制,限制容器所使用的网络带宽。
S303:集中控制服务器对容器网络状态进行持续性跟踪评估。具体方法为:
S303.1:控制代理定期查询每个容器发送及接收的网络数据量;
S303.2:控制代理统计同期使用网络的信息,并将这些信息通过Network Socket暴露出来供集中控制服务器使用;
S303.3:集中控制服务器对资源调整前后网络的运行情况进行对比分析,如果出现网络拥塞或运行故障时则采取回滚手段,否则,转S3031。
综上所述,本发明提供一种基于SDN的容器网络资源调度方法,由于本方案基于SDN进行容器网络资源的调度,因而能够实现对容器网络资源的集中调度,实现资源灵活分配与回收。
最后应说明的是,本发明还可有其他多种实施例,以上实施例仅用以说明本发明的技术方案而非限制,在不脱离本发明技术方案的精神及其实质的情况下,本领域的技术人员应当理解,可以对本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (7)

1.一种基于SDN的容器网络资源调度方法,其特征在于,包括以下步骤:
第一步,基于SDN/NFV技术进行网络软硬件资源统一抽象与描述,SDN即软件定义网络,NFV即网络功能虚拟化;具体方法如下:
1.1对网络设备功能进行抽象,利用SDN对网络的行为进行集中编程控制,利用NFV进行软硬件解耦和功能抽象;
1.2对网络服务最小单元进行抽象,基于网络设备功能的抽象,设计可编排的最小单元作为网络服务单元;
1.3根据容器网络组网方案的实现手段、网络特点对网络组网方案进行抽象;
第二步,对容器网络实施资源分配与回收:将资源整合成资源池,组建并管理网络地址资源池和网络设备资源池,按需提供网络设备资源,网络销毁时及时回收网络设备资源;具体方法如下:
2.1根据软硬件资源抽象的结果将容器网络资源整合成网络地址资源池和网络设备资源池;
2.2为网络服务单元静态分配网络资源,包括IP地址和网络设备的静态分配;
2.3对网络资源进行动态调整,一方面根据配置信息自动对各容器网络分配和回收子网地址池,以及分配和回收容器IP地址,另一方面采用一致性算法确保集群内网络服务单元状态信息的一致性,在此基础上实现容器网络集群对网络设备动态的增加、删除和修改;
第三步,基于SDN集中控制的思想,在容器网络内部署集中控制服务器,实施网络态势感知与路由一体化,具体方法如下:
3.1网络态势感知:通过转发层的感知模块探测网络拓扑,感知底层网络拓扑变化和流量情况,在控制面通过集中控制数据库维护一个整网的拓扑视图;同时监控网络状态,并提供网路感知信息获取接口;
3.2集中控制服务器基于linux cgroup技术对全局链路状态信息和各节点的路由信息进行分析后统一进行调度和路由优化控制,形成全局的网络资源控制策略,下发到各路由节点的控制代理,最终回注到节点;
3.3集中控制服务器对容器网络状态进行持续性跟踪评估。
2.如权利要求1所述的基于SDN的容器网络资源调度方法,其特征在于,所述步骤2.3对网络资源进行动态调整,具体方法为:
2.3.1对IP地址进行动态调整,当Kubernetes发出需要添加Pod的请求时,返回步骤2.2;当Kubernetes发出需要删除Pod的请求时,则进行Pod网络的清理工作,系统调用server/connection.go中的deleteConnection函数:首先删除之前创建的端口,然后再释放原来的IP供网络中的新Pod使用;
2.3.2对网络设备进行动态调整,所有网络服务单元首先运行控制代理,控制代理将对网络服务单元进行操作监听和服务发现,获取集群中任何网络服务单元的保活信息,并采用一致性算法确保集群内网络服务单元状态信息的一致性,在此基础上实现容器网络集群对网络服务单元动态的增加、删除、查询和标签值修改。
3.如权利要求1所述的基于SDN的容器网络资源调度方法,其特征在于,所述步骤1.3中,将容器跨主机组网方案抽象为以下几种:(1)基于隧道的overlay网络即覆盖网络,按隧道类型不同,采用不同的实现方案;(2)基于包封装的overlay网络,基于UDP封装等数据包包装方式,在docker集群上实现跨主机网络;(3)基于三层实现SDN网络,基于三层协议和路由,直接在三层上实现跨主机网络,并且通过iptables实现网络的安全隔离。
4.如权利要求1所述的基于SDN的容器网络资源调度方法,其特征在于,所述步骤2.2为网络服务单元静态分配网络资源,具体流程如下:
2.2.1利用容器云平台Kubemetes创建Pod的infra容器;
2.2.2infra容器创建成功后,创建一个端口,将端口放入infra容器网络的namespace内,并对该端口进行网络配置;
2.2.3Kubemetes创建自定义网络类型并指定网段,然后以json格式将具体的网络配置信息封装在Request Body中;
2.2.4在自定义的网段中利用Request Body中的requestIP参数指定固定IP地址给Pod使用,如果requestIP参数留空,转2.2.5;
2.2.5Kubemetes自动选择合适的IP即网络中未使用的最小IP给Pod使用;
2.2.6启用完成IP地址配置的端口,Pod未来将使用它作为对外通信的网络接口;
2.2.7切换回主机网络的namespace,如果网络设置成功,则向Kubemetes返回0,即设置正常;否则返回1,即设置失败,并继续等待下一次设置容器网络的请求。
5.如权利要求1所述的基于SDN的容器网络资源调度方法,其特征在于,所述步骤3.1网络态势感知,具体方法为:
3.1.1基于SDN的集中控制思想,在容器网内部署一台集中控制服务器,在每台物理服务器节点上部署控制代理;
3.1.2通过控制代理从节点内部获取链路状态信息和路由信息;
3.1.3控制代理端采用TCP协议通过Network Socket将采集到的信息发送给集中控制服务器;
3.1.4集中控制服务器对控制代理发送过来的原始数据进行汇总,分析整合后存储到集中控制数据库,形成全局视图。
6.如权利要求1所述的基于SDN的容器网络资源调度方法,其特征在于,所述步骤3.2具体流程如下:
3.2.1集中控制服务器对全局链路状态信息和各节点的路由信息进行分析,对集群中主机的网络资源利用率和业务容器的负载进行统计;
3.2.2集中控制服务器根据主机网络资源利用率的统计结果和每个容器所在的位置,计算每两个容器之间的最佳路径,实施基于容器迁移的负载均衡;
3.2.3集中控制服务器根据业务容器负载的统计结果采用net_prio对容器网络流量进行分级,根据容器节点运行业务的优先级设置相应数据分组的优先级,其中,net_prio是cgroup中的网络优先权子系统,可以为各个cgroup中的应用程序动态配置每个网络接口的流量优先级;
3.2.4集中控制服务器根据容器业务负载情况和net_prio划分的容器网络流量优先级对容器网络资源进行动态调度,给负载较重的容器节点增加网络带宽;
3.2.5集中控制服务器采用net_cls对容器发送的所有数据加上标签,然后使用流量控制器根据数据包上的标签进行流量控制,限制容器所使用的网络带宽,其中net_cls用于cgroup中给报文打上分类等级的标签,用于过滤分类。
7.如权利要求1所述的基于SDN的容器网络资源调度方法,其特征在于,所述步骤3.3集中控制服务器对容器网络状态进行持续性跟踪评估,具体方法为:
3.3.1控制代理定期查询每个容器发送及接收的网络数据量;
3.3.2控制代理统计同期使用网络的信息,并将这些信息通过网络套接字暴露出来供集中控制服务器使用;
3.3.3集中控制服务器对资源调整前后网络的运行情况进行对比分析,如果出现网络拥塞或运行故障时则执行回滚操作,否则,转3.3.1。
CN201910013572.6A 2019-01-07 2019-01-07 一种基于sdn的容器网络资源调度方法 Active CN109743261B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910013572.6A CN109743261B (zh) 2019-01-07 2019-01-07 一种基于sdn的容器网络资源调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910013572.6A CN109743261B (zh) 2019-01-07 2019-01-07 一种基于sdn的容器网络资源调度方法

Publications (2)

Publication Number Publication Date
CN109743261A CN109743261A (zh) 2019-05-10
CN109743261B true CN109743261B (zh) 2020-10-30

Family

ID=66363733

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910013572.6A Active CN109743261B (zh) 2019-01-07 2019-01-07 一种基于sdn的容器网络资源调度方法

Country Status (1)

Country Link
CN (1) CN109743261B (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110213363B (zh) * 2019-05-30 2020-12-22 华南理工大学 基于软件定义网络的云资源动态分配系统及方法
CN110535723B (zh) * 2019-08-27 2021-01-19 西安交通大学 一种sdn中采用深度学习的消息异常检测方法
CN110601949B (zh) * 2019-09-10 2021-05-04 中国人民解放军国防科技大学 一种多虚拟设备容器组网方法
TWI723568B (zh) * 2019-10-05 2021-04-01 中華電信股份有限公司 針對運算主機之叢集管理與動態調度系統及方法
CN110990026B (zh) * 2019-10-10 2023-03-14 武汉烽火信息集成技术有限公司 一种PaaS平台自动部署方法及系统
CN114762305A (zh) * 2019-11-28 2022-07-15 西门子股份公司 在集群背景下从容器抓包的方法
CN110855509B (zh) * 2019-12-23 2021-02-12 广东省新一代通信与网络创新研究院 一种新型的云化软件定义分组传送网sptn网络架构的配置方法
CN111163189B (zh) * 2020-01-07 2020-09-15 上海道客网络科技有限公司 一种基于网络命名空间管控的ip监控和回收系统与方法
CN111314462A (zh) * 2020-02-14 2020-06-19 京东数字科技控股有限公司 资源处理方法、设备及存储介质
CN113760440B (zh) * 2020-06-03 2024-09-24 华为技术有限公司 一种虚拟化的网络服务的部署方法及装置
US11243882B2 (en) 2020-04-15 2022-02-08 International Business Machines Corporation In-array linked list identifier pool scheme
US11777790B2 (en) * 2020-04-16 2023-10-03 Ribbon Communications Operating Company, Inc. Communications methods and apparatus for migrating a network interface and/or IP address from one Pod to another Pod in a Kubernetes system
CN112104499B (zh) * 2020-09-14 2023-05-02 浪潮思科网络科技有限公司 一种容器网络模型构建方法、装置、设备及介质
CN112367328B (zh) * 2020-11-13 2022-01-04 四川长虹电器股份有限公司 基于websocket进入Kubernetes集群容器的方法
CN112822192B (zh) * 2021-01-06 2022-10-21 中山大学 一种面向用户需求的安全功能服务网系统及其实现方法
CN113055232B (zh) * 2021-03-11 2022-07-12 浪潮思科网络科技有限公司 一种网络配置部署方法、装置与设备
CN113572650B (zh) * 2021-08-18 2024-10-01 浪潮网络科技(山东)有限公司 一种基于sdn的网络调控方法、设备及介质
CN115801690B (zh) * 2021-09-08 2024-08-13 中移(苏州)软件技术有限公司 一种数据处理方法及装置、设备、存储介质
CN114244724B (zh) * 2021-11-24 2023-08-29 中盈优创资讯科技有限公司 一种城域网控制平面向容器化演进的方法及装置
CN114928526B (zh) * 2022-02-09 2023-06-16 北京邮电大学 基于sdn的网络隔离和资源规划方法及系统
CN114679391B (zh) * 2022-02-23 2024-09-20 网宿科技股份有限公司 采集docker容器网络流量的方法、电子设备及存储介质
CN114553583B (zh) * 2022-03-01 2024-01-30 恒安嘉新(北京)科技股份公司 一种网络安全分析系统、方法、设备与存储介质
CN114745405A (zh) * 2022-04-11 2022-07-12 四川九洲空管科技有限责任公司 一种基于sdn的雷达组网架构
CN115225475B (zh) * 2022-07-04 2024-04-16 浪潮云信息技术股份公司 一种用于服务器网络的自动化配置管理方法、系统及装置
CN115801733A (zh) * 2023-02-02 2023-03-14 天翼云科技有限公司 一种网络地址分配方法、装置、电子设备及可读介质
CN116192937B (zh) * 2023-04-24 2023-07-11 明阳时创(北京)科技有限公司 一种Kubernetes集群系统中Service实现方法、系统、介质及设备
CN116795545B (zh) * 2023-06-21 2024-04-16 中国科学院沈阳自动化研究所 基于网算容器的信息物理生成系统及其管理方法
CN116566984B (zh) * 2023-07-06 2023-09-12 华控清交信息科技(北京)有限公司 一种k8s容器集群的路由信息创建方法、装置及电子设备
CN117544506B (zh) * 2023-11-09 2024-05-24 北京中电汇通科技有限公司 一种基于eBPF技术的容器云DNS性能优化方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103338163A (zh) * 2013-07-16 2013-10-02 清华大学 支持动态弹性资源调度的软件定义网络控制器
CN105516177A (zh) * 2015-12-28 2016-04-20 上海交通大学 基于sdn和nfv的5g网络多级攻击缓解方法
CN105681217A (zh) * 2016-04-27 2016-06-15 深圳市中润四方信息技术有限公司 用于容器集群的动态负载均衡方法及系统
CN107220039A (zh) * 2017-04-11 2017-09-29 国家电网公司 一种基于云环境的异构资源标准化封装系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10356011B2 (en) * 2014-05-12 2019-07-16 Futurewei Technologies, Inc. Partial software defined network switch replacement in IP networks
US10432532B2 (en) * 2016-07-12 2019-10-01 Cisco Technology, Inc. Dynamically pinning micro-service to uplink port
CN108111332A (zh) * 2017-11-10 2018-06-01 上海华讯网络系统有限公司 应用sdn的混合云管理系统及方法
CN108111383B (zh) * 2017-12-26 2021-03-19 北京航空航天大学 一种基于sdn的跨域容器虚拟网络组建方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103338163A (zh) * 2013-07-16 2013-10-02 清华大学 支持动态弹性资源调度的软件定义网络控制器
CN105516177A (zh) * 2015-12-28 2016-04-20 上海交通大学 基于sdn和nfv的5g网络多级攻击缓解方法
CN105681217A (zh) * 2016-04-27 2016-06-15 深圳市中润四方信息技术有限公司 用于容器集群的动态负载均衡方法及系统
CN107220039A (zh) * 2017-04-11 2017-09-29 国家电网公司 一种基于云环境的异构资源标准化封装系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SDN 网络中控制器放置问题综述;高先明等;《通信学报》;20170731 *

Also Published As

Publication number Publication date
CN109743261A (zh) 2019-05-10

Similar Documents

Publication Publication Date Title
CN109743261B (zh) 一种基于sdn的容器网络资源调度方法
US11397609B2 (en) Application/context-based management of virtual networks using customizable workflows
US11665053B2 (en) Initializing network device and server configurations in a data center
US10469629B2 (en) Container networking for connecting network controller applications to a switch fabric
US9999030B2 (en) Resource provisioning method
US9584369B2 (en) Methods of representing software defined networking-based multiple layer network topology views
EP1323037B1 (en) Method and apparatus for controlling an extensible computing system
US20150350102A1 (en) Method and System for Integrated Management of Converged Heterogeneous Resources in Software-Defined Infrastructure
EP2907276B1 (en) System and method for efficient use of flow table space in a network environment
JP4712279B2 (ja) 拡張可能コンピューティングシステムの制御方法および装置
CN114208124A (zh) 用于在虚拟机和容器上选择性地实现服务的系统和方法
CN110855509B (zh) 一种新型的云化软件定义分组传送网sptn网络架构的配置方法
Lin et al. Enabling SDN applications on software-defined infrastructure
AU2016387475A1 (en) Virtual network, hot swapping, hot scaling, and disaster recovery for containers
CN114697207B (zh) 具有网络性能参数支持的边缘控制器
US20090150883A1 (en) Method and system for controlling network traffic in a blade chassis
JP6432955B2 (ja) 仮想ネットワーク機能インスタンスをマイグレーションさせるための方法、装置およびシステム
CN103997513A (zh) 一种可编程虚拟网络服务系统
CN104065553A (zh) 虚拟网络迁移方法和相关设备
CN116155912A (zh) 网络系统中的性能调节
Rangsietti et al. SDN‐Enabled Network Virtualization and Its Applications
CN112655185B (zh) 软件定义网络中的服务分配的设备、方法和存储介质
KR101991852B1 (ko) Sdn 기반 데이터 센터 관리 시스템 및 방법
CN117395316B (zh) 出口流量管理方法、设备及可读存储介质
US12095889B2 (en) Processing queue assignment based on a flag in a Geneve header

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
GR01 Patent grant
GR01 Patent grant