容器网络配置方法及系统与流程

文档序号:18465761发布日期:2019-08-17 02:26阅读:203来源:国知局
容器网络配置方法及系统与流程

本发明涉及计算机容器编排集群领域,特别涉及一种容器网络配置方法及系统。



背景技术:

随着容器技术在企业应用部署和发布的普及,越来越多的企业服务和应用都是基于容器的资源和底层的基础设施,使用容器做到秒级的应用发布可一致化的应用环境迁移体验。

由于容器是比较轻量的资源,应用在发布时需要把容器销毁,重新拉起一台新的容器,目前的容器编排系统,基本上容器的ip是随着容器的销毁而销毁,产生而产生,这就导致新起来的容器的ip必然有变化,但是企业中现存的架构尚不能适应容器ip变化的情景。



技术实现要素:

本发明要解决的技术问题是为了克服现有技术中的容器的ip随着容器的存灭而变化的缺陷,提供一种容器网络配置方法及系统。

本发明是通过下述技术方案来解决上述技术问题:

本发明提供一种容器网络配置方法,包括以下步骤:

为容器组申请虚拟网卡;

创建与所述容器组对应的所述虚拟网卡;

在数据库中存储所述虚拟网卡和所述容器组的对应关系;

在宿主机上创建容器,所述容器属于所述容器组;

判断是否创建容器网络,若是,则:

在所述数据库中查询与所述容器所属的所述容器组对应的所述虚拟网卡;

绑定所述虚拟网卡到所述宿主机;

根据所述虚拟网卡进行所述容器的网络配置。

较佳地,所述容器网络配置方法还包括:

判断是否删除容器网络,若是,则:

在所述数据库中查询与所述容器所属的所述容器组对应的所述虚拟网卡;

解绑所述虚拟网卡与所述宿主机的绑定;

在所述宿主机上删除所述容器的网络配置。

较佳地,所述容器网络配置方法还包括:

判断是否缩容所述容器组,若是,则:

删除与所述容器组对应的所述虚拟网卡;

在所述数据库中标记所述虚拟网卡为释放。

较佳地,所述容器网络配置方法还包括:

在创建与所述容器组对应的所述虚拟网卡之后,返回创建结果;

和/或,在绑定所述虚拟网卡到所述宿主机之后,返回绑定结果;

和/或,在解绑所述虚拟网卡与所述宿主机的绑定之后,返回解绑结果;

和/或,在删除与所述容器组对应的所述虚拟网卡之后,返回删除结果。

较佳地,绑定所述虚拟网卡到所述宿主机之后,还包括:

轮询所述虚拟网卡是否出现在所述宿主机的网卡设备列表中;并在轮询结果为是时,根据所述虚拟网卡进行所述容器的网络配置。

较佳地,根据所述虚拟网卡进行所述容器的网络配置包括:

获取所述虚拟网卡的ip、mac和网关地址;

将所述虚拟网卡移入所述容器网络进行所述ip、所述mac和所述网关地址的配置。

本发明还提供一种容器网络配置系统,其利用容器网络配置方法实现,包括网络设施管理组件、全局ip管理模块和容器网络插件,所述全局ip管理模块包括一数据库;

所述全局ip管理模块用于获取为容器组申请虚拟网卡的第一请求并将所述第一请求发送给所述网络设施管理组件;

所述网络设施管理组件用于接收所述第一请求,创建与所述容器组对应的所述虚拟网卡;

所述虚拟网卡创建成功后,所述全局ip管理模块还用于在所述数据库中存储所述虚拟网卡与所述容器组的对应关系;

在宿主机上创建容器后,所述容器属于所述容器组;所述容器网络插件用于判断是否获取到创建容器网络的第二请求,若是,则向所述全局ip管理模块发送查询绑定虚拟网卡的第三请求;

所述全局ip管理模块还用于接收所述第三请求,在所述数据库中查询与所述容器所属的容器组对应的所述虚拟网卡;

所述网络设施管理组件还用于绑定所述虚拟网卡到所述宿主机;

所述容器网络插件还用于根据所述虚拟网卡进行所述容器的网络配置。

较佳地,所述容器网络插件还用于判断是否获取到删除所述容器网络的第四请求,若是,则向所述全局ip管理模块发送查询解绑虚拟网卡的第五请求;

所述全局ip管理模块还用于接收所述第五请求,在所述数据库中查询与所述容器所属的所述容器组对应的所述虚拟网卡;

