一种高可扩展的容器网络管理系统和方法

文档序号:9828001阅读:680来源:国知局
一种高可扩展的容器网络管理系统和方法
【技术领域】
[0001]本发明涉及云计算技术领域,特别涉及由容器构成的高可扩展的系统网络管理系统和方法。
【背景技术】
[0002]作为新一代云计算的核心技术,容器技术已渐渐成为近年国内外云计算企业的发展重点。对于构成云计算系统的核心技术,高可扩展性是必要的核心技术特性。在现有容器技术支持下,一台宿主机可以运行几十甚至几百容器,但是在超过几百的容器数量后,一台宿主机则是远远不够的。同时,仅用一台宿主机运行容器,也会影响高可用性,即如果一台宿主机出现故障,则所有用户容器都将无法运行。因此,要实现云计算环境的高可扩展性和高可用性,要求可用多台宿主机同时运行容器,并保持不同宿主机容器之间的连通性。
[0003]现有容器的网络管理系统无法很好的完成上述要求,即不能满足用多台宿主机同时运行容器,并保持不同宿主机容器之间的连通性。现有容器网络管理系统如图1所示:在运行容器的宿主机中,运行着多个容器实例和一个容器网关,容器网关和容器实例通过一个宿主机内部网段进行互联互通。正如图1上所示,在默认情况下,一个宿主机内部的多个容器可以互联互通,但不同宿主机运行的容器之间无法互联互通。
[0004]现有一种容器网络互联的解决方案如图1下示例,即由容器网关设置网络地址转换NAT(Network Address Translat1n,网络地址转换)功能,将某些容器提供的服务通过端口映射到宿主机的网络地址上。如宿主机的地址为172.16.1.1,某容器的内网地址为192.168.1.1;通过网络地址转换,可以将192.168.1.1的80端P,映射为172.16.1.1的8080端口;这样其他主机的容器如果想访问该容器的192.168.1.1的80端口,只需要通过访问172.16.1.1的8080端口来实现。上述网络地址转换方法的缺点在于,由于受单台宿主机的网络端口所限制,不能满足同一宿主机上多台容器希望发布相同端口的扩展场景。例如,如果宿主机172.16.1.1中的两个容器192.168.1.1和192.168.1.2都希望80端口,则它们不可能都发布为172.16.1.1的8080端口,这样势必造成端口的冲突。

【发明内容】

