一种容器端口管理的方法,装置,介质及设备制造方法及图纸

技术编号:26417877 阅读:37 留言:0更新日期:2020-11-20 14:12
本发明专利技术公开了一种容器端口管理方法,获取容器的端口分配请求,端口分配请求携带分配请求参数;根据所述分配请求参数选择状态为空闲的端口,将选定端口分配给所述容器;将所述选定端口的状态标记为已用;将端口按容器类型分成不同的端口集合,按容器类型为容器分配端口,并将容器标识与选定端口的映射关系,以及选定的端口存储在不同数据结构中,在为容器分配端口的时候,可以快速准确的查找到空闲端口,实现了对端口的方便快速管理,避免了在为容器分配端口的时候造成端口冲突。

【技术实现步骤摘要】
一种容器端口管理的方法,装置,介质及设备
本专利技术涉及计算机领域,尤其涉及计算机端口的管理。
技术介绍
在使用容器的时候,已有容器的bridge的访问模式,需要将容器的ip映射到主机对应的端口上,来让外网访问。现有的技术中,容器ip映射的端口需要用户在创建容器的时候指定,当用户创建多个容器后,已经不知道主机中的哪些端口已经被容器ip映射,这个时候为新建容器指定映射端口的时候,如果指定的端口已经被占用,就容易造成端口冲突。
技术实现思路
为了解决上述技术问题,本专利技术提供了一种容器端口管理的方法,该方法包括:获取容器的端口分配请求,端口分配请求携带分配请求参数;根据分配请求参数选择状态为空闲的端口,将选定端口分配给所述容器;将选定端口的状态标记为已用;分配请求参数包括容器类型和/或预分配端口;根据分配请求参数选择状态为空闲的端口包括以下方式中的一种:当分配请求参数包括容器类型时,根据容器类型在与容器类型对应的预定端口集合中选择状态为空闲的端口;当分配请求参数包括预分配端口时,如预分配端口的状态为空闲,则选择预分配端口;如预分配端口状态为已用,则在所有端口中选择状态为空闲的端口;当分配请求参数包括容器类型和预分配端口时,如预分配端口的状态为空闲,则选择预分配端口;如预分配端口状态为已用,根据容器类型在与容器类型对应的预定端口集合中选择状态为空闲的端口。该方法还包括:确定容器的标识与所述选定端口的标识之间的映射关系;将容器的标识与选定端口的标识之间的映射关系以及选定端口的标识存储在预设数据结构中。将容器的标识与选定端口的标识之间的映射关系以及选定端口的标识存储在预设数据结构中包括:预设数据结构包括树结构和链表结构;将容器的标识与选定端口的标识之间的映射关系存储在树结构中,将选定端口的标识存储在链表结构中。链表结构包括一个以上的链表,不同的链表对应于不同的容器类型;将选定端口的标识存储在链表结构中包括:确定容器的容器类型,将选定端口的标识存储在与容器的容器类型对应的链表中。该方法还包括:接收容器销毁通知,容器销毁通知中包括容器的标识;在树结构中搜索容器的标识所在的节点,根据此节点确定容器的标识对应的端口的标识和容器类型;删除树结构中容器的标识所在的节点;确定容器类型对应的链表,从此链表中删除端口的标识所在的结点;将端口的状态标记为空闲。该方法还包括:扫描树结构,遍历树结构中的容器的标识;查询每一容器的标识在容器引擎中是否存在;如容器引擎中不存在某一容器的标识,则确定此容器的标识所在的节点所指示的端口为垃圾端口;删除树结构中此容器的标识所在的节点;确定容器的容器类型对应的链表,删除此链表中垃圾端口的标识所在的结点;将垃圾端口的状态标记为空闲。在对树结构和/或链表结构进行添加,删除,查询,遍历操作时,对树结构和链表结构设置单线程访问限制,操作完成后对树结构和链表结构解除单线程访问限制。本专利技术还提供一种容器端口管理装置,包括:接收模块:用于接收容器的端口分配请求;端口选择模块:基于端口分配请求携带的分配请求参数,选择状态为空闲的端口,将选定端口分配给容器;端口状态标记模块:将选定端口的状态标记为已用;分配请求参数包括容器类型和/或预分配端口;根据分配请求参数选择状态为空闲的端口包括以下方式中的一种:当分配请求参数包括容器类型时,根据容器类型在与容器类型对应的预定端口集合中选择状态为空闲的端口;当分配请求参数包括预分配端口时,如预分配端口的状态为空闲,则选择预分配端口;如预分配端口状态为已用,则在所有端口中选择状态为空闲的端口;当请求信息包括容器类型和预分配端口时,如预分配端口的状态为空闲,则选择预分配端口;如预分配端口状态为已用,根据容器类型在与容器类型对应的预定端口集合中选择状态为空闲的端口。该装置还包括:映射关系建立模块:确定容器的标识与选定端口的标识之间的映射关系;存储模块:将容器的标识与选定端口的标识之间的映射关系以及选定端口的标识存储在预设数据结构中。将容器的标识与选定端口的标识之间的映射关系以及选定端口的标识存储在预设数据结构中包括:预设数据结构包括树结构和链表结构;将容器的标识与选定端口的标识之间的映射关系存储在树结构中,将选定端口的标识存储在链表结构中。链表结构包括一个以上的链表,不同的链表对应于不同的容器类型;将选定端口的标识存储在链表结构中包括:确定容器的容器类型,将选定端口的标识存储在与容器的容器类型对应的链表中。该装置还包括:接收模块还用于接收容器销毁通知,容器销毁通知中包括容器的标识;扫描模块:在树结构中搜索容器的标识所在的节点,根据此节点确定所述容器的标识对应的端口的标识和容器类型;存储模块:删除树结构中容器的标识所在的节点;确定容器类型对应的链表,从此链表中删除端口的标识所在的结点;端口状态标记模块将端口的状态标记为空闲。该装置还包括:扫描模块:扫描树结构,遍历树结构中的容器的标识;查询模块:查询每一容器的标识在容器引擎中是否存在;如容器引擎中不存在某一容器的标识,则确定此容器的标识所在的节点所指示的端口为垃圾端口;删除树结构中此容器的标识所在的节点;确定容器的容器类型对应的链表,删除此链表中垃圾端口的标识所在的结点;将垃圾端口的状态标记为空闲。在对树结构和/或链表结构进行添加,删除,查询,遍历操作时,对树结构和链表结构设置单线程访问限制,操作完成后对树结构和链表结构解除所述单线程访问限制。一种计算机可读介质,其上存储有计算机可读指令,计算机可读指令可被处理器执行以实现上述方法。一种计算机设备,包括处理器、存储器和存储于存储器上的计算机程序,其特征在于,处理器执行计算机程序时实现上述方法的步骤。附图说明构成本专利技术的一部分的附图用来提供对本专利技术的进一步理解,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1是容器端口管理方法的流程图;图2是二叉树示意图;图3是链表结构示意图;图4是容器端口管理装置的结构图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。如图1所示,容器端口管理方法包括:步骤101,获取容器的端口分本文档来自技高网...