所述网络设施管理组件还用于解绑所述虚拟网卡与所述容器所在的所述宿主机的绑定;

所述容器网络插件还用于在所述宿主机上删除所述容器的网络配置。

较佳地,所述全局ip管理模块还用于获取缩容所述容器组的第六请求,并向所述网络设施管理组件发送删除与所述容器组对应的所述虚拟网卡的第七请求;

所述网络设施管理组件还用于接收所述第七请求,删除与所述容器组对应的所述虚拟网卡;

所述全局ip管理模块还用于在所述数据库中标记所述虚拟网卡为释放。

较佳地,在所述网络设施管理组件创建与所述容器组对应的所述虚拟网卡之后,所述全局ip管理模块还用于返回创建结果;

和/或,在所述网络设施管理组件绑定所述虚拟网卡到所述宿主机之后,所述全局ip管理模块还用于返回绑定结果;

和/或,在所述网络设施管理组件解绑所述虚拟网卡与所述宿主机的绑定之后,所述全局ip管理模块还用于返回解绑结果;

和/或,在所述网络设施管理组件删除与所述容器组对应的所述虚拟网卡之后,所述全局ip管理模块还用于返回删除结果。

较佳地,所述容器网络配置系统包括:在绑定所述虚拟网卡到所述宿主机之后,所述网络管理插件还用于轮询所述虚拟网卡是否出现在所述宿主机的网卡设备列表中;并在轮询结果为是时,所述网络管理插件还用于根据所述虚拟网卡进行所述容器的网络配置。

较佳地,所述网络管理插件还用于根据所述虚拟网卡进行所述容器的网络配置包括:

所述网络管理插件还用于获取所述虚拟网卡的ip、mac和网关地址;

所述网络管理插件还用于将所述虚拟网卡移入所述容器网络进行所述ip、所述mac和所述网关地址的配置。

在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。

本发明的积极进步效果在于:提供了一种配置容器网络的方法及系统,在容器网络创建时都是以存储在全局ip管理模块中的数据库中的虚拟网卡及对应ip作为其网络配置的唯一数据源,使得属于一个容器组的所有容器网络的ip都是固定的,所以在应用更新版本时、宿主机故障迁移到其他宿主机等场景时容器网络均能保持ip不变,保证了ip的漂移,保证了其他依赖于容器网络的服务的正常运行。

附图说明

图1为本发明实施例1容器网络配置方法的创建容器组及容器网络的流程图。

图2为本发明实施例1容器网络配置方法的删除容器网络的流程图。

图3为本发明实施例1容器网络配置方法的缩容容器组的流程图。

图4为本发明实施例2容器网络配置系统的结构示意图。

具体实施方式

下面通过实施例的方式并结合附图来更清楚完整地说明本发明,但并不因此将本发明限制在所述的实施例范围之中。

实施例1

本实施例提供一种容器网络配置方法,该容器网络配置方法应用于容器网络配置系统。其中,容器网络配置系统包括网络设施管理组件、全局ip管理模块和容器网络插件,其中全局ip管理模块包括一数据库。所述容器网络配置方法包括创建和删除两个环节,如图1所示,创建容器网络包括以下步骤:

s11、为容器组申请虚拟网卡;

共同提供同样服务的一组容器作为一个服务组,一般一个应用的容器作为一个服务组,此处命名为容器组。容器组的名称以应用的id为前缀,分别命名为appid-0,appid-1……。

应用容器组在第一次创建时,由发出容器创建请求的系统(以后称作容器创建请求系统)向全局ip管理模块为容器组申请其对应的虚拟网卡及对应ip,全局ip管理模块收到请求后,会发送创建请求给下层的网络设施管理组件。

s12、创建与容器组对应的虚拟网卡;

网络设施管理组件接收到全局ip管理模块下发的创建请求后,创建与容器组对应的虚拟网卡及对应ip,并将创建结果、虚拟网卡和对应ip返回给全局ip管理模块。

s13、在数据库中存储所述虚拟网卡和所述容器组的对应关系;

全局ip管理模块收到网络设施管理组件返回的创建结果、虚拟网卡和对应ip后,在数据库中存储虚拟网卡和容器组的对应关系,并将创建结果返回给容器创建请求系统。