[0005]本发明提出一种高可扩展的容器网络管理系统和方法,可以自动控制管理一个由容器构成的高可扩展高可用的云计算系统,保证不同宿主机上的容器之间的互通性和安全性,从而解决现有技术中存在的前述问题。
[0006]为了实现上述目的,本发明的高可扩展的容器网络管理系统,包括宿主机地址分配器、网络配置管理器、网络控制器和容器隧道,所述网络配置管理器,用于配置所述宿主机地址分配器,配置所述网络控制器,部署和配置所述容器隧道;所述网络控制器用于为每个宿主机上运行的容器分配一个容器网络子网段,并且,分配、保存宿主机地址到容器网络子网段的一一映射关系;所述容器隧道设置在每个宿主机上,用于封装来自本宿主机的数据包,和/或拆除封装其他宿主机上的容器发送到本宿主机的数据包。
[0007]进一步地,所述网络配置管理器包括用户交互模块、宿主机地址配置模块、容器地址配置模块和容器隧道部署模块;所述用户交互模块用于提供用户自主设置容器网络参数的交互界面,所述容器网络参数包括宿主机网段,容器地址总段,每主机最大容器数和容器网关地址;所述宿主机地址配置模块用于配置所述宿主机地址分配器;所述容器地址配置模块用于配置、管理所述容器网络参数;所述容器隧道部署模块用于部署和配置所述容器隧道。
[0008]进一步地,所述用户交互模块为命令行或者图形用户界面。
[0009]为了实现上述目的,本发明的高可扩展的容器网络管理的方法,包括以下步骤:
[0010]SI,配置容器网络参数,配置宿主机地址到容器地址段的映射;
[0011]S2,部署容器隧道,配置、激活所述宿主机地址到容器网络段的一一映射;
[0012]S3,根据所述宿主机地址到容器网络段的一一映射,发送和接受数据包。
[0013]具体地,步骤SI为:
[0014]SI I,配置所述容器网络参数;
[0015]S12,计算、配置所述宿主机地址到容器地址段的映射。
[0016]更具体地,步骤SI I为:
[0017]SI 11,注册、连接宿主机地址分配器,配置宿主机地址段;
[0018]S112,注册、连接网络控制器,配置容器地址总段、每主机最大容器数和容器网关主机地址;
[0019]S113,读取所述宿主机地址段;
[0020]SI 14,计算宿主机地址到容器地址段映射;
[0021]S115,配置宿主机到容器地址段映射。
[0022]再具体地,步骤SI 14为:
[0023]SI 141,配置所述容器地址总段;
[0024]SI 142,计算容器网络地址前缀;
[0025]SI 143,配置宿主机最大容器数;
[0026]SI 144,计算容器实例地址长度;
[0027]S1145,判断允许的容器网络地址后缀个数是否大于等于允许的宿主机地址个数,
[0028]若所述容器网络地址后缀个数大于或者等于所述允许的宿主机地址个数,则保存配置到网络控制器;
[0029]若所述容器网络地址后缀个数小于所述允许的宿主机地址个数,则向用户提示网络段不够。
[0030]具体地,步骤S2为:
[0031]S21,注册、连接宿主机;
[0032]S22,部署所述容器隧道;
[0033]S23,配置网络控制器地址,所述容器隧道连接所述网络控制器,并获取本宿主机容器网络配置;
[0034]S24,通过所述容器隧道配置所述容器网关,配置所述容器隧道,配置宿主机路由,将容器网络总段路由向下一跳指向所述容器隧道;
[0035]S25,注册、激活所述宿主机地址到所述容器网络的一一映射。
[0036]具体地,步骤S3为,
[0037]S31,容器发送数据包到目标宿主机;
[0038]S32,所述目标宿主机接收并处理数据包。
[0039]更具体地,步骤S31为,
[0040]S311,容器发送数据包;
[0041]S312,判断所述目标宿主机是否为同一宿主机,
[0042]若所述目标宿主机为不同宿主机,则执行步骤S313;
[0043]若所述目标宿主机为同一宿主机,则通过宿主机内部通信发送给另一容器,完成数据包发送;
[0044]S313,通过容器网关发送给宿主机路由模块;
[0045]S314,判断目标是否为容器网络总段,
[0046]若目标是容器网络总段,则执行步骤S315;
[0047]若目标不是容器网络总段,则由所述宿主机路由模块直接发送给目标地址,完成数据包发送;
[0048]S315,由所述宿主机路由模块发送数据包给所述容器隧道处理;
[0049]S316,获取目标容器网络映射的目标宿主机;
[0050]S317,封装容器数据包为可发送到宿主机的数据包,然后,发送封装后的数据包到目标宿主机,完成数据包发送。
[0051]在具体地,步骤S316为从缓存或者从所述网络控制器读取目标容器网络映射的目标宿主机地址。
[0052]更具体的,步骤S32包括,
[0053]S321,宿主机接收数据包;
[0054]S322,判断目标是否为所述容器隧道,
[0055]若目标是所述容器隧道,则执行步骤S323;
[0056]若目标不是所述容器隧道,则转给相应的端口进程处理,完成接收数据包。
[0057]S323,发送给所述容器隧道处理;
[0058]S324,拆除数据包封装,目标变为本宿主机容器;
[0059]S325,发送给本宿主机容器处理,完成接收数据包。
[0060]具体地。步骤S24 中,配置容器网络 DHCP (Dynami c Host Configurat1nProtocol,动态主机配置协议)为:
[0061]判断容器网网关是否包含DHCP功能,
[0062]如果容器网关包含DHCP功能,那么就设置容器网关DHCP配置;
[0063]如果容器网关不包含DHCP功能,那么就设置容器隧道DHCP配置。
[0064]本发明的有益效果是:可以建立一种高可扩展的容器网络,云计算系统管理员可以自主设置宿主机网段、容器网段、每宿主机最多可支持的容器数以及每个容器网络的网关地址,根据系统管理员设置,云计算系统可以自动分配容器网络的网络地址,保持整个容器网络的连通性和稳定性。
【附图说明】
[0065]图1是:现有技术中一般容器网络的网络环境;
[0066]图2是:本发明应用于容器网络,对容器网络进行配置管理;
[0067]图3是:网络配置管理器的组成模块;
[0068]图4是:容器网络利用本发明通信的示意图;
[0069]图5是:本发明中各种配置参数对容器网络中各种地址段的作用;
[0070]图6是:通过网络配置管理器配置容器网络参数的流程;
[0071]图7是:配置宿主机网络地址段时,各模块的交互流程;
[0072]图8是:配置将网络控制器注册到网络配置管理器,配置容器网络参数到网络控制器时,各模块的交互流程;
[0073]图9是:将某个
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1