一种用于容器网络的网络资源隔离方法和系统技术方案

技术编号:21853887 阅读:28 留言:0更新日期:2019-08-14 01:10
本发明专利技术涉及一种用于容器网络的网络资源隔离方法和系统,该系统包括:至少一个处理器;至少一个存储器;以及至少一个指令;所述至少一个指令被存储在所述至少一个存储器上并且能由所述至少一个处理器执行以执行操作;其中,所述操作包括:在相应的容器发送数据包之前按照让该数据包在覆盖网络模式下仍保持该数据包的源容器信息不丢失的方式为该数据包附上该容器的专属的网络标记;在覆盖网络模式和非覆盖网络模式下均通过数据包上的网络标记识别该数据包的源容器并将该数据包分类到该源容器的类和队列规则中;和监控主机上的容器的运行状态并在其中至少部分容器的运行状态发生改变的情况下动态调整部分或者全部容器的隔离的网络资源。

A Network Resource Isolation Method and System for Container Networks

【技术实现步骤摘要】
一种用于容器网络的网络资源隔离方法和系统
本专利技术涉及计算机应用系统领域,尤其涉及一种用于容器网络的网络资源隔离方法和系统。
技术介绍
容器作为轻量级虚拟化技术,已广泛部署在云数据中心,在性能提升和降低成本方面具有重要意义。与传统的虚拟机技术相比,容器通过使用命名空间共享主机的操作系统内核而不是每个应用程序需要一个操作系统来保证更高的效率和更少的资源。但是,作为虚拟机的轻量级版本,容器只能提供应用程序级别的抽象,因此无法提供强大的硬件隔离和复杂的资源管理。不同容器的资源需求因类型和数量而异。当多个容器在一台主机上运行并相互共享操作系统内核时,资源竞争永远无法避免,严重阻碍了系统性能。为了解决这个问题,Docker作为主流的一种容器技术,使用Linux提供的资源控制组CGroup为容器提供CPU,内存和磁盘资源隔离和分配。遗憾的是,在当前容器框架中完全忽略了一个主机内的数百个、数千个甚至更多的容器执行内部和主机间通信所需的网络资源。因此,为容器网络提供一种网络资源隔离和网络流量控制方案至关重要。为了提供轻量级的网络隔离和流量控制,Linux系统提供的流量控制模块是一种理想的选择。流量控制模块即TrafficControl,简称TC。由于其轻量级和强大的可扩展性,TC现在广泛用于虚拟化环境和网络流量控制场景。一些研究还表明将TC引入容器系统的可能性和优势。但由于以下三个因素,TC不能直接应用于容器网络资源隔离和流量控制:第一,容器在多种网络模式下运行,以适应不同的工作负载,如覆盖网络overlay和非覆盖网络non-overlay。覆盖网络是在另一个网络之上运行以在节点之间构建虚拟链路的网络。换言之,覆盖网络可以指在底层网络之上实现并在其上操作的抽象网络。底层网络可包括彼此互连的多个物理网络节点。覆盖网络可包括一个或多个虚拟网络。虚拟网络通常是指覆盖网络中底层网络的一部分的抽象。虚拟网络可包括被称为承租者站点的一个或多个虚拟端点,该一个或多个虚拟端点被用户或承租者单独地使用以访问虚拟网络和相关联的计算、存储、或其他合适的资源。覆盖网络可以是指使用覆盖网络的容器数据包会被VXLAN和主机的UDP报文头封装,主机对容器数据包IP不可见的网络。而非覆盖网络可以是指使用非覆盖网络的容器数据包不会被封装,直接转发到主机上,主机对容器数据包的IP可见的网络。常见的覆盖网络有:Docker原生覆盖网络、Flannel和Weave;非覆盖网络有:NAT和Calico。一个使用覆盖网络的容器数据包会被XVLAN和主机的UDP报文头封装,导致容器IP被隐藏。VXLAN即VirtualExtensibleLAN,是一种网络虚似化技术,基于IP网络且采用“MACinUDP”封装形式的二层VPN技术。UDP是UserDatagramProtocol的缩写,中文名是用户数据报协议。TC在覆盖网络的容器环境中是无效。原因是TC有两种过滤器来实现数据包识别,即Classid过滤器和IP过滤器,它们都无法在多种网络模式下跟踪容器数据包。对于Classid过滤器,Classid是一个网络命名空间专用的数据包信息之一,这意味着Classid过滤器不是为容器设计的,因为容器数据包需要跨越网络命名空间而导致Classid丢失。对于IP过滤器,它需要容器IP来跟踪数据包。遗憾的是,我们知道覆盖网络隐藏了容器IP,这意味着IP过滤器仅在非覆盖网络下才能正常工作。也就是说,TC无法提供一体适用的网络隔离和流量控制解决方案,也无法在多种网络模式下管理容器。第二,TC操作和配置相对复杂,需要充分了解流量控制细节,让容器使用者理解和学习TC的操作和配置会增加使用者的负担。第三,TC仅关注静态网络隔离和流量控制。也就是说,一旦执行TC命令,就无法更改容器组织和资源配置。因此,当启动新容器时,我们无法通过全局考虑资源要求和服务质量来调整现有容器的资源分配。同样,如果已启动的容器被停用,也无法将已释放的资源重新分配给其他容器以提高资源利用率。请注意,容器生命周期短且用途多种多样。换句话说,每个服务器可以托管数百或数千个经常启动和停用的已启动容器。原始的TC资源分配算法无法处理容器环境中的高动态,并且会导致性能下降。目前还缺乏一种满足容器所有网络模式和适应容器特点的网络资源隔离方案,特别在容器覆盖网络,没有有效的隔离方案。
技术实现思路
针对现有技术之不足,本专利技术提供了一种用于容器网络的网络资源隔离方法和系统。本专利技术主要提供了一种适合所有容器网络模式并适应容器特点的隔离方案。该方案在TC的基础上,解决了TC在容器环境下面对容器覆盖网络的无效性、配置的复杂性和隔离组织和资源配置的静态性的问题。本专利技术为容器覆盖网络提供了一种资源隔离方案,同时它也降低了网络资源隔离的使用门槛和优化了网络资源的利用率。根据一个优选实施方式,一种计算系统,该系统包括:至少一个处理器;至少一个存储器;以及至少一个指令;所述至少一个指令被存储在所述至少一个存储器上并且能由所述至少一个处理器执行以执行操作;其中,所述操作包括:在相应的容器发送数据包之前按照让该数据包在覆盖网络模式下仍保持该数据包的源容器信息不丢失的方式为该数据包附上该容器的专属的网络标记;在覆盖网络模式和非覆盖网络模式下均通过数据包上的网络标记识别该数据包的源容器并将该数据包分类到该源容器的类和队列规则中;和监控主机上的容器的运行状态并在其中至少部分容器的运行状态发生改变的情况下动态调整部分或者全部容器的隔离的网络资源。根据一个优选实施方式,所述在相应的容器发送数据包之前按照让该数据包在覆盖网络模式下仍保持该数据包的源容器信息不丢失的方式为该数据包附上该容器的专属的网络标记是通过将该容器的专属的网络标记附着在该数据包的控制信息结构体上。根据一个优选实施方式,所述网络资源包括带宽资源、延迟资源和优先级资源中的至少一个。根据一个优选实施方式,监控主机上运行的容器的运行状态并在其中至少部分容器的运行状态发生改变的情况下动态调整部分或者全部容器的隔离的网络资源的处理包括:在监控到主机上有新启动的容器的情况下,为每个新启动的容器分配一个专属的网络标记,为每个新启动的容器建立用于隔离该容器的网络资源的类和队列规则,解析每个新启动的容器的启动参数以将所述启动参数转化为流量控制命令,和根据相应的流量控制命令将隔离的网络资源配置到相应的新启动的容器的类和队列规则。根据一个优选实施方式,监控主机上运行的容器的运行状态并在其中至少部分容器的运行状态发生改变的情况下动态调整部分或者全部容器的隔离的网络资源的处理包括:在根据相应的流量控制命令将隔离的网络资源配置到相应的新启动的容器的类和队列规则之前识别主机可分配的网络资源,当主机可分配的网络资源足以满足相应的新启动的容器对网络资源的需求时将可分配的网络资源中的至少部分网络资源分配给相应的新启动的容器,和当主机可分配的网络资源不足以满足相应的新启动的容器对网络资源的需求时动态调整该主机上部分或者全部已分配网络资源的容器分配的网络资源以满足相应的新启动的容器对网络资源的需求。根据一个优选实施方式,所述监控主机上运行的容器的运行状态并在其中至少部分容器的运行状态发生改变的情况下动态调整部分或者全部容器的本文档来自技高网
...