【技术保护点】
1.一种容器端口管理方法,其特征在于,/n获取容器的端口分配请求,所述端口分配请求携带分配请求参数;/n根据所述分配请求参数选择状态为空闲的端口,将选定端口分配给所述容器;/n将所述选定端口的状态标记为已用;/n所述分配请求参数包括容器类型和/或预分配端口;/n根据所述分配请求参数选择状态为空闲的端口包括以下方式中的一种:/n当所述分配请求参数包括容器类型时,根据所述容器类型在与所述容器类型对应的预定端口集合中选择状态为空闲的端口;/n当所述分配请求参数包括预分配端口时,如所述预分配端口的状态为空闲,则选择所述预分配端口;如所述预分配端口状态为已用,则在所有端口中选择状态为空闲的端口;/n当所述分配请求参数包括容器类型和预分配端口时,如所述预分配端口的状态为空闲,则选择所述预分配端口;如所述预分配端口状态为已用,根据所述容器类型在与所述容器类型对应的预定端口集合中选择状态为空闲的端口。/n

【技术特征摘要】
1.一种容器端口管理方法,其特征在于,
获取容器的端口分配请求,所述端口分配请求携带分配请求参数;
根据所述分配请求参数选择状态为空闲的端口,将选定端口分配给所述容器;
将所述选定端口的状态标记为已用;
所述分配请求参数包括容器类型和/或预分配端口;
根据所述分配请求参数选择状态为空闲的端口包括以下方式中的一种:
当所述分配请求参数包括容器类型时,根据所述容器类型在与所述容器类型对应的预定端口集合中选择状态为空闲的端口;
当所述分配请求参数包括预分配端口时,如所述预分配端口的状态为空闲,则选择所述预分配端口;如所述预分配端口状态为已用,则在所有端口中选择状态为空闲的端口;
当所述分配请求参数包括容器类型和预分配端口时,如所述预分配端口的状态为空闲,则选择所述预分配端口;如所述预分配端口状态为已用,根据所述容器类型在与所述容器类型对应的预定端口集合中选择状态为空闲的端口。