至此,容器组及其对应虚拟网卡及对应ip创建完毕。这样,以后创建属于容器组的容器的容器网络时,都会在全局ip管理模块中的数据库中查询该容器组对应的虚拟网卡,按照该容器组对应的虚拟网卡及对应ip来进行网络配置,从而不会出现ip漂移的现象。

s14、在宿主机上创建容器,所述容器属于所述容器组;

容器创建请求系统请求在宿主机上创建一台容器,该容器属于前述的容器组。

s15、判断是否创建容器网络,若是,则执行s16步骤:

容器创建请求系统判断该容器是否需要创建容器网络,若是,则通过宿主机通过容器网络接口向容器网络插件请求创建容器网络,容器网络插件接收到该请求后,向全局ip管理模块请求查询该容器所属的容器组所对应的虚拟网卡及ip。

s16、在所述数据库中查询与所述容器所属的所述容器组对应的所述虚拟网卡;

全局ip管理模块在数据库中查询与该容器所属的容器组对应的虚拟网卡,查询成功后返回该虚拟网卡的ip(网络地址)、mac(物理地址)、网关地址。

s17、绑定所述虚拟网卡到所述宿主机;

容器网络插件接收到该容器对应的虚拟网卡的相关地址后,向全局ip管理模块请求将该虚拟网卡绑定到宿主机,全局ip管理模块接收到该绑定请求后,会发送绑定请求给下层的网络设施管理组件,网络设施管理组件接收到绑定请求后,进行虚拟网卡绑定到宿主机的操作,然后返回绑定结果给全局ip管理模块,全局ip管理模块再将绑定结果传送回容器网络插件。

s18、根据所述虚拟网卡进行所述容器的网络配置。

容器网络插件在s17步骤中发送了绑定请求后,在宿主机上轮询检测虚拟网卡是否出现在网卡设备列表中,当虚拟网卡出现在宿主机的网卡设备列表中时即代表绑定操作已经完成。此时,将该网络设备移入容器的网络空间,并在容器空间内进行ip地址、mac地址、路由表和默认网关地址的配置。

至此,容器网络就创建配置完成了。

删除环节包括删除容器网络和缩容容器组两个过程。如图2所示,删除容器网络包括以下步骤:

s21、判断是否删除容器网络,若是则执行s22;

容器创建请求系统向宿主机请求删除容器,在容器被删除时,容器创建请求系统判断是否删除容器网络,若是,则通过宿主机向容器网络插件请求删除容器网络。容器网络插件接收到该请求后,向全局ip管理模块请求查询该容器所属的容器组所对应的虚拟网卡及ip。

s22、在所述数据库中查询与所述容器所属的所述容器组对应的所述虚拟网卡;

全局ip管理模块在数据库中查询与该容器所属的容器组对应的虚拟网卡,查询成功后返回该虚拟网卡的信息给容器网络插件。

s23、解绑所述虚拟网卡与所述宿主机的绑定;

容器网络插件接收到该容器对应的虚拟网卡的相关信息后,向全局ip管理模块请求解绑该虚拟网卡和宿主机,全局ip管理模块接收到该解绑请求后,会发送解绑请求给下层的网络设施管理组件,网络设施管理组件接收到解绑请求后,进行解绑虚拟网卡和宿主机的操作,然后返回解绑结果给全局ip管理模块,全局ip管理模块再将解绑结果传送回容器网络插件。

s24、在所述宿主机上删除所述容器的网络配置。

成功解绑虚拟网卡和宿主机后,容器网络插件在宿主机上删除该容器对应的网络配置,以备下次属于该容器组的容器创建其容器网络时使用。

如图3所示,缩容容器组包括以下步骤:

s31、判断是否缩容所述容器组,若是,则执行s32步骤;

容器创建请求系统判断是否缩容容器组,当判断为是时,容器创建请求系统向全局ip管理模块请求删除该容器组对应的虚拟网卡及对应ip,全局ip管理模块接收到该请求后,会发送删除请求给下层的网络设施管理组件。

s32、删除与所述容器组对应的所述虚拟网卡;

网络设施管理组件接收到删除请求后,进行删除虚拟网卡及对应ip的操作,然后返回删除结果给全局ip管理模块,全局ip管理模块再将删除结果传送回容器创建请求系统。

s33、在所述数据库中标记所述虚拟网卡为释放。

全局ip管理模块在将删除结果传送回容器创建请求系统的同时,在数据库中将该虚拟网卡标记为释放。