【技术保护点】
1.一种计算系统,其特征在于,该系统包括:至少一个处理器;至少一个存储器;以及至少一个指令,所述至少一个指令被存储在所述至少一个存储器上并且能由所述至少一个处理器执行以执行操作;其中,所述操作包括:在相应的容器发送数据包之前按照让该数据包在覆盖网络模式下仍保持该数据包的源容器信息不丢失的方式为该数据包附上该容器的专属的网络标记;在覆盖网络模式和非覆盖网络模式下均通过数据包上的网络标记识别该数据包的源容器并将该数据包分类到该源容器的类和队列规则中;和监控主机上的容器的运行状态并在其中至少部分容器的运行状态发生改变的情况下动态调整部分或者全部容器的隔离的网络资源。

【技术特征摘要】
1.一种计算系统,其特征在于,该系统包括:至少一个处理器;至少一个存储器;以及至少一个指令,所述至少一个指令被存储在所述至少一个存储器上并且能由所述至少一个处理器执行以执行操作;其中,所述操作包括:在相应的容器发送数据包之前按照让该数据包在覆盖网络模式下仍保持该数据包的源容器信息不丢失的方式为该数据包附上该容器的专属的网络标记;在覆盖网络模式和非覆盖网络模式下均通过数据包上的网络标记识别该数据包的源容器并将该数据包分类到该源容器的类和队列规则中;和监控主机上的容器的运行状态并在其中至少部分容器的运行状态发生改变的情况下动态调整部分或者全部容器的隔离的网络资源。2.根据权利要求1所述的计算系统,其特征在于,所述在相应的容器发送数据包之前按照让该数据包在覆盖网络模式下仍保持该数据包的源容器信息不丢失的方式为该数据包附上该容器的专属的网络标记是通过将该容器的专属的网络标记附着在该数据包的控制信息结构体上。3.根据前述权利要求之一所述的计算系统,其特征在于,所述网络资源包括带宽资源、延迟资源和优先级资源中的至少一个。4.根据前述权利要求之一所述的计算系统,其特征在于,所述监控主机上运行的容器的运行状态并在其中至少部分容器的运行状态发生改变的情况下动态调整部分或者全部容器的隔离的网络资源的处理包括:在监控到主机上有新启动的容器的情况下,为每个新启动的容器分配一个专属的网络标记,为每个新启动的容器建立用于隔离该容器的网络资源的类和队列规则,解析每个新启动的容器的启动参数以将所述启动参数转化为流量控制命令,和根据相应的流量控制命令将隔离的网络资源配置到相应的新启动的容器的类和队列规则。5.根据前述权利要求之一所述的计算系统,其特征在于,所述监控主机上运行的容器的运行状态并在其中至少部分容器的运行状态发生改变的情况下动态调整部分或者全部容器的隔离的网络资源的处理包括:在根据相应的流量控制命令将隔离的网络资源配置到相应的新启动的容器的类和队列规则之前识别主机可分配的网络资源,当主机可分配的网络资源足以满足相应的新启动的容器对网络资源的需求时将可分配的网络资源中的至少部分网络资源分配给相应的新启动的容器,和当主机可分配的网络资源不足以满足相应的新启动的容器对...

【专利技术属性】
技术研发人员:吴松金海关君健
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北,42

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

1