2.如权利要求1所述的容器端口管理方法,其特征在于,还包括:
确定所述容器的标识与所述选定端口的标识之间的映射关系;
将所述容器的标识与所述选定端口的标识之间的映射关系以及所述选定端口的标识存储在预设数据结构中。


3.如权利要求2所述的容器端口管理方法,其特征在于,将所述容器的标识与所述选定端口的标识之间的映射关系以及所述选定端口的标识存储在预设数据结构中包括:
所述预设数据结构包括树结构和链表结构;将所述容器的标识与所述选定端口的标识之间的映射关系存储在树结构中,将所述选定端口的标识存储在链表结构中。


4.如权利要求3所述的容器端口管理方法,其特征在于,所述链表结构包括一个以上的链表,不同的链表对应于不同的容器类型;
将所述选定端口的标识存储在链表结构中包括:确定所述容器的容器类型,将所述选定端口的标识存储在与所述容器的容器类型对应的链表中。


5.如权利要求4所述的容器端口管理方法,其特征在于,还包括:
接收容器销毁通知,所述容器销毁通知中包括容器的标识;
在所述树结构中搜索所述容器的标识所在的节点,根据此节点确定所述容器的标识对应的端口的标识和容器类型;
删除所述树结构中所述容器的标识所在的节点;
确定所述容器类型对应的链表,从此链表中删除所述端口的标识所在的结点;
将所述端口的状态标记为空闲。


6.如权利要求4所述的容器端口管理方法,其特征在于,还包括:
扫描所述树结构,遍历所述树结构中的容器的标识;
查询每一容器的标识在容器引擎中是否存在;
如所述容器引擎中不存在某一容器的标识,则确定此容器的标识所在的节点所指示的端口为垃圾端口;
删除所述树结构中此容器的标识所在的节点;
确定所述容器的容器类型对应的链表,删除此链表中所述垃圾端口的标识所在的结点;
将所述垃圾端口的状态标记为空闲。


7.如权利要求3-6任一所述的容器端口管理方法,其特征在于,在对所述树结构和/或链表结构进行添加,删除,查询,遍历操作时,对所述树结构和链表结构设置单线程访问限制,操作完成后对所述树结构和链表结构解除所述单线程访问限制。


8.一种容器端口管理装置,包括:
接收模块:用于接收容器的端口分配请求;
端口选择模块:基于所述端口分配请求携带的分配请求参数,选择状态为空闲的端口,将选定端口分配给所述容器;
端口状态标记模块:将所述选定端口...

【专利技术属性】
技术研发人员:陈闯苗辉
申请(专利权)人:北京白山耘科技有限公司
类型:发明
国别省市:北京;11

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

1