至此,容器网络的删除环节全部完成。

本实施例通过在数据库中存储容器组对应的虚拟网卡,属于该容器组的容器在创建容器网络时均通过查询数据库得到对应的虚拟网卡及对应ip地址,保证属于该容器组的容器建立的容器网络所对应的ip都是固定的,保证容器在应用更新版本时、宿主机故障迁移到其他宿主机等场景时均保持ip不变,保证了ip的漂移,保证了其他依赖于容器网络的服务的正常运行。

实施例2

本实施例提供一种容器网络配置系统,如图4所示,所述容器网络配置系统包括网络设施管理组件1、全局ip管理模块2和容器网络插件3,所述全局ip管理模块2包括一数据库4。

在创建容器网络环节中,全局ip管理模块2用于获取为容器组申请虚拟网卡的第一请求并将该请求发送给网络设施管理组件1;

网络设施管理组件1用于接收第一请求,并创建与容器组对应的虚拟网卡;然后将创建结果、虚拟网卡和对应ip返回给全局ip管理模块2。

全局ip管理模块2收到网络设施管理组件1返回的创建结果、虚拟网卡和对应ip后,还用于在数据库4中存储虚拟网卡与容器组的对应关系。

至此,容器组及其对应虚拟网卡及对应ip创建完毕。这样,以后创建属于该容器组的容器的容器网络时,都会按照该容器组对应的虚拟网卡及对应ip来进行网络配置,从而不会出现ip漂移的现象。

在创建容器配置容器网络的过程中,在宿主机上创建属于前述容器组的容器后,所述容器网络插件3用于判断是否获取到宿主机请求创建容器网络的第二请求,若是,则向全局ip管理模块2发送请求查询该容器所属的容器组所对应的虚拟网卡的第三请求。

全局ip管理模块2还用于接收该第三请求,在数据库4中查询与容器所属的容器组对应的虚拟网卡,查询成功后返回该虚拟网卡的ip(网络地址)、mac(物理地址)、网关地址。

网络设施管理组件1还用于接收全局ip管理模块2转发的绑定请求,绑定虚拟网卡到宿主机,然后返回绑定结果给全局ip管理模块2,全局ip管理模块2再将绑定结果传送回容器网络插件3。

容器网络插件3还用于在宿主机上轮询检测虚拟网卡是否出现在网卡设备列表中,当虚拟网卡出现在宿主机的网卡设备列表中时即代表绑定操作已经完成。此时,将该虚拟网卡移入容器的网络空间,并在容器空间内进行ip地址、mac地址、路由表和默认网关地址的配置。

在删除容器网络配置的过程中,所述容器网络插件3还用于判断是否获取到宿主机发送的删除容器网络的第四请求,若是,则向述全局ip管理模块2发送查询解绑虚拟网卡的第五请求。

全局ip管理模块2还用于接收该第五请求,在数据库4中查询与容器所属的容器组对应的虚拟网卡,查询成功后返回该虚拟网卡的信息。

网络设施管理组件1还用于接收全局ip管理模块2转发的解绑请求,解绑虚拟网卡与容器所在的宿主机的绑定,然后返回解绑结果给全局ip管理模块2,全局ip管理模块2再将解绑结果传送回容器网络插件3。

成功解绑虚拟网卡和宿主机后,容器网络插件3还用于在宿主机上删除容器的网络配置,以备下次属于该容器组的容器创建其容器网络时使用。

在缩容容器组的过程中,全局ip管理模块2还用于获取容器创建请求系统发送的缩容容器组的第六请求,并向网络设施管理组件1发送删除与容器组对应的虚拟网卡的第七请求;

网络设施管理组件1还用于接收该第七请求,删除与容器组对应的虚拟网卡,然后返回删除结果给全局ip管理模块2,全局ip管理模块2再将删除结果传送回容器创建请求系统。

全局ip管理模块2在传送删除结果的同时,还用于在数据库4中将该虚拟网卡标记为释放。

本实施例通过在数据库中存储容器组对应的虚拟网卡,属于该容器组的容器在创建容器网络时均通过查询数据库得到对应的虚拟网卡及对应ip地址,保证属于该容器组的容器建立的容器网络所对应的ip都是固定的,保证容器在应用更新版本时、宿主机故障迁移到其他宿主机等场景时均能保持ip不变,保证了ip的漂移,保证了其他依赖于容器网络的服务的正常运行。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1