CN110120919B - 一种用于容器网络的网络资源隔离方法和系统 - Google Patents
一种用于容器网络的网络资源隔离方法和系统 Download PDFInfo
- Publication number
- CN110120919B CN110120919B CN201910274987.9A CN201910274987A CN110120919B CN 110120919 B CN110120919 B CN 110120919B CN 201910274987 A CN201910274987 A CN 201910274987A CN 110120919 B CN110120919 B CN 110120919B
- Authority
- CN
- China
- Prior art keywords
- container
- network
- containers
- data packet
- host
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/64—Routing or path finding of packets in data switching networks using an overlay routing layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
- H04L45/306—Route determination based on the nature of the carried application
- H04L45/3065—Route determination based on the nature of the carried application for real time traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/34—Source routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/72—Admission control; Resource allocation using reservation actions during connection setup
- H04L47/724—Admission control; Resource allocation using reservation actions during connection setup at intermediate nodes, e.g. resource reservation protocol [RSVP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/74—Admission control; Resource allocation measures in reaction to resource unavailability
- H04L47/745—Reaction in network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/76—Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions
- H04L47/762—Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions triggered by the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/822—Collecting or measuring resource availability data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/828—Allocation of resources per group of connections, e.g. per group of users
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种用于容器网络的网络资源隔离方法和系统,该系统包括:至少一个处理器;至少一个存储器;以及至少一个指令;所述至少一个指令被存储在所述至少一个存储器上并且能由所述至少一个处理器执行以执行操作;其中,所述操作包括:在相应的容器发送数据包之前按照让该数据包在覆盖网络模式下仍保持该数据包的源容器信息不丢失的方式为该数据包附上该容器的专属的网络标记;在覆盖网络模式和非覆盖网络模式下均通过数据包上的网络标记识别该数据包的源容器并将该数据包分类到该源容器的类和队列规则中;和监控主机上的容器的运行状态并在其中至少部分容器的运行状态发生改变的情况下动态调整部分或者全部容器的隔离的网络资源。
Description
技术领域
本发明涉及计算机应用系统领域,尤其涉及一种用于容器网络的网络资源隔离方法和系统。
背景技术
容器作为轻量级虚拟化技术,已广泛部署在云数据中心,在性能提升和降低成本方面具有重要意义。与传统的虚拟机技术相比,容器通过使用命名空间共享主机的操作系统内核而不是每个应用程序需要一个操作系统来保证更高的效率和更少的资源。但是,作为虚拟机的轻量级版本,容器只能提供应用程序级别的抽象,因此无法提供强大的硬件隔离和复杂的资源管理。不同容器的资源需求因类型和数量而异。当多个容器在一台主机上运行并相互共享操作系统内核时,资源竞争永远无法避免,严重阻碍了系统性能。
为了解决这个问题,Docker作为主流的一种容器技术,使用Linux提供的资源控制组CGroup为容器提供CPU,内存和磁盘资源隔离和分配。遗憾的是,在当前容器框架中完全忽略了一个主机内的数百个、数千个甚至更多的容器执行内部和主机间通信所需的网络资源。因此,为容器网络提供一种网络资源隔离和网络流量控制方案至关重要。
为了提供轻量级的网络隔离和流量控制,Linux系统提供的流量控制模块是一种理想的选择。流量控制模块即Traffic Control,简称TC。由于其轻量级和强大的可扩展性,TC现在广泛用于虚拟化环境和网络流量控制场景。一些研究还表明将TC引入容器系统的可能性和优势。但由于以下三个因素,TC不能直接应用于容器网络资源隔离和流量控制:第一,容器在多种网络模式下运行,以适应不同的工作负载,如覆盖网络overlay和非覆盖网络non-overlay。覆盖网络是在另一个网络之上运行以在节点之间构建虚拟链路的网络。换言之,覆盖网络可以指在底层网络之上实现并在其上操作的抽象网络。底层网络可包括彼此互连的多个物理网络节点。覆盖网络可包括一个或多个虚拟网络。虚拟网络通常是指覆盖网络中底层网络的一部分的抽象。虚拟网络可包括被称为承租者站点的一个或多个虚拟端点,该一个或多个虚拟端点被用户或承租者单独地使用以访问虚拟网络和相关联的计算、存储、或其他合适的资源。覆盖网络可以是指使用覆盖网络的容器数据包会被VXLAN和主机的UDP报文头封装,主机对容器数据包IP不可见的网络。而非覆盖网络可以是指使用非覆盖网络的容器数据包不会被封装,直接转发到主机上,主机对容器数据包的IP可见的网络。常见的覆盖网络有:Docker原生覆盖网络、Flannel和Weave;非覆盖网络有:NAT和Calico。一个使用覆盖网络的容器数据包会被XVLAN和主机的UDP报文头封装,导致容器IP被隐藏。VXLAN即Virtual Extensible LAN,是一种网络虚似化技术,基于IP网络且采用“MAC in UDP”封装形式的二层VPN技术。UDP是User Datagram Protocol的缩写,中文名是用户数据报协议。TC在覆盖网络的容器环境中是无效。原因是TC有两种过滤器来实现数据包识别,即Classid过滤器和IP过滤器,它们都无法在多种网络模式下跟踪容器数据包。对于Classid过滤器,Classid是一个网络命名空间专用的数据包信息之一,这意味着Classid过滤器不是为容器设计的,因为容器数据包需要跨越网络命名空间而导致Classid丢失。对于IP过滤器,它需要容器IP来跟踪数据包。遗憾的是,我们知道覆盖网络隐藏了容器IP,这意味着IP过滤器仅在非覆盖网络下才能正常工作。也就是说,TC无法提供一体适用的网络隔离和流量控制解决方案,也无法在多种网络模式下管理容器。第二,TC操作和配置相对复杂,需要充分了解流量控制细节,让容器使用者理解和学习TC的操作和配置会增加使用者的负担。第三,TC仅关注静态网络隔离和流量控制。也就是说,一旦执行TC命令,就无法更改容器组织和资源配置。因此,当启动新容器时,我们无法通过全局考虑资源要求和服务质量来调整现有容器的资源分配。同样,如果已启动的容器被停用,也无法将已释放的资源重新分配给其他容器以提高资源利用率。请注意,容器生命周期短且用途多种多样。换句话说,每个服务器可以托管数百或数千个经常启动和停用的已启动容器。原始的TC资源分配算法无法处理容器环境中的高动态,并且会导致性能下降。目前还缺乏一种满足容器所有网络模式和适应容器特点的网络资源隔离方案,特别在容器覆盖网络,没有有效的隔离方案。
发明内容
针对现有技术之不足,本发明提供了一种用于容器网络的网络资源隔离方法和系统。本发明主要提供了一种适合所有容器网络模式并适应容器特点的隔离方案。该方案在TC的基础上,解决了TC在容器环境下面对容器覆盖网络的无效性、配置的复杂性和隔离组织和资源配置的静态性的问题。本发明为容器覆盖网络提供了一种资源隔离方案,同时它也降低了网络资源隔离的使用门槛和优化了网络资源的利用率。
根据一个优选实施方式,一种计算系统,该系统包括:至少一个处理器;至少一个存储器;以及至少一个指令;所述至少一个指令被存储在所述至少一个存储器上并且能由所述至少一个处理器执行以执行操作;其中,所述操作包括:在相应的容器发送数据包之前按照让该数据包在覆盖网络模式下仍保持该数据包的源容器信息不丢失的方式为该数据包附上该容器的专属的网络标记;在覆盖网络模式和非覆盖网络模式下均通过数据包上的网络标记识别该数据包的源容器并将该数据包分类到该源容器的类和队列规则中;和监控主机上的容器的运行状态并在其中至少部分容器的运行状态发生改变的情况下动态调整部分或者全部容器的隔离的网络资源。
根据一个优选实施方式,所述在相应的容器发送数据包之前按照让该数据包在覆盖网络模式下仍保持该数据包的源容器信息不丢失的方式为该数据包附上该容器的专属的网络标记是通过将该容器的专属的网络标记附着在该数据包的控制信息结构体上。
根据一个优选实施方式,所述网络资源包括带宽资源、延迟资源和优先级资源中的至少一个。
根据一个优选实施方式,监控主机上运行的容器的运行状态并在其中至少部分容器的运行状态发生改变的情况下动态调整部分或者全部容器的隔离的网络资源的处理包括:在监控到主机上有新启动的容器的情况下,为每个新启动的容器分配一个专属的网络标记,为每个新启动的容器建立用于隔离该容器的网络资源的类和队列规则,解析每个新启动的容器的启动参数以将所述启动参数转化为流量控制命令,和根据相应的流量控制命令将隔离的网络资源配置到相应的新启动的容器的类和队列规则。
根据一个优选实施方式,监控主机上运行的容器的运行状态并在其中至少部分容器的运行状态发生改变的情况下动态调整部分或者全部容器的隔离的网络资源的处理包括:在根据相应的流量控制命令将隔离的网络资源配置到相应的新启动的容器的类和队列规则之前识别主机可分配的网络资源,当主机可分配的网络资源足以满足相应的新启动的容器对网络资源的需求时将可分配的网络资源中的至少部分网络资源分配给相应的新启动的容器,和当主机可分配的网络资源不足以满足相应的新启动的容器对网络资源的需求时动态调整该主机上部分或者全部已分配网络资源的容器分配的网络资源以满足相应的新启动的容器对网络资源的需求。
根据一个优选实施方式,所述监控主机上运行的容器的运行状态并在其中至少部分容器的运行状态发生改变的情况下动态调整部分或者全部容器的隔离的网络资源的处理还包括:在监控到主机上有容器停止运行的情况下,释放该停止的容器占用的网络资源,删除该停止的容器的类和队列规则,并且释放为该停止的容器分配的专属的网络标记。
根据一个优选实施方式,所述操作还包括:管理主机中已经具备网络资源隔离能力的运行中的容器所使用的网络标记;使用位图来记录相应的网络标记的状态;当相应的新启动的容器需要申请网络标记时,从所述位图的低位起寻找可用的最小的网络标记分配给相应的新启动的容器;和当运行中的容器停止运行时,将为该停止的容器分配的网络标记的状态改为可用。
根据一个优选实施方式,所述操作还包括:接收将主机的部分容器设定为特定容器的请求;响应于该请求而将主机的对应容器设定为特定容器;和在主机可分配的网络资源不足以满足相应的新启动的容器对网络资源的需求时不调整为特定容器分配的网络资源,仅从未被设定为特定容器的容器中选取至少部分容器并对被选取的至少部分容器的分配的网络资源进行调整以满足相应的新启动的容器对网络资源的需求。
根据一个优选实施方式,一种用于容器网络的网络资源隔离方法,所述方法包括:在相应的容器发送数据包之前按照让该数据包在覆盖网络模式下仍保持该数据包的源容器信息不丢失的方式为该数据包附上该容器的专属的网络标记;在覆盖网络模式和非覆盖网络模式下均通过数据包上的网络标记识别该数据包的源容器并将该数据包分类到该源容器的类和队列规则中;监控主机上的容器的运行状态并在其中至少部分容器的运行状态发生改变的情况下动态调整部分或者全部容器的隔离的网络资源。
根据一个优选实施方式,所述在相应的容器发送数据包之前按照让该数据包在覆盖网络模式下仍保持该数据包的源容器信息不丢失的方式为该数据包附上该容器的专属的网络标记是通过将该容器的专属的网络标记附着在该数据包的控制信息结构体上。
本发明提供一种用于容器网络的网络资源隔离方法和系统至少具有如下优势:
(1)解决覆盖网络资源隔离的无效性问题:本发明按照让该数据包在覆盖网络模式下仍保持该数据包的源容器信息不丢失的方式为该数据包附上该容器的专属的网络标记,既实现了容器在非覆盖网络下容器网络数据包的识别,更实现了覆盖网络下容器网络数据包的识别。
(2)解决现有技术的复杂化问题:本发明简化容器网络资源隔离和流量控制的使用复杂度,根据容器启动参数进行网络资源隔离的需求,并将其转换为网络流量控制命令,最终实施于进行网络资源控制的容器所属的类和队列规则中。
(3)解决现有技术的静态化问题:本发明根据容器的运行状态来进行网络资源调整,实现了动态的网络资源隔离管理,优化了网络资源的利用率。
附图说明
图1是本发明的系统的一个优选实施方式的模块示意图;
图2是本发明的系统的一个优选实施方式的硬件连接示意图;和
图3是本发明的方法一个优选实施方式的流程示意图。
附图标记列表
100:主机 110:标记管理模块 120:识别模块
130:资源模块 140:动态调整模块 150:主机网卡
160:处理器 170:存储器 180:总线
200:覆盖网络 210:覆盖网络网卡 300:容器
310:数据包 320:网络标记 330:标记执行模块
340:容器网卡 410:类 420:队列规则
500:Docker Daemon 600:互联网
具体实施方式
下面结合附图进行详细说明。
本发明中使用的部分名词解释如下:
覆盖网络模式可以是指主机对容器数据包IP不可见的网络模式。因为使用覆盖网络的容器所发送的数据包会被容器所在主机使用XVLAN和UDP报文头封装,从而主机对容器数据包IP不可见。
非覆盖网络模式可以是指主机对容器数据包IP可见的网络模式。因为使用非覆盖网络的容器所发送的数据包不会被容器所在主机使用XVLAN和UDP报文头封装,数据包以原始形态转发到主机上,从而主机对容器数据包IP可见。
容器的类可以是指控制策略。不同容器的数据包会被划分到不同的类中,每个类都代表了一种控制策略。
队列规则可以是指排队规则。队列规则可以用来实现控制网络的收发速度。通过队列,Linux可以将网络数据包缓存起来,然后根据用户的设置,在尽量不中断连接(如TCP)的前提下来平滑网络流量。
控制信息结构体可以是指sk_buff,也叫socket buffer。结构体是Linux网络代码中重要的数据结构,它管理和控制接收或发送数据包的信息。
流量控制命令是可以指用来生成流量控制配置信息的Linux shell命令行命令。例如“tc qdisc add dev…”、“tc class add dev…”等。
位图可以是指一种数据结构。位图的每一位有两种值,用以记录一种状态,如1表示“已使用”,“0”表示“未使用”。
实施例1
本实施例公开了一种计算系统,或者说一种采用网络资源隔离的系统,或者说一种用于容器网络的网络资源隔离系统,该系统适于执行本发明记载的各个方法步骤,以达到预期的技术效果。在不造成冲突或者矛盾的情况下,其他实施例的优选实施方式的整体和/或部分内容可以作为本实施例的补充。该系统例如可以是通用计算机、服务器和服务器集群中的至少一个。
根据一个优选实施方式,该系统包括:至少一个处理器;至少一个存储器;和/或至少一个指令。至少一个指令被存储在至少一个存储器上并且能由至少一个处理器执行以执行操作。操作可以包括:在相应的容器300发送数据包310之前按照让该数据包310在覆盖网络模式下仍保持该数据包310的源容器300信息不丢失的方式为该数据包310附上该容器300的专属的网络标记320;在覆盖网络模式和非覆盖网络模式下均通过数据包310上的网络标记320识别该数据包310的源容器300并将该数据包310分类到该源容器300的类410和队列规则420中;和/或监控主机100上的容器300的运行状态并在其中至少部分容器300的运行状态发生改变的情况下动态调整部分或者全部容器300的隔离的网络资源。参见图2,该系统可以是建立在主机100上。该系统包括处理器160、主机网卡150和存储器170。处理器160可以连接于主机网卡150和存储器170。处理器160可以通过总线180连接于主机网卡150。处理器160可以通过总线180连接于存储器170。
根据一个优选实施方式,在相应的容器300发送数据包310之前按照让该数据包310在覆盖网络模式下仍保持该数据包310的源容器300信息不丢失的方式为该数据包310附上该容器300的专属的网络标记320可以是通过将该容器300的专属的网络标记320附着在该数据包310的控制信息结构体上。本发明采用此方式至少能够实现以下有益技术效果:第一,在覆盖网络下保持源容器信息不丢失,因为覆盖网络封装的是数据包310的缓冲区数据,而对存放于控制信息结构体上的标记信息不产生任何影响,当数据包310到达主机时,主机中的过滤器120可以根据网络标记320进行数据包分类;第二,在非覆盖网络下也能保持源容器信息不丢失,新的网络标记不仅解决了覆盖网络下TC的无效性,也保持了TC在非覆盖网络的有效性。
根据一个优选实施方式,网络资源可以包括带宽资源、延迟资源和优先级资源中的至少一个。
根据一个优选实施方式,监控主机100上运行的容器300的运行状态并在其中至少部分容器300的运行状态发生改变的情况下动态调整部分或者全部容器300的隔离的网络资源的处理可以包括:在监控到主机100上有新启动的容器300的情况下,为每个新启动的容器300分配一个专属的网络标记320,为每个新启动的容器300建立用于隔离该容器300的网络资源的类410和队列规则420,解析每个新启动的容器300的启动参数以将启动参数转化为流量控制命令,和/或根据相应的流量控制命令将隔离的网络资源配置到相应的新启动的容器300的类410和队列规则420。本发明采用此方式至少能够实现以下有益技术效果:第一,将资源配置过程自动化,减轻了使用者的负担,使用者无需了解流量控制的细节,系统直接为使用者建立网络隔离的组织结构;第二,将资源配置过程简单化,使用者无需了解流量控制命令的具体意思,降低了学习成本,使用者只需将需求描述出来,就可以获得资源保证。
根据一个优选实施方式,监控主机100上运行的容器300的运行状态并在其中至少部分容器300的运行状态发生改变的情况下动态调整部分或者全部容器300的隔离的网络资源的处理可以包括:在根据相应的流量控制命令将隔离的网络资源配置到相应的新启动的容器300的类410和队列规则420之前识别主机100可分配的网络资源,当主机100可分配的网络资源足以满足相应的新启动的容器300对网络资源的需求时将可分配的网络资源中的至少部分网络资源分配给相应的新启动的容器300,和/或当主机100可分配的网络资源不足以满足相应的新启动的容器300对网络资源的需求时动态调整该主机100上部分或者全部已分配网络资源的容器300分配的网络资源以满足相应的新启动的容器300对网络资源的需求。优选地,可分配的网络资源可以是指空闲的网络资源或者未分配的网络资源。本发明采用此方式至少能够实现以下有益技术效果:第一,实现了按权重分配资源,系统根据容器权重比进行资源划分,划分方式更合理;第二,实现了动态分配资源,相对于静态资源分配,提高了网络资源利用率。
根据一个优选实施方式,监控主机100上运行的容器300的运行状态并在其中至少部分容器300的运行状态发生改变的情况下动态调整部分或者全部容器300的隔离的网络资源的处理可以包括:在监控到主机100上有容器300停止运行的情况下,释放该停止的容器300占用的网络资源,删除该停止的容器300的类410和队列规则420,和/或释放为该停止的容器300分配的专属的网络标记320。本发明采用此方式至少能够实现以下有益技术效果:第一,将资源释放过程自动化,减轻了使用者的负担,使用者无需了解流量控制的细节,系统直接为使用者删除网络隔离的组织结构并释放占用资源;第二,所释放的资源可以被其他容器再利用,提高了网络资源利用率。
根据一个优选实施方式,操作可以包括:管理主机100中已经具备网络资源隔离能力的运行中的容器300所使用的网络标记320;使用位图来记录相应的网络标记320的状态;当相应的新启动的容器300需要申请网络标记320时,从位图的低位起寻找可用的最小的网络标记320分配给相应的新启动的容器300;和/或当运行中的容器300停止运行时,将为该停止的容器300分配的网络标记320的状态改为可用。本发明采用此方式至少能够实现以下有益技术效果:使用位图进行记录,能够保证申请和释放操作高效准确。
根据一个优选实施方式,操作可以包括:接收将主机100的部分容器300设定为特定容器300的请求;响应于该请求而将主机100的对应容器300设定为特定容器300;和/或在主机100可分配的网络资源不足以满足相应的新启动的容器300对网络资源的需求时不调整为特定容器300分配的网络资源,仅从未被设定为特定容器300的容器300中选取至少部分容器300并对被选取的至少部分容器300的分配的网络资源进行调整以满足相应的新启动的容器300对网络资源的需求。优选地,该请求可以由用户通过输入设备输入到主机100中。本发明采用此方式至少能够实现以下有益技术效果:针对一些重要的容器300,可以通过此方式将这些重要的容器300设定为特定容器300,以始终满足这些容器300的网络资源需求,防止网络资源不足时系统挤压这部分容器300的网络资源。
实施例2
本实施例可以是对实施例1的进一步改进和/或补充,重复的内容不再赘述。在不造成冲突或者矛盾的情况下,其他实施例的优选实施方式的整体和/或部分内容可以作为本实施例的补充。
根据一个优选实施方式,参见图1,该系统可以包括标记执行模块330、标记管理模块110、识别模块120、资源模块130和动态调整模块140中的至少一个。优选地,标记执行模块330可以连接于标记管理模块110。标记管理模块110可以连接于动态调整模块140。标记管理模块110可以连接于识别模块120。动态调整模块140可以连接于Docker Daemon500。Docker Daemon的中文名称可以是Docker守护进程。识别模块120可以连接于资源模块130。资源模块130可以连接于主机100网卡150。主机100可以通过主机100网卡150连接于互联网600。容器300包括容器300网卡340。覆盖网络200包括覆盖网络网卡210。包括容器300网卡340连接于覆盖网络网卡210。数据包310可以通过容器300网卡340和覆盖网络网卡210传输到主机100。
根据一个优选实施方式,标记执行模块330、标记管理模块110、识别模块120、资源模块130和动态调整模块140中的至少一个可以以至少一个指令的形式被存储在至少一个存储器上。
根据一个优选实施方式,标记执行模块330可以运行于容器300内部。标记执行模块330可以用于捕获容器300的数据包310并为捕获的数据包310附上容器300专属的网络标记320。附在数据包310上的网络标记320能在容器300覆盖网络200下保持数据包310的来源容器300信息不丢失。优选地,标记执行模块330可以用于已经具备资源隔离能力的运行中的容器300。当容器300需要发送网络数据包310时,标记执行模块330捕获该数据包310,并将从标记管理模块110中到的网络标记320附着在数据包310上。该附着的网络标记320的标记方式不同于现有系统的标记方式,该附着的网络标记320被作为数据包310控制信息结构体的成员。或者说,该附着的网络标记320附着在该数据包310的控制信息结构体上。该标记方式的优点是不会被覆盖网络200的封装导致资源隔离的无效。优选地,在本发明中,来源容器300即为源容器300。
根据一个优选实施方式,标记管理模块110可以运行于主机100中。标记管理模块110可以用于管理主机100上运行中的容器300所拥有的数据包310标记。当一个新启动的容器300需要进行网络资源隔离时,可以向该标记管理模块110申请一个专属的网络标记320分配给新启动的容器300。当一个运行中的容器300停止运行时,需要向该标记管理模块110返还网络标记320。优选地,标记管理模块110可以用于管理主机100中已经具备网络资源隔离能力的运行中容器300所使用的网络标记320。标记管理模块110可以使用位图Bitmap来记录某个网络标记320的状态。当一个新启动的容器300需要申请网络标记320时,标记管理模块110可以从位图的低位起寻找可用的最小网络标记320。当一个运行中的容器300停止时,可以向标记管理模块110发出释放网络标记320的信号,标记管理模块110可以使用位操作将该网络标记320状态改为可用。
根据一个优选实施方式,识别模块120可以运行于主机100中。识别模块120可以用于识别来源于不同容器300的数据包310。当不同的容器300的数据包310到达主机100后,识别模块120可以根据网络标识将数据包310分类到不同的类和队列规则420中。优选地,识别模块120可以用于在不同的容器300网络模式识别数据包310的来源。不同的容器300网络模式可以包括覆盖网络200和非覆盖网络200。当一个数据包310到达主机100网络栈,识别模块120可以捕获数据包310并获取附着在数据包310控制信息结构体上的网络标记320。识别模块120可以根据网络标记320计算出该数据包310所属容器300的类410和队列规则420,并可以将该数据包310插入对应的队列规则420中等待发送。
根据一个优选实施方式,资源模块130可以运行于主机100中。资源模块130可以用于为容器300提供资源保证。资源保证可以包括带宽保证、延迟保证和优先级保证。带宽保证可以用于为容器300提供可使用的最小可用带宽。延迟保证可以用于为容器300提供数据包310发送的最大延迟。优先级保证可以用于当主机100有空闲带宽时,容器300获得空闲带宽的顺序。资源模块130可以用于容器300启动参数的解析和向网络流量控制命令的转换。当一个新的容器300启动时,启动参数可以发送到系统或者主机100中。资源模块130可以将启动参数解析并转换为该容器300可用最小带宽、最大延迟和获得空闲带宽的优先级,并将这些信息附着在该容器300所属的类中,用于在队列规则420中排队等待数据包310发送的发送顺序依据。优选地,资源模块130可以将启动参数解析并转换为流量控制命令。资源模块130可以将流量控制命令附着在该容器300的类410或者说该容器300所属的类中,用于在队列规则420中排队等待数据包310发送的发送顺序依据。优选地,流量控制命令可以包括用于设定该容器300可用最小带宽、最大延迟和获得空闲带宽的优先级中的至少一个的命令。
根据一个优选实施方式,动态调整模块140可以运行于主机100中。动态调整模块140可以用于根据容器300状态或者容器300运行状态的改变进行网络资源隔离组织调整和网络资源配置调整。网络资源隔离组织调整可以用于根据容器300状态的改变调整限制容器300网络资源的组件类和队列规则420。网络资源配置调整可以用于根据容器300状态的改变调整每个容器300的最小带宽、最大延迟和获取空闲带宽优先级的顺序。优选地,动态调整模块140可以用于根据容器300状态的改变调整网络资源隔离组织和资源配置。网络资源隔离组织可以是指容器300所属的类和队列规则420。优选地,本发明中,容器300所属的类可以是指容器300的类410。当一个需要网络资源隔离的容器300启动时,动态调整模块140需要创建类和队列规则420。当一个运行中的容器300停止运行,动态调整模块140删除相应的类和队列规则420。资源配置指的是带宽、延迟和优先级资源。当一个需要网络资源隔离的容器300启动时,动态调整模块140需要将其所需的资源配置到类中。当其所需资源需要其它容器300来满足时,还可以调整其他容器300类的资源配置。当一个运行中的容器300停止时,动态调整模块140可以释放该容器300所拥有的网络资源并分配到其它运行中的容器300中。
实施例3
本实施例可以是对实施例1、2或者其结合的进一步改进和/或补充,重复的内容不再赘述。在不造成冲突或者矛盾的情况下,其他实施例的优选实施方式的整体和/或部分内容可以作为本实施例的补充。
本实施例公开了一种隔离方法,或者说一种用于隔离网络资源的方法,或者说一种用于容器网络的网络资源隔离方法,该方法可以由本发明的系统和/或其他可替代的零部件实现。比如,通过使用本发明的系统中的各个零部件实现本发明的方法。在不造成冲突或者矛盾的情况下,其他实施例的优选实施方式的整体和/或部分内容可以作为本实施例的补充。例如,实施例1中涉及操作的所有描述均可以作为对本实施例的方法步骤的补充。
根据一个优选实施方式,该方法可以包括:在相应的容器300发送数据包310之前按照让该数据包310在覆盖网络模式下仍保持该数据包310的源容器300信息不丢失的方式为该数据包310附上该容器300的专属的网络标记320;在覆盖网络模式和非覆盖网络模式下均通过数据包310上的网络标记320识别该数据包310的源容器300并将该数据包310分类到该源容器300的类410和队列规则420中;和/或监控主机100上的容器300的运行状态并在其中至少部分容器300的运行状态发生改变的情况下动态调整部分或者全部容器300的隔离的网络资源。
根据一个优选实施方式,参见图3,该方法可以包括:
步骤S100:根据容器300是启动、运行中还是停止进行不同操作,如果容器300是启动,则跳转到步骤S200,如果容器300是运行中,则跳转到步骤S400,如果容器300是停止,则跳转到步骤S700;
步骤S200:动态调整模块140为新启动的容器300向标记管理模块110申请该容器300专属的网络标记320,并建立用于隔离该容器300网络资源的类和队列规则420,然后跳转至步骤S300;
步骤S300:解析容器300启动参数,并将启动参数转化为流量控制命令,系统将带宽、延迟和优先级资源配置到类和队列规则420,然后跳转到S900;
步骤S400:容器300运行中,容器300发送数据包310,标记执行模块330根据容器300网络标记320进行数据包310标记,数据包310离开容器300发往主机100,然后跳转到S500;
步骤S500:数据包310到达容器300覆盖网络200,容器300数据包310被覆盖网络200封装,然后跳转到S600;
步骤S600:数据包310经过覆盖网络200后,到达主机100网络栈,由识别模块120获取源容器300的网络标识,识别模块120将数据包310分类到容器300所属的类,并在队列规则420中等待发送,然后跳转到步骤S900;
步骤S700:动态控制模块释放停止运行的容器300占用的带宽、延迟和优先级资源,然后跳转到步骤S800;
步骤S800:动态调整模块140删除该容器300的类410和队列规则420,并向标记管理模块110释放网络标记320,然后跳转到步骤S900;
步骤S900:结束当前操作。
根据一个优选实施方式,参见步骤S200和步骤S700,系统可以通过动态调整模块140根据容器300状态的变化自动调整容器300隔离资源。
根据一个优选实施方式,参见步骤S300,系统可以通过将容器300的启动参数转化为网络流量控制的命令使得资源隔离方案简单易用。
根据一个优选实施方式,参见步骤S600,本发明通过对覆盖网络200中的数据包310的源容器300的识别,解决了网络流量控制和资源隔离在覆盖网络200下的无效性。
如本文所用的词语“模块”描述任一种硬件、软件或软硬件组合,其能够执行与“模块”相关联的功能。
需要注意的是,上述具体实施例是示例性的,本领域技术人员可以在本发明公开内容的启发下想出各种解决方案,而这些解决方案也都属于本发明的公开范围并落入本发明的保护范围之内。本领域技术人员应该明白,本发明说明书及其附图均为说明性而并非构成对权利要求的限制。本发明的保护范围由权利要求及其等同物限定。
Claims (7)
1.一种计算系统,其特征在于,该系统包括:
至少一个处理器;
至少一个存储器;以及
至少一个指令,所述至少一个指令被存储在所述至少一个存储器上并且能由所述至少一个处理器执行以执行操作;
其中,所述操作包括:
在相应的容器发送数据包之前按照让该数据包在覆盖网络模式下仍保持该数据包的源容器信息不丢失的方式为该数据包附上该容器的专属的网络标记;
在覆盖网络模式和非覆盖网络模式下均通过数据包上的网络标记识别该数据包的源容器并将该数据包分类到该源容器的类和队列规则中;和
监控主机上的容器的运行状态并在其中至少部分容器的运行状态发生改变的情况下动态调整部分或者全部容器的隔离的网络资源;
所述在相应的容器发送数据包之前按照让该数据包在覆盖网络模式下仍保持该数据包的源容器信息不丢失的方式为该数据包附上该容器的专属的网络标记是通过将该容器的专属的网络标记附着在该数据包的控制信息结构体上;
管理主机中已经具备网络资源隔离能力的运行中的容器所使用的网络标记;
使用位图来记录相应的网络标记的状态;
当相应的新启动的容器需要申请网络标记时,从所述位图的低位起寻找可用的最小的网络标记分配给相应的新启动的容器;和
当运行中的容器停止运行时,将为该停止的容器分配的网络标记的状态改为可用。
2.根据权利要求1所述的计算系统,其特征在于,所述网络资源包括带宽资源、延迟资源和优先级资源中的至少一个。
3.根据权利要求2所述的计算系统,其特征在于,所述监控主机上运行的容器的运行状态并在其中至少部分容器的运行状态发生改变的情况下动态调整部分或者全部容器的隔离的网络资源的处理包括:
在监控到主机上有新启动的容器的情况下,为每个新启动的容器分配一个专属的网络标记,
为每个新启动的容器建立用于隔离该容器的网络资源的类和队列规则,
解析每个新启动的容器的启动参数以将所述启动参数转化为流量控制命令,和
根据相应的流量控制命令将隔离的网络资源配置到相应的新启动的容器的类和队列规则。
4.根据权利要求3所述的计算系统,其特征在于,所述监控主机上运行的容器的运行状态并在其中至少部分容器的运行状态发生改变的情况下动态调整部分或者全部容器的隔离的网络资源的处理包括:
在根据相应的流量控制命令将隔离的网络资源配置到相应的新启动的容器的类和队列规则之前识别主机可分配的网络资源,
当主机可分配的网络资源足以满足相应的新启动的容器对网络资源的需求时将可分配的网络资源中的至少部分网络资源分配给相应的新启动的容器,和
当主机可分配的网络资源不足以满足相应的新启动的容器对网络资源的需求时动态调整该主机上部分或者全部已分配网络资源的容器分配的网络资源以满足相应的新启动的容器对网络资源的需求。
5.根据权利要求4所述的计算系统,其特征在于,所述监控主机上运行的容器的运行状态并在其中至少部分容器的运行状态发生改变的情况下动态调整部分或者全部容器的隔离的网络资源的处理包括:
在监控到主机上有容器停止运行的情况下,释放该停止的容器占用的网络资源,删除该停止的容器的类和队列规则,并且释放为该停止的容器分配的专属的网络标记。
6.根据权利要求5所述的计算系统,其特征在于,所述操作还包括:
接收将主机的部分容器设定为特定容器的请求;
响应于该请求而将主机的对应容器设定为特定容器;和
在主机可分配的网络资源不足以满足相应的新启动的容器对网络资源的需求时不调整为特定容器分配的网络资源,仅从未被设定为特定容器的容器中选取至少部分容器并对被选取的至少部分容器的分配的网络资源进行调整以满足相应的新启动的容器对网络资源的需求。
7.一种用于容器网络的网络资源隔离方法,其特征在于,所述方法包括:
在相应的容器发送数据包之前按照让该数据包在覆盖网络模式下仍保持该数据包的源容器信息不丢失的方式为该数据包附上该容器的专属的网络标记;
在覆盖网络模式和非覆盖网络模式下均通过数据包上的网络标记识别该数据包的源容器并将该数据包分类到该源容器的类和队列规则中;
监控主机上的容器的运行状态并在其中至少部分容器的运行状态发生改变的情况下动态调整部分或者全部容器的隔离的网络资源;
所述在相应的容器发送数据包之前按照让该数据包在覆盖网络模式下仍保持该数据包的源容器信息不丢失的方式为该数据包附上该容器的专属的网络标记是通过将该容器的专属的网络标记附着在该数据包的控制信息结构体上;
管理主机中已经具备网络资源隔离能力的运行中的容器所使用的网络标记;
使用位图来记录相应的网络标记的状态;
当相应的新启动的容器需要申请网络标记时,从位图的低位起寻找可用的最小的网络标记分配给相应的新启动的容器;
和/或当运行中的容器停止运行时,将为该停止的容器分配的网络标记的状态改为可用。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910274987.9A CN110120919B (zh) | 2019-04-04 | 2019-04-04 | 一种用于容器网络的网络资源隔离方法和系统 |
US16/773,051 US11121965B2 (en) | 2019-04-04 | 2020-01-27 | Network resource isolation method for container network and system thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910274987.9A CN110120919B (zh) | 2019-04-04 | 2019-04-04 | 一种用于容器网络的网络资源隔离方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110120919A CN110120919A (zh) | 2019-08-13 |
CN110120919B true CN110120919B (zh) | 2021-01-12 |
Family
ID=67520909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910274987.9A Active CN110120919B (zh) | 2019-04-04 | 2019-04-04 | 一种用于容器网络的网络资源隔离方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11121965B2 (zh) |
CN (1) | CN110120919B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11588693B2 (en) * | 2020-02-26 | 2023-02-21 | Red Hat, Inc. | Migrating networking configurations |
CN111371696B (zh) * | 2020-03-24 | 2022-07-12 | 广西梯度科技股份有限公司 | 一种在Kubernetes中实现Pod网络流控的方法 |
US11196679B2 (en) * | 2020-03-27 | 2021-12-07 | Arista Networks, Inc. | Methods and systems for resource optimization |
CN111541651B (zh) * | 2020-03-31 | 2022-10-21 | 新华三技术有限公司 | 一种通信方法及装置 |
CN113746692A (zh) * | 2021-07-21 | 2021-12-03 | 网宿科技股份有限公司 | 网络流量统计的方法、电子设备及存储介质 |
CN113381897B (zh) * | 2021-08-13 | 2021-11-09 | 浩鲸云计算科技股份有限公司 | 实现calico网络下容器实例级的带宽控制方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109067581A (zh) * | 2018-08-03 | 2018-12-21 | 中国联合网络通信集团有限公司 | 基于层次分析法的计算网络选择方法及平台 |
CN109561108A (zh) * | 2019-01-07 | 2019-04-02 | 中国人民解放军国防科技大学 | 一种基于策略的容器网络资源隔离控制方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070028291A1 (en) * | 2005-07-29 | 2007-02-01 | Bit 9, Inc. | Parametric content control in a network security system |
WO2009151877A2 (en) * | 2008-05-16 | 2009-12-17 | Terahop Networks, Inc. | Systems and apparatus for securing a container |
EP3130133B1 (en) * | 2014-04-11 | 2019-11-06 | Nokia Solutions and Networks GmbH & Co. KG | Multi tenancy in software defined networking |
US9992082B2 (en) * | 2015-12-04 | 2018-06-05 | CENX, Inc. | Classifier based graph rendering for visualization of a telecommunications network topology |
US10341409B2 (en) * | 2016-05-09 | 2019-07-02 | International Business Machines Corporation | Software version control without affecting a deployed container |
US10257152B2 (en) * | 2017-03-10 | 2019-04-09 | Nicira, Inc. | Suppressing ARP broadcasting in a hypervisor |
US10270711B2 (en) * | 2017-03-16 | 2019-04-23 | Red Hat, Inc. | Efficient cloud service capacity scaling |
US11178023B2 (en) * | 2017-06-30 | 2021-11-16 | Intel Corporation | Data plane interface network quality of service in multi-tenant data centers |
US10757076B2 (en) * | 2017-07-20 | 2020-08-25 | Nicira, Inc. | Enhanced network processing of virtual node data packets |
CN108521403A (zh) * | 2018-03-09 | 2018-09-11 | 山东超越数控电子股份有限公司 | 一种对Docker容器平台上多租户网络进行隔离的方法 |
US10740009B2 (en) * | 2018-07-05 | 2020-08-11 | Red Hat, Inc. | Flexible deprovisioning of distributed storage |
US10909067B2 (en) * | 2018-08-07 | 2021-02-02 | Futurewei Technologies, Inc. | Multi-node zero-copy mechanism for packet data processing |
US10986041B2 (en) * | 2018-08-07 | 2021-04-20 | Futurewei Technologies, Inc. | Method and apparatus for virtual network functions and packet forwarding |
-
2019
- 2019-04-04 CN CN201910274987.9A patent/CN110120919B/zh active Active
-
2020
- 2020-01-27 US US16/773,051 patent/US11121965B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109067581A (zh) * | 2018-08-03 | 2018-12-21 | 中国联合网络通信集团有限公司 | 基于层次分析法的计算网络选择方法及平台 |
CN109561108A (zh) * | 2019-01-07 | 2019-04-02 | 中国人民解放军国防科技大学 | 一种基于策略的容器网络资源隔离控制方法 |
Non-Patent Citations (1)
Title |
---|
基于容器云平台的网络资源管理与配置系统设计与实现;陈星宇;《浙江大学硕士毕业论文数据库》;20160109;正文第14、19、25、67-70页及图2.2、图8.6、表8.1 * |
Also Published As
Publication number | Publication date |
---|---|
CN110120919A (zh) | 2019-08-13 |
US20200322263A1 (en) | 2020-10-08 |
US11121965B2 (en) | 2021-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110120919B (zh) | 一种用于容器网络的网络资源隔离方法和系统 | |
US10649798B2 (en) | Virtual switching method, related apparatus, and computer system | |
US10908936B2 (en) | System and method for network function virtualization resource management | |
US9999030B2 (en) | Resource provisioning method | |
US9264375B2 (en) | Software-defined networking interface between multiple platform managers | |
CN111542064B (zh) | 一种用于无线接入网的容器编排管理系统及编排方法 | |
US9813283B2 (en) | Efficient data transfer between servers and remote peripherals | |
US8027354B1 (en) | Network consolidation for virtualized servers | |
US20130298126A1 (en) | Computer-readable recording medium and data relay device | |
US20180069778A1 (en) | Dialing Test Method, Dialing Test System, and Computing Node | |
CN114024880B (zh) | 基于代理ip与流表的网络靶场探针采集方法与系统 | |
US10868716B1 (en) | Hierarchical resource groups for providing segregated management access to a distributed switch | |
US10348683B2 (en) | Network packet filtering via media access control (MAC) address learning | |
JP2003188877A (ja) | 分散ネットワークインフラストラクチャサービスを管理するシステム | |
EP2369793A1 (en) | Method and system for NIC-centric hyper-channel distributed network management | |
US10819658B2 (en) | Network management with network virtualization based on modular quality of service control (MQC) | |
US20180025052A1 (en) | Infrastructure aware query optimization | |
EP4109251A1 (en) | Vnf instantiation method and device | |
US20120140640A1 (en) | Apparatus and method for dynamically processing packets having various characteristics | |
US8762485B2 (en) | Information system having computer and storage apparatus coupled to network | |
CN111865809B (zh) | 基于协议无感知转发的设备状态感知方法、系统及交换机 | |
US20230109396A1 (en) | Load balancing and networking policy performance by a packet processing pipeline | |
KR101934908B1 (ko) | Sdn 기반의 통합 라우팅에 의한 피씨 전원 제어 방법 | |
JP2017184195A (ja) | 通信管理装置、通信管理方法及びプログラム | |
CN107769983B (zh) | 一种基于扩展vSDN的网络功能共享方法及系统 |
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 |