CN107566541A - 容器网络资源分配方法、系统、存储介质和电子设备 - Google Patents
容器网络资源分配方法、系统、存储介质和电子设备 Download PDFInfo
- Publication number
- CN107566541A CN107566541A CN201710685001.8A CN201710685001A CN107566541A CN 107566541 A CN107566541 A CN 107566541A CN 201710685001 A CN201710685001 A CN 201710685001A CN 107566541 A CN107566541 A CN 107566541A
- Authority
- CN
- China
- Prior art keywords
- container
- network
- port
- address
- module
- 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.)
- Granted
Links
Abstract
本发明提供容器网络资源分配方法、系统、存储介质和电子设备,该方法包括:配置多台宿主机运行的网络,为不同宿主机的所有容器提供多个不重复的IP地址;从配置的网络中申请一IP地址,生成对应该IP地址的端口;下发容器创建任务;根据调度策略,相应的宿主机接收并解析容器创建任务,获取端口对应的IP地址,根据IP地址创建透明网络,并在透明网络中创建容器,建立容器与IP地址的映射关系;于容器运行完毕时,宿主机接收容器删除任务,删除容器,并删除容器与IP地址的映射关系。本发明实现多台宿主机上不同容器具有独立唯一的IP,确保部署在多台宿主机上的容器运行的服务之间互相通信。并且,将网络和容器的创建及删除自动化,极大地提高了效率。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种容器网络资源分配方法、系统、存储介质和电子设备。
背景技术
随着互联网的不断发展,对应用服务的上线时间要求越来越高,希望缩短环境准备时间,做到秒级部署。
互联网平台最开始将应用部署在物理机上,为了保证互不冲突,在一台物理机上只部署一个应用。随着应用服务的不断发展,一台物理机部署一个应用的策略过于浪费资源,因此在一台物理机上部署了多个应用,但是为管理带来了麻烦,应用之间有一定的冲突或者相互影响。
虚拟机应运而生,虚拟机上可以部署更多的应用,而且隔离比较好。但是虚拟机资源隔离的粒度太粗,于是容器发展起来。容器能做到把一个应用打包,涵盖环境配置等信息,运行起来可以只是一个进程,又具备一定的隔离性,同时把资源使用的粒度控制得足够细。
对于windows系统来说,有两种容器(container)类型,分别是Windows servercontainer和hyper-v container。hyper-v container类似于虚拟机,采用独立的操作系统,对于资源的隔离度比较好。例如微软公有云的容器服务采取hyper-v容器类型,考虑到公有云上面部署的应用不是受信任的,相互之间有可能冲突,因此采用隔离度好的hyper-v container。Windows server Container的资源获取速度较快,且Windows serverContainer共享宿主机的内核,可以在宿主机上看到每个Windows server Container里面的进程,方便管理。此外,Windows server Container内存可以共享,分配后可以释放修改,因此比较适合做私有云的产品,方便宿主机对Windows server Containers的统一管理。
但是,一台宿主机上可以部署的Windows server Container(为方便描述,下文中统称为容器)的数量有限,超过一定数量例如几百个后,一台宿主机就远远不能满足需求了。同时,应用都必须具有高可用性,因此,也需要将应用部署在多台宿主机上,当一台宿主机发生故障时,部署在另外几台宿主机上的应用可以继续服务。对于windows应用,尤其是windows web应用,服务之间需要互相访问,相互通信。即需要实现多台宿主机上的容器之间的通信。
现有的windows系统中容器网络互连解决方案主要有四种,第一种是NAT(NetworkAddress Translation,网络地址转换)模式,容器的服务通过端口映射到宿主机的IP上,用户通过宿主机IP加端口的访问方式访问端口,其缺点在于:需要对宿主机的端口进行管理,对于服务需要使用同一个端口的情况,单台宿主机无法满足需求。
第二种是transparent网络模式,对于相同端口的应用,transparent网络支持为每个容器分配独有的IP,其在宿主机上有对应的IPAM(IP地址管理),对于分布式的多台宿主机的情况,每台宿主机上的IPAM都可以分配IP地址。但是宿主机之间无法通信,这样就势必会造成不同宿主机上容器的IP冲突导致服务不可用。同时,使用transparent网络,需要在创建容器前先创建对应的容器网络,网络有变更或没有容器使用该网络时,需要删除对应的容器网络,无法做到自动化。
还有两种是L2bridge以及Tunnel mode,这两种网络模式均有一定局限性,因此应用不广。
本发明基于transparent网络模式进行改进,意在实现不同宿主机上容器互相通信。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
针对现有技术中的缺陷,本发明提供一种容器网络资源分配方法、系统、存储介质和电子设备,旨在实现多台宿主机上的容器具有独立唯一的IP,确保部署在多台宿主机上的容器服务之间可以互相通信。同时,将网络和容器创建删除原子化,无需在创建容器前手动创建网络,网络不用时手动删除网络,容器网络资源分配自动化提高效率,有效解决现有技术中存在的前述问题。
根据本发明的一个方面,提供一种容器网络资源分配方法,用于实现多台宿主机上多个容器之间网络互连,容器用于提供服务运行的隔离的操作环境,每台宿主机上可部署多个容器,所述方法包括:
步骤S101、配置多台所述宿主机运行的网络,为不同宿主机的所有容器提供多个不重复的IP地址;
步骤S102、从配置的网络中申请一IP地址,生成对应所述IP地址的端口,所述端口采用端口ID进行标识;
步骤S103、下发容器创建任务,所述容器创建任务携带所述端口ID,并根据调度策略选择对应的宿主机执行所述容器创建任务;
步骤S104、所述宿主机接收并解析所述容器创建任务,根据所述端口ID获取所述端口对应的网络信息,所述网络信息包括所述IP地址,根据所述网络信息创建透明网络,并在所述透明网络中创建容器,建立所述容器与所述IP地址的映射关系;
步骤S105、将执行所述容器创建任务的宿主机反馈至所述端口,使所述端口与所述宿主机建立映射,所述宿主机监控并实时反馈所创建的所述容器的运行状态;
步骤S106、于所述容器运行完毕时,所述宿主机接收容器删除任务,删除所述容器,并删除所述容器与所述IP地址的映射关系。
优选地,上述的容器网络资源分配方法中,所述步骤S106还执行:检查所述容器运行的透明网络中是否有其他容器在运行,若是,则不删除所述透明网络,若否,则删除所述透明网络。
优选地,上述的容器网络资源分配方法中,使用同一网络配置的所述端口ID对应一虚拟局域网,所述S104中,根据所述网络信息创建透明网络,并在所述透明网络中创建容器,建立所述容器与所述IP地址的映射关系的步骤具体包括:
步骤S114、判断所述端口ID对应的虚拟局域网是否有匹配的透明网络存在,若是,则执行步骤S134,若否,则执行步骤S124;
步骤S124、根据所述网络信息创建透明网络;
步骤S134、在所述透明网络中创建容器,建立所述容器与所述IP地址的映射关系。
优选地,上述的容器网络资源分配方法中,所述端口ID为所述端口的通用唯一识别码。
根据本发明的另一个方面,提供一种容器网络资源分配系统,用于实现多台宿主机上多个容器之间网络互连,容器用于提供服务运行的隔离的操作环境,每台宿主机上可部署多个容器,所述网络资源分配系统包括网络配置模块、端口创建模块和调度控制模块,每台宿主机包括客户端调度模块、任务执行模块、客户端网络模块和容器管理模块,其中,
网络配置模块,用于配置多台所述宿主机运行的网络,为不同宿主机的所有容器提供多个不重复的IP地址;
端口创建模块,用于从配置的网络中申请一IP地址,生成对应所述IP地址的端口,所述端口采用端口ID进行标识;
调度控制模块,用于下发容器创建任务,所述容器创建任务携带所述端口ID,并根据调度策略选择对应的宿主机执行所述容器创建任务;
客户端调度模块,用于接收所述容器创建任务,并触发任务执行模块;
任务执行模块,用于解析所述容器创建任务,并触发客户端网络模块;
客户端网络模块,用于根据所述端口ID获取所述端口对应的网络信息,所述网络信息包括所述IP地址,返回至任务执行模块,并触发容器管理模块;
容器管理模块,用于根据所述网络信息创建透明网络,并在所述透明网络中创建容器,建立所述容器与所述IP地址的映射关系。
优选地,上述的容器网络资源分配系统中,所述容器管理模块创建完所述容器后,将所述宿主机信息传递至客户端网络模块,所述客户端网络模块将所述宿主机信息反馈至所述端口创建模块,使所述端口与所述宿主机建立映射;以及
任务执行模块监控并将所述容器的运行状态反馈至所述客户端调度模块,所述客户端调度模块将所述容器的运行状态反馈至所述调度控制模块。
优选地,上述的容器网络资源分配系统中,所述调度控制模块下发容器删除任务时,所述客户端调度模块接收并传递所述容器释放任务至所述任务执行模块,所述任务执行模块调用所述容器管理模块删除所述容器,并删除所述容器与所述IP地址的映射关系;以及
所述容器管理模块获取所述容器运行的透明网络,查看所述透明网络中是否有其他容器在运行,若是,则不删除所述透明网络,若否,则删除所述透明网络。
优选地,上述的容器网络资源分配系统中,使用同一网络配置的所述端口ID对应一虚拟局域网,所述容器管理模块具体执行:
判断所述端口ID对应的虚拟局域网是否有匹配的透明网络存在,若是,则直接在已存在的所述透明网络中创建容器,建立所述容器与所述IP地址的映射关系;若否,则根据所述网络信息创建透明网络,并且在创建的所述透明网络中创建容器,建立所述容器与所述IP地址的映射关系。
根据本发明的另一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述的容器网络资源分配方法的步骤。
根据本发明的另一个方面,提供一种电子设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行上述的容器网络资源分配方法的步骤。
有鉴于此,本发明与现有技术相比的有益效果在于:本发明解决了分布式多台宿主机上容器互通性的需求,提供了一种分布式的自动化容器网络资源管理方法。本发明将容器网络创建和容器创建,容器网络删除和容器删除自动化,大大提高效率,解决了分布式容器之间的互通性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本发明示例性实施例中一种容器网络资源分配方法的流程示意图;
图2示出本发明示例性实施例中一种容器网络资源分配系统的模块示意图;
图3示出本发明示例性实施例中一种计算机可读存储介质的示意图;
图4示出本发明示例性实施例中一种电子设备的示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本发明的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
本发明的容器网络资源分配方法,用于实现多台宿主机上多个容器之间网络互连,宿主机可以是一台物理服务器,容器用于提供服务运行的隔离的操作环境,每台宿主机上可部署多台容器。如上文背景技术部分提及,互联网平台的应用需要不断地发布、测试、编译,是一项很大的繁琐工程。这行应用最初运行在虚拟机里,导致资源使用率低,且构建环境经常不一致。基于此,将应用项目(或称服务项目)容器化,应用的不同部分部署在不同的容器中运行。这使服务开发速度更快,测试更简单。
容器直接搭载在宿主机操作系统上,能够与宿主机直接通信。但是,一台宿主机所能承载的容器数量有限,随着应用的不断开发,需要加入更多容器提供更丰富的应用服务,这就需要使用多台宿主机。另外,web应用相互通信的需求,也需要多台宿主机共同服务。而多台宿主机的容器之间无法相互通信,或者说,多台宿主机的环境下,系统无法为分布于不同宿主机上的每个容器分配不冲突的IP地址,导致多台宿主机的容器之间无法有效通信。基于此,本发明提供分布式的自动化容器网络资源管理方法,解决分布式多台宿主机上容器互通性的需求。
图1是本发明实施例中一种容器网络资源分配方法的流程示意图。参照图1所示,本发明的容器网络资源分配方法主要包括以下步骤:
步骤S101、配置多台宿主机运行的网络,为不同宿主机的所有容器提供多个不重复的IP地址。具体的,网络的配置包括子网(subnet)、网关(gateway)、IP地址范围(iprange)等网络信息的配置。将多台宿主机置于同一网络中进行配置,统一给多台宿主机分配IP地址范围,也即多个不重复的IP地址,使得多台宿主机使用IP地址时均从该分配的IP地址范围中选址,不会出现同一IP被不同宿主机同时分配至不同容器的情况。
步骤S102、从配置好的网络中申请一IP地址,生成对应该IP地址的端口,端口采用端口ID进行标识。具体的,是从配置好的IP地址范围中申请一个IP地址,生成对应该IP地址的端口(port),每个port用一个UUID(Universally Unique Identifier,通用唯一识别码)进行标识,简称端口ID(port id),端口中包含该IP地址的相关信息。
步骤S103、下发容器创建任务,容器创建任务携带端口ID,并根据调度策略选择对应的宿主机执行容器创建任务。其中,调度策略可根据实际应用场景进行配置,例如选择容器数量较少的宿主机下发容器创建任务,或者选择与要在待创建的容器上运行的服务相关联的宿主机下发该容器创建任务。
步骤S104、对应的宿主机接收并解析容器创建任务,根据端口ID获取端口对应的网络信息及IP地址,根据网络信息创建透明网络,并在透明网络中创建容器,建立容器与IP地址的映射关系。具体的,宿主机接收到创建容器任务后,解析容器创建任务的—labelport参数(端口所携带的参数),根据port id获取子网,网关,IP地址等网络信息。根据对应的网络信息,创建对应的透明网络,继而创建指定IP的容器。
其中,透明网络即transparent网络,transparent网络模式是主要用于生产的网络模式,它通过MAC地址伪装实现数据透传,对网络的性能本身折损较少,支持把多个工作网卡绑到一个交换机上,然后把这个交换机给容器用。但在容器宿主机以外的机器上看到容器和一台物理机并无区别。
步骤S105、将执行容器创建任务的宿主机反馈至端口,使端口与宿主机建立映射,宿主机监控并实时反馈所创建的容器的运行状态。为使系统知道分配的IP地址被哪个宿主机使用,创建完容器后,会将执行容器创建任务的宿主机信息更新到port中。步骤S106、于容器运行完毕时,宿主机接收容器删除任务,删除该容器,并删除所述容器与该IP地址的映射关系。这样,当所创建的容器执行完应用任务后,及时将容器删除,并释放容器与该IP地址的映射关系,使得该IP地址仍可被下一个容器使用,增加网络资源的利用率。而在该容器执行应用服务的期间,因该容器与该IP地址建立了映射关系,该IP地址处于使用状态,其他容器无法在同一时间使用该IP地址,保证了IP地址与容器之间的唯一映射关系。
进一步的,步骤S106还执行:查看所述容器运行的透明网络中是否有其他容器在运行,若是,则不删除该透明网络,若否,则删除该透明网络。也就是说,容器运行完毕后,会进一步判断容器使用的透明网络是否还有其他容器在用,若无其他容器使用时,则删除该宿主机上的该透明网络,进一步释放网络资源。通过上述步骤,将容器网络创建和容器创建、容器网络删除和容器删除自动化,大大提高效率,解决了分布式容器之间的互通性。
在优选的实施方式中,因具有同一网络配置的端口的端口ID对应一虚拟局域网名(vlan.name),因此在步骤S104中,根据IP地址等网络信息创建透明网络,并在透明网络中创建容器,建立容器与IP地址的映射关系的步骤具体包括:步骤S114、判断该端口ID对应的vlan.name是否有匹配的透明网络存在,若是,则执行步骤S134,若否,则执行步骤S124;步骤S124、根据包含该IP地址的网络信息创建透明网络;步骤S134、在该透明网络中创建容器,建立容器与IP地址的映射关系。也就是说,判断端口ID对应的vlan.name是否有匹配的透明网络存在,若是,则直接在已存在的透明网络中创建容器,建立容器与IP地址的映射关系;若否,则根据包含该IP地址的网络信息创建透明网络,并且在创建的透明网络中创建容器,建立容器与IP地址的映射关系。
本发明还提供一种容器网络资源分配系统,用于实现多台宿主机上多个容器之间网络互连,容器用于提供服务运行的隔离的操作环境,每台宿主机上可部署多个容器。图2是本发明实施例中一种容器网络资源分配系统的模块示意图。如图2所示,网络资源分配系统10包括网络配置模块101、端口创建模块102和调度控制模块103,每台宿主机20包括客户端调度模块201、任务执行模块202、客户端网络模块203和容器管理模块204。
网络配置模块101用于配置多台宿主机(图2中为方便展示,仅示意出一台宿主机20,但实际系统中包含多台宿主机)运行的网络,包括子网信息、网关信息、IP地址范围等网络信息的配置,从而为不同宿主机的所有容器提供多个不重复的IP地址。
端口创建模块102用于从配置的网络中申请一IP地址,生成对应该IP地址的端口,每个端口(port)会用一个UUID(Universally Unique Identifier,通用唯一识别码)进行标识,简称port id,port中包含该IP的相关信息。
调度控制模块103用于下发容器创建任务,容器创建任务携带端口ID,并根据调度策略选择对应的宿主机执行容器创建任务。具体的,调度控制模块下发创建—label port容器任务,为上述端口创建模块生成的port id的容器创建任务。
客户端调度模块201用于接收容器创建任务,并触发任务执行模块202;任务执行模块202用于解析容器创建任务,并触发客户端网络模块203;客户端网络模块203用于根据端口ID获取端口对应的网络信息及IP地址。也即,客户端调度模块201收到容器创建任务后,调用任务执行模块202解析该容器创建任务的—label port参数,根据port id调用网络客户端模块203获取网络的subnet,gateway,IP地址等网络信息。获取到网络信息后,返回至任务执行模块202,由任务执行模块202触发容器管理模块204,根据包含该IP地址的网络信息创建透明网络,并在透明网络中创建容器,建立容器与IP地址的映射关系。
容器管理模块204创建完容器后,将执行任务的宿主机信息传递至客户端网络模块203,客户端网络模块203将宿主机信息反馈至端口创建模块102,使端口与宿主机建立映射。并且,任务执行模块202监控并实时将所创建的容器的运行状态反馈至客户端调度模块201,客户端调度模块201进而将容器的运行状态反馈至调度控制模块103。
进一步的,调度控制模块103还于服务运行结束时下发容器删除任务,对应的宿主机的客户端调度模块201接收并传递容器释放任务至任务执行模块202,任务执行模块202调用容器管理模块204获取容器对应的IP地址,删除已运行完毕的容器,并删除该容器与该IP地址的映射关系。同时,查看容器运行的透明网络中是否有其他容器在运行,若是,则不删除透明网络,若否,则删除该宿主机上的容器网络(即所创建的透明网络)。
在优选的实施方式中,容器管理模块204在创建透明网络以及容器时还执行:判断端口ID对应的vlan.name是否有匹配的透明网络存在,若是,则直接在已存在的透明网络中创建容器,建立容器与IP地址的映射关系;若否,则根据包含该IP地址的网络信息创建透明网络,并且在该创建的透明网络中创建容器,建立容器与IP地址的映射关系。
本实施例利用容器网络资源管理系统10的网络配置模块101、端口创建模块102、调度控制模块103,以及各个宿主机20的客户端调度模块201、任务执行模块202,客户端网络模块203和容器管理模块204将容器网络创建和容器创建,容器网络删除和容器删除自动化,大大提高效率,解决了分布式多台宿主机上的容器之间的互通性。
在本发明的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被例如处理器执行时可以实现上述任意一个实施例中所述容器网络资源分配方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述容器网络资源分配方法描述的根据本发明各种示例性实施方式的步骤。
参考图3所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品300,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品300可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
在本发明的示例性实施例中,还提供一种电子设备,该电子设备可以包括处理器,以及用于存储所述处理器的可执行指令的存储器。其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一个实施例中所述容器网络资源分配方法的步骤。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图4来描述根据本发明的这种实施方式的电子设备400。图4显示的电子设备400仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,电子设备400以通用计算设备的形式表现。电子设备400的组件可以包括但不限于:至少一个处理单元410、至少一个存储单元420、连接不同系统组件(包括存储单元420和处理单元410)的总线430、显示单元440等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元410执行,使得所述处理单元410执行本说明书上述容器网络资源分配方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元410可以执行如图1中所示的步骤。
所述存储单元420可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)4201和/或高速缓存存储单元4202,还可以进一步包括只读存储单元(ROM)4203。
所述存储单元420还可以包括具有一组(至少一个)程序模块4205的程序/实用工具4204,这样的程序模块4205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线430可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备400也可以与一个或多个外部设备500(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备400交互的设备通信,和/或与使得该电子设备400能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口450进行。并且,电子设备400还可以通过网络适配器460与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器460可以通过总线430与电子设备400的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备400使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本发明实施方式的上述容器网络资源分配方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由所附的权利要求指出。
Claims (10)
1.一种容器网络资源分配方法,其特征在于,用于实现多台宿主机上多个容器之间网络互连,容器用于提供服务运行的隔离的操作环境,每台宿主机上可部署多个容器,所述方法包括:
步骤S101、配置多台所述宿主机运行的网络,为不同宿主机的所有容器提供多个不重复的IP地址;
步骤S102、从配置的网络中申请一IP地址,生成对应所述IP地址的端口,所述端口采用端口ID进行标识;
步骤S103、下发容器创建任务,所述容器创建任务携带所述端口ID,并根据调度策略选择对应的宿主机执行所述容器创建任务;
步骤S104、所述宿主机接收并解析所述容器创建任务,根据所述端口ID获取所述端口对应的网络信息,所述网络信息包含所述IP地址,根据所述网络信息创建透明网络,并在所述透明网络中创建容器,建立所述容器与所述IP地址的映射关系;
步骤S105、将执行所述容器创建任务的宿主机反馈至所述端口,使所述端口与所述宿主机建立映射,所述宿主机监控并实时反馈所创建的所述容器的运行状态;
步骤S106、于所述容器运行完毕时,所述宿主机接收容器删除任务,删除所述容器,并删除所述容器与所述IP地址的映射关系。
2.如权利要求1所述的容器网络资源分配方法,其特征在于,所述步骤S106还执行:查看所述容器运行的透明网络中是否有其他容器在运行,若是,则不删除所述透明网络,若否,则删除所述透明网络。
3.如权利要求1所述的容器网络资源分配方法,其特征在于,使用同一网络配置的所述端口ID对应一虚拟局域网,所述S104中,根据所述网络信息创建透明网络,并在所述透明网络中创建容器,建立所述容器与所述IP地址的映射关系的步骤具体包括:
步骤S114、判断所述端口ID对应的虚拟局域网是否有匹配的透明网络存在,若是,则执行步骤S134,若否,则执行步骤S124;
步骤S124、根据所述网络信息创建透明网络;
步骤S134、在所述透明网络中创建容器,建立所述容器与所述IP地址的映射关系。
4.如权利要求1所述的容器网络资源分配方法,其特征在于,所述端口ID为所述端口的通用唯一识别码。
5.一种容器网络资源分配系统,其特征在于,用于实现多台宿主机上多个容器之间网络互连,容器用于提供服务运行的隔离的操作环境,每台宿主机上可部署多个容器,所述网络资源分配系统包括网络配置模块、端口创建模块和调度控制模块,每台宿主机包括客户端调度模块、任务执行模块、客户端网络模块和容器管理模块,其中,
网络配置模块,用于配置多台所述宿主机运行的网络,为不同宿主机的所有容器提供多个不重复的IP地址;
端口创建模块,用于从配置的网络中申请一IP地址,生成对应所述IP地址的端口,所述端口采用端口ID进行标识;
调度控制模块,用于下发容器创建任务,所述容器创建任务携带所述端口ID,并根据调度策略选择对应的宿主机执行所述容器创建任务;
客户端调度模块,用于接收所述容器创建任务,并触发任务执行模块;
任务执行模块,用于解析所述容器创建任务,并触发客户端网络模块;
客户端网络模块,用于根据所述端口ID获取所述端口对应的网络信息,所述网络信息包含所述IP地址,返回至任务执行模块,并触发容器管理模块;
容器管理模块,用于根据所述网络信息创建透明网络,并在所述透明网络中创建容器,建立所述容器与所述IP地址的映射关系。
6.如权利要求5所述的容器网络资源分配系统,其特征在于,所述容器管理模块创建完所述容器后,将所述宿主机信息传递至客户端网络模块,所述客户端网络模块将所述宿主机信息反馈至所述端口创建模块,使所述端口与所述宿主机建立映射;以及
任务执行模块监控并将所述容器的运行状态反馈至所述客户端调度模块,所述客户端调度模块将所述容器的运行状态反馈至所述调度控制模块。
7.如权利要求6所述的容器网络资源分配系统,其特征在于,所述调度控制模块于所述容器运行完毕时,下发容器删除任务,所述客户端调度模块接收并传递所述容器释放任务至所述任务执行模块,所述任务执行模块调用所述容器管理模块删除所述容器,并删除所述容器与所述IP地址的映射关系;以及
所述容器管理模块查看所述容器运行的透明网络中是否有其他容器在运行,若是,则不删除所述透明网络,若否,则删除所述透明网络。
8.如权利要求5所述的容器网络资源分配系统,其特征在于,使用同一网络配置的所述端口ID对应一虚拟局域网,所述容器管理模块具体执行:
判断所述端口ID对应的虚拟局域网是否有匹配的透明网络存在,若是,则直接在已存在的所述透明网络中创建容器,建立所述容器与所述IP地址的映射关系;若否,则根据所述网络信息创建透明网络,并且在创建的所述透明网络中创建容器,建立所述容器与所述IP地址的映射关系。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1~4任一项所述的容器网络资源分配方法的步骤。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1~4任一项所述的容器网络资源分配方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710685001.8A CN107566541B (zh) | 2017-08-03 | 2017-08-03 | 容器网络资源分配方法、系统、存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710685001.8A CN107566541B (zh) | 2017-08-03 | 2017-08-03 | 容器网络资源分配方法、系统、存储介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107566541A true CN107566541A (zh) | 2018-01-09 |
CN107566541B CN107566541B (zh) | 2021-03-23 |
Family
ID=60975349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710685001.8A Active CN107566541B (zh) | 2017-08-03 | 2017-08-03 | 容器网络资源分配方法、系统、存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107566541B (zh) |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108345497A (zh) * | 2018-01-17 | 2018-07-31 | 千寻位置网络有限公司 | Gnss离线定位模拟的执行方法及系统、定位装置 |
CN108920174A (zh) * | 2018-06-22 | 2018-11-30 | 山东超越数控电子股份有限公司 | 在多主机上部署和配置容器引擎的运行环境的方法与装置 |
CN108958930A (zh) * | 2018-06-19 | 2018-12-07 | 北京百度网讯科技有限公司 | 容器资源的处理方法、装置及设备 |
CN109218327A (zh) * | 2018-10-15 | 2019-01-15 | 西安电子科技大学 | 基于云容器的主动防御技术 |
CN109508225A (zh) * | 2018-11-15 | 2019-03-22 | 珠海市知安全科技有限公司 | 一种windows操作系统下的应用容器系统 |
CN110266679A (zh) * | 2019-06-14 | 2019-09-20 | 腾讯科技(成都)有限公司 | 容器网络隔离方法及装置 |
CN110278288A (zh) * | 2019-05-17 | 2019-09-24 | 平安科技(深圳)有限公司 | 预分配容器ip的方法、装置、计算机设备及存储介质 |
CN110288104A (zh) * | 2019-07-04 | 2019-09-27 | 北京百佑科技有限公司 | 运维流程系统、运维流程管理的方法及装置 |
CN110881007A (zh) * | 2018-09-05 | 2020-03-13 | 北京京东尚科信息技术有限公司 | 一种容器集群网络接入的方法和装置 |
CN111104126A (zh) * | 2019-12-09 | 2020-05-05 | 海尔优家智能科技(北京)有限公司 | 用于部署应用的方法及装置、服务器、系统 |
CN111669355A (zh) * | 2019-03-08 | 2020-09-15 | 厦门网宿有限公司 | 一种批量处理nginx网络隔离空间的方法及nginx服务器 |
CN111787126A (zh) * | 2020-08-07 | 2020-10-16 | 北京凌云雀科技有限公司 | 容器创建方法、服务器及存储介质 |
CN112243044A (zh) * | 2019-07-16 | 2021-01-19 | 广州虎牙科技有限公司 | 容器地址分配方法及装置 |
CN112470124A (zh) * | 2018-08-30 | 2021-03-09 | 国际商业机器公司 | 便于检查虚拟容器的安全壳容器 |
CN113037522A (zh) * | 2019-12-24 | 2021-06-25 | 华为数字技术(苏州)有限公司 | 一种容器单元管理方法及相关设备 |
CN113032092A (zh) * | 2021-03-05 | 2021-06-25 | 北京百度网讯科技有限公司 | 分布式计算方法、装置及平台 |
CN113067739A (zh) * | 2021-04-29 | 2021-07-02 | 中国工商银行股份有限公司 | 一种高密度容器网络部署方法及系统 |
CN113259503A (zh) * | 2021-06-24 | 2021-08-13 | 浩鲸云计算科技股份有限公司 | 基于Infiniband实现不同容器之间的跨网络通信方法和系统 |
CN113285843A (zh) * | 2021-07-23 | 2021-08-20 | 中航金网(北京)电子商务有限公司 | 容器网络配置方法、装置、计算机可读介质及电子设备 |
CN113660316A (zh) * | 2021-07-29 | 2021-11-16 | 广州汇通国信科技有限公司 | 基于容器云平台的网络资源自适应配置方法、系统及介质 |
CN114072797A (zh) * | 2019-07-22 | 2022-02-18 | 国际商业机器公司 | 互联网活动划分 |
CN114629844A (zh) * | 2022-02-28 | 2022-06-14 | 浙江大华技术股份有限公司 | 一种报文转发的方法、装置及电子设备 |
CN114826994A (zh) * | 2022-04-22 | 2022-07-29 | 重庆紫光华山智安科技有限公司 | 用户环境回放方法、系统、电子设备及可读存储介质 |
CN115002069A (zh) * | 2022-06-24 | 2022-09-02 | 中国电信股份有限公司 | 端口映射方法、装置、电子设备及存储介质 |
CN116827777A (zh) * | 2023-04-28 | 2023-09-29 | 北京绪水互联科技有限公司 | 适用于n台相同IP地址的目标设备的数据采集方法及网络配置方法、电子设备、数据采集系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105979009A (zh) * | 2016-07-06 | 2016-09-28 | 乾云众创(北京)信息科技研究院有限公司 | 一种针对云应用容器的增加负载自动均衡方法 |
CN106067858A (zh) * | 2016-05-24 | 2016-11-02 | 中国联合网络通信集团有限公司 | 容器间的通信方法、装置及系统 |
US20160344690A1 (en) * | 2015-05-18 | 2016-11-24 | Morgan Stanley | Clustered server sharing |
KR20170088723A (ko) * | 2016-01-25 | 2017-08-02 | 쿨클라우드(주) | 컨테이너 네트워크의 컨테이너 네트워킹 방법 |
-
2017
- 2017-08-03 CN CN201710685001.8A patent/CN107566541B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160344690A1 (en) * | 2015-05-18 | 2016-11-24 | Morgan Stanley | Clustered server sharing |
KR20170088723A (ko) * | 2016-01-25 | 2017-08-02 | 쿨클라우드(주) | 컨테이너 네트워크의 컨테이너 네트워킹 방법 |
CN106067858A (zh) * | 2016-05-24 | 2016-11-02 | 中国联合网络通信集团有限公司 | 容器间的通信方法、装置及系统 |
CN105979009A (zh) * | 2016-07-06 | 2016-09-28 | 乾云众创(北京)信息科技研究院有限公司 | 一种针对云应用容器的增加负载自动均衡方法 |
Cited By (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108345497A (zh) * | 2018-01-17 | 2018-07-31 | 千寻位置网络有限公司 | Gnss离线定位模拟的执行方法及系统、定位装置 |
CN108958930A (zh) * | 2018-06-19 | 2018-12-07 | 北京百度网讯科技有限公司 | 容器资源的处理方法、装置及设备 |
CN108920174A (zh) * | 2018-06-22 | 2018-11-30 | 山东超越数控电子股份有限公司 | 在多主机上部署和配置容器引擎的运行环境的方法与装置 |
CN112470124A (zh) * | 2018-08-30 | 2021-03-09 | 国际商业机器公司 | 便于检查虚拟容器的安全壳容器 |
CN110881007A (zh) * | 2018-09-05 | 2020-03-13 | 北京京东尚科信息技术有限公司 | 一种容器集群网络接入的方法和装置 |
CN110881007B (zh) * | 2018-09-05 | 2023-03-07 | 北京京东尚科信息技术有限公司 | 一种容器集群网络接入的方法和装置 |
CN109218327A (zh) * | 2018-10-15 | 2019-01-15 | 西安电子科技大学 | 基于云容器的主动防御技术 |
CN109508225A (zh) * | 2018-11-15 | 2019-03-22 | 珠海市知安全科技有限公司 | 一种windows操作系统下的应用容器系统 |
CN111669355A (zh) * | 2019-03-08 | 2020-09-15 | 厦门网宿有限公司 | 一种批量处理nginx网络隔离空间的方法及nginx服务器 |
CN111669355B (zh) * | 2019-03-08 | 2023-04-18 | 厦门网宿有限公司 | 一种批量处理nginx网络隔离空间的方法及nginx服务器 |
CN110278288A (zh) * | 2019-05-17 | 2019-09-24 | 平安科技(深圳)有限公司 | 预分配容器ip的方法、装置、计算机设备及存储介质 |
CN110278288B (zh) * | 2019-05-17 | 2021-10-26 | 平安科技(深圳)有限公司 | 预分配容器ip的方法、装置、计算机设备及存储介质 |
CN110266679A (zh) * | 2019-06-14 | 2019-09-20 | 腾讯科技(成都)有限公司 | 容器网络隔离方法及装置 |
CN110266679B (zh) * | 2019-06-14 | 2023-02-28 | 腾讯科技(成都)有限公司 | 容器网络隔离方法及装置 |
CN110288104A (zh) * | 2019-07-04 | 2019-09-27 | 北京百佑科技有限公司 | 运维流程系统、运维流程管理的方法及装置 |
CN112243044B (zh) * | 2019-07-16 | 2023-05-19 | 广州虎牙科技有限公司 | 容器地址分配方法及装置 |
CN112243044A (zh) * | 2019-07-16 | 2021-01-19 | 广州虎牙科技有限公司 | 容器地址分配方法及装置 |
CN114072797B (zh) * | 2019-07-22 | 2022-10-21 | 国际商业机器公司 | 用于web容器的方法和系统 |
CN114072797A (zh) * | 2019-07-22 | 2022-02-18 | 国际商业机器公司 | 互联网活动划分 |
CN111104126A (zh) * | 2019-12-09 | 2020-05-05 | 海尔优家智能科技(北京)有限公司 | 用于部署应用的方法及装置、服务器、系统 |
CN113037522A (zh) * | 2019-12-24 | 2021-06-25 | 华为数字技术(苏州)有限公司 | 一种容器单元管理方法及相关设备 |
CN111787126B (zh) * | 2020-08-07 | 2023-04-07 | 北京凌云雀科技有限公司 | 容器创建方法、服务器及存储介质 |
CN111787126A (zh) * | 2020-08-07 | 2020-10-16 | 北京凌云雀科技有限公司 | 容器创建方法、服务器及存储介质 |
CN113032092B (zh) * | 2021-03-05 | 2023-08-08 | 北京百度网讯科技有限公司 | 分布式计算方法、装置及平台 |
CN113032092A (zh) * | 2021-03-05 | 2021-06-25 | 北京百度网讯科技有限公司 | 分布式计算方法、装置及平台 |
CN113067739A (zh) * | 2021-04-29 | 2021-07-02 | 中国工商银行股份有限公司 | 一种高密度容器网络部署方法及系统 |
CN113067739B (zh) * | 2021-04-29 | 2022-08-30 | 中国工商银行股份有限公司 | 一种高密度容器网络部署方法及系统 |
CN113259503A (zh) * | 2021-06-24 | 2021-08-13 | 浩鲸云计算科技股份有限公司 | 基于Infiniband实现不同容器之间的跨网络通信方法和系统 |
CN113285843A (zh) * | 2021-07-23 | 2021-08-20 | 中航金网(北京)电子商务有限公司 | 容器网络配置方法、装置、计算机可读介质及电子设备 |
CN113660316B (zh) * | 2021-07-29 | 2024-03-12 | 广州汇通国信科技有限公司 | 基于容器云平台的网络资源自适应配置方法、系统及介质 |
CN113660316A (zh) * | 2021-07-29 | 2021-11-16 | 广州汇通国信科技有限公司 | 基于容器云平台的网络资源自适应配置方法、系统及介质 |
CN114629844A (zh) * | 2022-02-28 | 2022-06-14 | 浙江大华技术股份有限公司 | 一种报文转发的方法、装置及电子设备 |
CN114629844B (zh) * | 2022-02-28 | 2024-04-05 | 浙江大华技术股份有限公司 | 一种报文转发的方法、装置及电子设备 |
CN114826994A (zh) * | 2022-04-22 | 2022-07-29 | 重庆紫光华山智安科技有限公司 | 用户环境回放方法、系统、电子设备及可读存储介质 |
CN114826994B (zh) * | 2022-04-22 | 2023-08-29 | 重庆紫光华山智安科技有限公司 | 用户环境回放方法、系统、电子设备及可读存储介质 |
CN115002069B (zh) * | 2022-06-24 | 2023-10-31 | 中国电信股份有限公司 | 端口映射方法、装置、电子设备及存储介质 |
CN115002069A (zh) * | 2022-06-24 | 2022-09-02 | 中国电信股份有限公司 | 端口映射方法、装置、电子设备及存储介质 |
CN116827777A (zh) * | 2023-04-28 | 2023-09-29 | 北京绪水互联科技有限公司 | 适用于n台相同IP地址的目标设备的数据采集方法及网络配置方法、电子设备、数据采集系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107566541B (zh) | 2021-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107566541A (zh) | 容器网络资源分配方法、系统、存储介质和电子设备 | |
CN111542064B (zh) | 一种用于无线接入网的容器编排管理系统及编排方法 | |
US10693989B2 (en) | Brokering services from partner cloud platforms | |
CN105103507B (zh) | 网络功能虚拟化的方法及装置 | |
US9246765B2 (en) | Apparatus and methods for auto-discovery and migration of virtual cloud infrastructure | |
CN109194502B (zh) | 多租户容器云计算系统的管理方法 | |
US9448901B1 (en) | Remote direct memory access for high availability nodes using a coherent accelerator processor interface | |
CN107580083A (zh) | 一种容器ip地址分配的方法和系统 | |
US20140280805A1 (en) | Two-Sided Declarative Configuration for Cloud Deployment | |
CN108255497A (zh) | 一种应用的部署方法及装置 | |
US11177974B2 (en) | Consistent provision of member node group information on virtual overlay network | |
CN103685608A (zh) | 一种自动配置安全虚拟机ip地址的方法及装置 | |
CN110716787A (zh) | 容器地址设置方法、设备和计算机可读存储介质 | |
CN113572689A (zh) | 微服务网关管理方法、系统、设备、可读存储介质及产品 | |
CN112333017B (zh) | 一种服务配置方法、装置、设备及存储介质 | |
CN113709810B (zh) | 一种网络服务质量的配置方法、设备和介质 | |
CN115185647B (zh) | virtio设备直通方法及相关装置 | |
CN112099913A (zh) | 一种基于OpenStack实现虚拟机安全隔离的方法 | |
CN105357067A (zh) | 一种云平台的测试方法及系统 | |
CN114500623A (zh) | 网络靶场互联互通方法、装置、设备及可读存储介质 | |
CN114422350B (zh) | 一种公共云容器实例创建方法 | |
CN111400374B (zh) | 一种面向数据挖掘的容器化数据探索隔离区及其使用方法 | |
CN105490849A (zh) | 应用系统的自动部署方法及系统 | |
CN108989481A (zh) | 一种为虚拟机自动配置ip地址的方法和装置 | |
CN113342457A (zh) | 基于Eureka服务注册与发现的Kubernetes调度方法 |
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 |