一种IP分配方法以及IP分配装置

阅读: 评论:0

著录项
  • CN202010274918.0
  • 20200409
  • CN111491040A
  • 20200804
  • 北京城市网邻信息技术有限公司
  • 陈鹏;邱明;李晓伟
  • H04L29/12
  • H04L29/12

  • 北京市朝阳区酒仙桥北路甲10号院101号楼1-7层内1层103室
  • 北京(11)
  • 北京弘权知识产权代理事务所(普通合伙)
  • 逯长明;许伟
摘要
本申请提供一种IP分配方法以及IP分配装置,该方法包括:接收容器创建指令,其中,容器创建指令包含所需创建的容器的数量M;根据容器创建指令,从第一IP池中选择N个IP,获得包含N个IP的第二IP池,并从第一IP池中删除N个IP,其中,N>M;向M个目标宿主机中的每个目标宿主机发送第一通知指令,第一通知指令用于指示M个目标宿主机中的每个目标宿主机内的容器编排器,从第二IP池中申请一个第一IP,并将该目标宿主机的容器的网络命名空间内的虚拟网卡的IP设置为所申请的第一IP;将M个目标宿主机从第二IP池中所申请的M个第一IP标记为已分配IP。这样,不会在容器内部进行改动,避免代码侵入,使容器更稳定。
权利要求

1.一种IP分配方法,其特征在于,包括:

接收容器创建指令,其中,所述容器创建指令包含所需创建的容器的数量M;

根据所述容器创建指令,从第一IP池中选择N个IP,获得包含所述N个IP的第二IP池,并从所述第一IP池中删除所述N个IP,其中,N>M;

向M个目标宿主机中的每个目标宿主机发送第一通知指令,所述第一通知指令用于指示所述M个目标宿主机中的每个目标宿主机内的容器编排器,从所述第二IP池中申请一个第一IP,并将该目标宿主机的容器的网络命名空间内的虚拟网卡的IP设置为所申请的所述第一IP;

将所述M个目标宿主机从所述第二IP池中所申请的M个第一IP标记为已分配IP。

2.如权利要求1所述的方法,其特征在于,在所述将所述M个目标宿主机从所述第二IP池中所申请的M个第一IP标记为已分配IP的步骤之后,所述方法还包括:

向所述M个目标宿主机中的第一目标宿主机发送重启指令;

接收所述第一目标宿主机发送的第一归还IP指令,其中,所述第一归还IP指令为所述第一目标宿主机中的容器编排器根据所述重启指令,关闭所述第一目标宿主机中的容器之后所生成的,所述第一归还IP指令包含第一归还IP;

根据所述第一归还IP指令,将所述第一归还IP标记为未分配IP;

向除所述M个目标宿主机之外的第二宿主机发送第二通知指令,所述第二通知指令用于指示所述第二宿主机内的容器编排器,从所述第二IP池中申请所述第一归还IP,并将所述第二宿主机的容器的网络命名空间内的虚拟网卡的IP设置为所申请的所述第一归还IP。

3.如权利要求1所述的方法,其特征在于,在所述将所述M个目标宿主机从所述第二IP池中所申请的M个第一IP标记为已分配IP的步骤之后,所述方法还包括:

接收扩容指令,其中,所述扩容指令内包含所需增加容器的数量P;

根据所述扩容指令,向P个第三宿主机中的每个第三宿主机发送第三通知指令,其中,所述P个第三宿主机为与所述M个目标宿主机不同的宿主机,所述第三通知指令用于指示所述P个第三宿主机中的每个第三宿主机内的容器编排器,从所述第二IP池中申请一个第三IP,并将该第三宿主机的容器的网络命名空间内的虚拟网卡的IP设置为所申请的所述第三IP。

4.如权利要求1所述的方法,其特征在于,在所述将所述M个目标宿主机从所述第二IP池中所申请的M个第一IP标记为已分配IP的步骤之后,所述方法还包括:

接收缩容指令,其中,所述缩容指令内包含所需删减的容器的数量S;

根据所述缩容指令,向S个所述目标宿主机发送第四通知指令;

接收所述S个所述目标宿主机中的每个目标宿主机发送的第二归还IP指令,其中,所述第二归还IP指令为所述S个所述目标宿主机中的每个目标宿主机中的容器编排器根据所述第四通知指令,关闭该目标宿主机中的容器之后所生成的,所述第二归还IP指令包含第二归还IP;

根据所述第二归还IP指令,将所述第二归还IP标记为未分配IP。

5.如权利要求1所述的方法,其特征在于,在所述将所述M个目标宿主机从所述第二IP池中所申请的M个第一IP标记为已分配IP的步骤之后,所述方法还包括:

周期性遍历所述M个第一IP对应的M个容器的状态是否健康;

在确定所述M个第一IP中的第一目标IP对应的容器的状态不健康的情况下,将所述第一目标IP标记为未分配IP。

6.如权利要求1所述的方法,其特征在于,在所述将所述M个目标宿主机从所述第二IP池中所申请的M个第一IP标记为已分配IP的步骤之后,所述方法还包括:

监听所述M个目标宿主机中的每个目标宿主机内的容器是否被销毁;

在监听到所述M个目标宿主机中的第二目标宿主机内的容器被销毁的情况下,判断所述第二目标宿主机内的容器所占用的第一IP是否已被回收;

在判断出所述第二目标宿主机内的容器所占用的第一IP未被回收的情况下,将所述第二目标宿主机内的容器所占用的第一IP标记为未分配IP。

7.一种IP分配装置,其特征在于,包括:

第一接收模块,用于接收容器创建指令,其中,所述容器创建指令包含所需创建的容器的数量M;

选择模块,用于根据所述容器创建指令,从第一IP池中选择N个IP,获得包含所述N个IP的第二IP池,并从所述第一IP池中删除所述N个IP,其中,N>M;

第一发送模块,用于向M个目标宿主机中的每个目标宿主机发送第一通知指令,所述第一通知指令用于指示所述M个目标宿主机中的每个目标宿主机内的容器编排器,从所述第二IP池中申请一个第一IP,并将该目标宿主机的容器的网络命名空间内的虚拟网卡的IP设置为所申请的所述第一IP;

第一标记模块,用于将所述M个目标宿主机从所述第二IP池中所申请的M个第一IP标记为已分配IP。

8.如权利要求7所述的IP分配装置,其特征在于,所述IP分配装置还包括:

第二发送模块,用于向所述M个目标宿主机中的第一目标宿主机发送重启指令;

第二接收模块,用于接收所述第一目标宿主机发送的第一归还IP指令,其中,所述第一归还IP指令为所述第一目标宿主机中的容器编排器根据所述重启指令,关闭所述第一目标宿主机中的容器之后所生成的,所述第一归还IP指令包含第一归还IP;

第二标记模块,用于根据所述第一归还IP指令,将所述第一归还IP标记为未分配IP;

第三发送模块,用于向除所述M个目标宿主机之外的第二宿主机发送第二通知指令,所述第二通知指令用于指示所述第二宿主机内的容器编排器,从所述第二IP池中申请所述第一归还IP,并将所述第二宿主机的容器的网络命名空间内的虚拟网卡的IP设置为所申请的所述第一归还IP。

9.如权利要求7所述的IP分配装置,其特征在于,所述IP分配装置还包括:

第三接收模块,用于接收扩容指令,其中,所述扩容指令内包含所需增加容器的数量P;

第四发送模块,用于根据所述扩容指令,向P个第三宿主机中的每个第三宿主机发送第三通知指令,其中,所述P个第三宿主机为与所述M个目标宿主机不同的宿主机,所述第三通知指令用于指示所述P个第三宿主机中的每个第三宿主机内的容器编排器,从所述第二IP池中申请一个第三IP,并将该第三宿主机的容器的网络命名空间内的虚拟网卡的IP设置为所申请的所述第三IP。

10.如权利要求7所述的IP分配装置,其特征在于,所述IP分配装置还包括:

第四接收模块,用于接收缩容指令,其中,所述缩容指令内包含所需删减的容器的数量S;

第五发送模块,用于根据所述缩容指令,向S个所述目标宿主机发送第四通知指令;

第五接收模块,用于接收所述S个所述目标宿主机中的每个目标宿主机发送的第二归还IP指令,其中,所述第二归还IP指令为所述S个所述目标宿主机中的每个目标宿主机中的容器编排器根据所述第四通知指令,关闭该目标宿主机中的容器之后所生成的,所述第二归还IP指令包含第二归还IP;

第三标记模块,用于根据所述第二归还IP指令,将所述第二归还IP标记为未分配IP。

11.如权利要求7所述的IP分配装置,其特征在于,所述IP分配装置还包括:

遍历模块,用于周期性遍历所述M个第一IP对应的M个容器的状态是否健康;

第四标记模块,用于在确定所述M个第一IP中的第一目标IP对应的容器的状态不健康的情况下,将所述第一目标IP标记为未分配IP。

12.如权利要求7所述的IP分配装置,其特征在于,所述IP分配装置还包括:

监听模块,用于监听所述M个目标宿主机中的每个目标宿主机内的容器是否被销毁;

判断模块,用于在监听到所述M个目标宿主机中的第二目标宿主机内的容器被销毁的情况下,判断所述第二目标宿主机内的容器所占用的第一IP是否已被回收;

第五标记模块,用于在判断出所述第二目标宿主机内的容器所占用的第一IP未被回收的情况下,将所述第二目标宿主机内的容器所占用的第一IP标记为未分配IP。

13.一种电子设备,其特征在于,包括:

存储器,用于存储程序指令;

处理器,用于调用并执行所述存储器中的程序指令,以实现权利要求1~6任一项所述的IP分配方法。

14.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,当IP分配装置的至少一个处理器执行所述计算机程序时,IP分配装置执行权利要求1~6任一项所述的IP分配方法。

说明书
技术领域

本申请涉及通信技术领域,尤其涉及一种IP分配方法以及IP分配装置。

一个机架可以包含多个宿主机,每个宿主机可以包含多个容器。在某个宿主机内的某个容器发生滚动升级时,该容器可能会迁移至另一个机架所包含的一个宿主机内。

由于每个宿主机都有自己对应的可用IP段,不同宿主机的可用IP段可能有不同。因此当容器发生滚动升级时,容器升级之前所使用的IP可能会因为不在新的宿主机的可用IP段内,导致无法继续使用。

现有技术中,会通过容器内部的IP管理模块对容器的网络进行初始化,同时将容器中和IP分配相关的信息传入IP管理模块。在容器发生迁移之后,会重新为容器分配IP。但此种方式对容器内部改动较大,不利于容器的稳定。

本申请提供了一种IP分配方法以及IP分配装置,以解决现有技术中,通过容器内部的IP管理模块对容器的网络进行初始化,同时将容器中和IP分配相关的信息传入IP管理模块。在容器发生迁移之后,会重新为容器分配IP。但此种方式对容器内部改动较大,不利于容器的稳定的问题。

第一方面,本发明提供了一种IP分配方法,包括:

接收容器创建指令,其中,所述容器创建指令包含所需创建的容器的数量M;

根据所述容器创建指令,从第一IP池中选择N个IP,获得包含所述N个IP的第二IP池,并从所述第一IP池中删除所述N个IP,其中,N>M;

向M个目标宿主机中的每个目标宿主机发送第一通知指令,所述第一通知指令用于指示所述M个目标宿主机中的每个目标宿主机内的容器编排器,从所述第二IP池中申请一个第一IP,并将该目标宿主机的容器的网络命名空间内的虚拟网卡的IP设置为所申请的所述第一IP;

将所述M个目标宿主机从所述第二IP池中所申请的M个第一IP标记为已分配IP。

进一步的,在所述将所述M个目标宿主机从所述第二IP池中所申请的M个第一IP标记为已分配IP的步骤之后,所述方法还包括:

向所述M个目标宿主机中的第一目标宿主机发送重启指令;

接收所述第一目标宿主机发送的第一归还IP指令,其中,所述第一归还IP指令为所述第一目标宿主机中的容器编排器根据所述重启指令,关闭所述第一目标宿主机中的容器之后所生成的,所述第一归还IP指令包含第一归还IP;

根据所述第一归还IP指令,将所述第一归还IP标记为未分配IP;

向除所述M个目标宿主机之外的第二宿主机发送第二通知指令,所述第二通知指令用于指示所述第二宿主机内的容器编排器,从所述第二IP池中申请所述第一归还IP,并将所述第二宿主机的容器的网络命名空间内的虚拟网卡的IP设置为所申请的所述第一归还IP。

进一步的,在所述将所述M个目标宿主机从所述第二IP池中所申请的M个第一IP标记为已分配IP的步骤之后,所述方法还包括:

接收扩容指令,其中,所述扩容指令内包含所需增加容器的数量P;

根据所述扩容指令,向P个第三宿主机中的每个第三宿主机发送第三通知指令,其中,所述P个第三宿主机为与所述M个目标宿主机不同的宿主机,所述第三通知指令用于指示所述P个第三宿主机中的每个第三宿主机内的容器编排器,从所述第二IP池中申请一个第三IP,并将该第三宿主机的容器的网络命名空间内的虚拟网卡的IP设置为所申请的所述第三IP。

进一步的,在所述将所述M个目标宿主机从所述第二IP池中所申请的M个第一IP标记为已分配IP的步骤之后,所述方法还包括:

接收缩容指令,其中,所述缩容指令内包含所需删减的容器的数量S;

根据所述缩容指令,向S个所述目标宿主机发送第四通知指令;

接收所述S个所述目标宿主机中的每个目标宿主机发送的第二归还IP指令,其中,所述第二归还IP指令为所述S个所述目标宿主机中的每个目标宿主机中的容器编排器根据所述第四通知指令,关闭该目标宿主机中的容器之后所生成的,所述第二归还IP指令包含第二归还IP;

根据所述第二归还IP指令,将所述第二归还IP标记为未分配IP。

进一步的,在所述将所述M个目标宿主机从所述第二IP池中所申请的M个第一IP标记为已分配IP的步骤之后,所述方法还包括:

周期性遍历所述M个第一IP对应的M个容器的状态是否健康;

在确定所述M个第一IP中的第一目标IP对应的容器的状态不健康的情况下,将所述第一目标IP标记为未分配IP。

进一步的,在所述将所述M个目标宿主机从所述第二IP池中所申请的M个第一IP标记为已分配IP的步骤之后,所述方法还包括:

监听所述M个目标宿主机中的每个目标宿主机内的容器是否被销毁;

在监听到所述M个目标宿主机中的第二目标宿主机内的容器被销毁的情况下,判断所述第二目标宿主机内的容器所占用的第一IP是否已被回收;

在判断出所述第二目标宿主机内的容器所占用的第一IP未被回收的情况下,将所述第二目标宿主机内的容器所占用的第一IP标记为未分配IP。

第二方面,本发明还提供了一种IP分配装置,包括:

第一接收模块,用于接收容器创建指令,其中,所述容器创建指令包含所需创建的容器的数量M;

选择模块,用于根据所述容器创建指令,从第一IP池中选择N个IP,获得包含所述N个IP的第二IP池,并从所述第一IP池中删除所述N个IP,其中,N>M;

第一发送模块,用于向M个目标宿主机中的每个目标宿主机发送第一通知指令,所述第一通知指令用于指示所述M个目标宿主机中的每个目标宿主机内的容器编排器,从所述第二IP池中申请一个第一IP,并将该目标宿主机的容器的网络命名空间内的虚拟网卡的IP设置为所申请的所述第一IP;

第一标记模块,用于将所述M个目标宿主机从所述第二IP池中所申请的M个第一IP标记为已分配IP。

进一步的,所述IP分配装置还包括:

第二发送模块,用于向所述M个目标宿主机中的第一目标宿主机发送重启指令;

第二接收模块,用于接收所述第一目标宿主机发送的第一归还IP指令,其中,所述第一归还IP指令为所述第一目标宿主机中的容器编排器根据所述重启指令,关闭所述第一目标宿主机中的容器之后所生成的,所述第一归还IP指令包含第一归还IP;

第二标记模块,用于根据所述第一归还IP指令,将所述第一归还IP标记为未分配IP;

第三发送模块,用于向除所述M个目标宿主机之外的第二宿主机发送第二通知指令,所述第二通知指令用于指示所述第二宿主机内的容器编排器,从所述第二IP池中申请所述第一归还IP,并将所述第二宿主机的容器的网络命名空间内的虚拟网卡的IP设置为所申请的所述第一归还IP。

进一步的,所述IP分配装置还包括:

第三接收模块,用于接收扩容指令,其中,所述扩容指令内包含所需增加容器的数量P;

第四发送模块,用于根据所述扩容指令,向P个第三宿主机中的每个第三宿主机发送第三通知指令,其中,所述P个第三宿主机为与所述M个目标宿主机不同的宿主机,所述第三通知指令用于指示所述P个第三宿主机中的每个第三宿主机内的容器编排器,从所述第二IP池中申请一个第三IP,并将该第三宿主机的容器的网络命名空间内的虚拟网卡的IP设置为所申请的所述第三IP。

进一步的,所述IP分配装置还包括:

第四接收模块,用于接收缩容指令,其中,所述缩容指令内包含所需删减的容器的数量S;

第五发送模块,用于根据所述缩容指令,向S个所述目标宿主机发送第四通知指令;

第五接收模块,用于接收所述S个所述目标宿主机中的每个目标宿主机发送的第二归还IP指令,其中,所述第二归还IP指令为所述S个所述目标宿主机中的每个目标宿主机中的容器编排器根据所述第四通知指令,关闭该目标宿主机中的容器之后所生成的,所述第二归还IP指令包含第二归还IP;

第三标记模块,用于根据所述第二归还IP指令,将所述第二归还IP标记为未分配IP。

进一步的,所述IP分配装置还包括:

遍历模块,用于周期性遍历所述M个第一IP对应的M个容器的状态是否健康;

第四标记模块,用于在确定所述M个第一IP中的第一目标IP对应的容器的状态不健康的情况下,将所述第一目标IP标记为未分配IP。

进一步的,所述IP分配装置还包括:

监听模块,用于监听所述M个目标宿主机中的每个目标宿主机内的容器是否被销毁;

判断模块,用于在监听到所述M个目标宿主机中的第二目标宿主机内的容器被销毁的情况下,判断所述第二目标宿主机内的容器所占用的第一IP是否已被回收;

第五标记模块,用于在判断出所述第二目标宿主机内的容器所占用的第一IP未被回收的情况下,将所述第二目标宿主机内的容器所占用的第一IP标记为未分配IP。

第三方面,本发明还提供了一种电子设备,包括:

存储器,用于存储程序指令;

处理器,用于调用并执行所述存储器中的程序指令,以实现第一方面所述的IP分配方法。

第四方面,本发明还提供了一种可读存储介质,包括:所述可读存储介质中存储有计算机程序,当IP分配装置的至少一个处理器执行所述计算机程序时,IP分配装置执行第一方面所述的IP分配方法。

由以上技术方案可知,本发明实施例提供的一种IP分配方法以及IP分配装置,接收容器创建指令,其中,所述容器创建指令包含所需创建的容器的数量M;根据所述容器创建指令,从第一IP池中选择N个IP,获得包含所述N个IP的第二IP池,并从所述第一IP池中删除所述N个IP,其中,N>M;向M个目标宿主机中的每个目标宿主机发送第一通知指令,所述第一通知指令用于指示所述M个目标宿主机中的每个目标宿主机内的容器编排器,从所述第二IP池中申请一个第一IP,并将该目标宿主机的容器的网络命名空间内的虚拟网卡的IP设置为所申请的所述第一IP;将所述M个目标宿主机从所述第二IP池中所申请的M个第一IP标记为已分配IP。这样,可以通过每个宿主机内的容器编排器,从第二IP池中申请一个第一IP,并将该宿主机的容器的网络命名空间内的虚拟网卡的IP设置为所申请的第一IP。不会在容器内部进行改动,避免代码侵入,使容器更稳定。

为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的一种IP分配方法的流程图;

图2为本发明提供的一种IP分配装置的结构图;

图3为本发明提供的另一种IP分配装置的结构图;

图4为本发明提供的另一种IP分配装置的结构图;

图5为本发明提供的另一种IP分配装置的结构图;

图6为本发明提供的另一种IP分配装置的结构图;

图7为本发明提供的另一种IP分配装置的结构图;

图8为本发明提供的一种电子设备的硬件结构示意图。

下面将详细地对实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下实施例中描述的实施方式并不代表与本申请相一致的所有实施方式。仅是与权利要求书中所详述的、本申请的一些方面相一致的系统和方法的示例。

参见图1,图1是本发明提供的一种IP分配方法的流程图。如图1所示,包括以下步骤:

步骤101、接收容器创建指令,其中,所述容器创建指令包含所需创建的容器的数量M。

在步骤101中,主节点可以接收容器创建指令。需要说明的是,可以先注入一批IP到资源池,即可以先注入一批IP到第一IP池,同时可以将这批IP记录到主节点的数据库中。业务负责人想要创建一个业务集,且该业务集包含多个容器时,可以通过管理平台向主节点发送容器创建指令,该容器创建指令可以包含所需创建的容器的数量M。

步骤102、根据所述容器创建指令,从第一IP池中选择N个IP,获得包含所述N个IP的第二IP池,并从所述第一IP池中删除所述N个IP,其中,N>M。

在步骤102中,主节点可以根据接收到的容器创建指令,从第一IP池中选择N个IP,获得包含N个IP的第二IP池。即可以从资源池中选择N个IP,获得包含N个IP的预分配池。还可以从第一IP池中删除N个IP,即可以从资源池中删除N个IP。其中,N>M。

步骤103、向M个目标宿主机中的每个目标宿主机发送第一通知指令,所述第一通知指令用于指示所述M个目标宿主机中的每个目标宿主机内的容器编排器,从所述第二IP池中申请一个第一IP,并将该目标宿主机的容器的网络命名空间内的虚拟网卡的IP设置为所申请的所述第一IP。

在步骤103中,主节点可以向M个目标宿主机中的每个目标宿主机发送第一通知指令,该第一通知指令用于指示M个目标宿主机中的每个目标宿主机内的容器编排器,从第二IP池中申请一个第一IP,即从预分配池中申请一个第一IP,并将该目标宿主机的容器的网络命名空间内的虚拟网卡的IP设置为所申请的第一IP。这样,可以通过每个宿主机内的容器编排器,从第二IP池中申请一个第一IP,并将该宿主机的容器的网络命名空间内的虚拟网卡的IP设置为所申请的第一IP。不会在容器内部进行改动,避免代码侵入,使容器更稳定。

步骤104、将所述M个目标宿主机从所述第二IP池中所申请的M个第一IP标记为已分配IP。

在步骤104中,主节点还可以将M个目标宿主机从第二IP池中所申请的M个第一IP标记为已分配IP。需要说明的是,现有技术中,会通过容器内部的IP管理模块对容器的网络进行初始化,同时将容器中和IP分配相关的信息传入IP管理模块。在容器发生迁移之后,会重新为容器分配IP。但此种方式对容器内部改动较大,不利于容器的稳定。

而在本申请中,可以通过每个宿主机内的容器编排器,从第二IP池中申请一个第一IP,并将该宿主机的容器的网络命名空间内的虚拟网卡的IP设置为所申请的第一IP。不会在容器内部进行改动,避免代码侵入,使容器更稳定。

可选的,在所述将所述M个目标宿主机从所述第二IP池中所申请的M个第一IP标记为已分配IP的步骤之后,所述方法还包括:

向所述M个目标宿主机中的第一目标宿主机发送重启指令;

接收所述第一目标宿主机发送的第一归还IP指令,其中,所述第一归还IP指令为所述第一目标宿主机中的容器编排器根据所述重启指令,关闭所述第一目标宿主机中的容器之后所生成的,所述第一归还IP指令包含第一归还IP;

根据所述第一归还IP指令,将所述第一归还IP标记为未分配IP;

向除所述M个目标宿主机之外的第二宿主机发送第二通知指令,所述第二通知指令用于指示所述第二宿主机内的容器编排器,从所述第二IP池中申请所述第一归还IP,并将所述第二宿主机的容器的网络命名空间内的虚拟网卡的IP设置为所申请的所述第一归还IP。

主节点还可以向M个目标宿主机中的第一目标宿主机发送重启指令。接下来,主节点可以接收第一目标宿主机发送的第一归还IP指令。其中,第一归还IP指令为第一目标宿主机中的容器编排器根据上述重启指令,关闭第一目标宿主机中的容器之后所生成的。第一归还IP指令包含第一归还IP。该第一归还IP即为第一目标宿主机中的容器编排器之前从第二IP池中所申请的一个第一IP。然后,主节点可以根据第一归还IP指令,将第一归还IP标记为未分配IP。接下来,主节点可以向除M个目标宿主机之外的第二宿主机发送第二通知指令,该第二通知指令用于指示第二宿主机内的容器编排器,从第二IP池中申请第一归还IP,并将第二宿主机的容器的网络命名空间内的虚拟网卡的IP设置为所申请的第一归还IP。这样,容器重启之后,还可以使用重启之前所申请的IP,达到容器重启但所使用的IP固定不变的效果。

可选的,在所述将所述M个目标宿主机从所述第二IP池中所申请的M个第一IP标记为已分配IP的步骤之后,所述方法还包括:

接收扩容指令,其中,所述扩容指令内包含所需增加容器的数量P;

根据所述扩容指令,向P个第三宿主机中的每个第三宿主机发送第三通知指令,其中,所述P个第三宿主机为与所述M个目标宿主机不同的宿主机,所述第三通知指令用于指示所述P个第三宿主机中的每个第三宿主机内的容器编排器,从所述第二IP池中申请一个第三IP,并将该第三宿主机的容器的网络命名空间内的虚拟网卡的IP设置为所申请的所述第三IP。

需要说明的是,业务负责人想要新增容器时,可以通过管理平台向主节点发送扩容指令,主节点可以接收该扩容指令。该扩容指令内可以包含所需增加容器的数量P。进而主节点可以根据接收到的扩容指令,向P个第三宿主机中的每个第三宿主机发送第三通知指令。其中,P个第三宿主机为与M个目标宿主机不同的宿主机。第三通知指令用于指示P个第三宿主机中的每个第三宿主机内的容器编排器,从第二IP池中申请一个第三IP,即从预分配池中申请一个第三IP,并将该第三宿主机的容器的网络命名空间内的虚拟网卡的IP设置为所申请的第三IP。

可选的,在所述将所述M个目标宿主机从所述第二IP池中所申请的M个第一IP标记为已分配IP的步骤之后,所述方法还包括:

接收缩容指令,其中,所述缩容指令内包含所需删减的容器的数量S;

根据所述缩容指令,向S个所述目标宿主机发送第四通知指令;

接收所述S个所述目标宿主机中的每个目标宿主机发送的第二归还IP指令,其中,所述第二归还IP指令为所述S个所述目标宿主机中的每个目标宿主机中的容器编排器根据所述第四通知指令,关闭该目标宿主机中的容器之后所生成的,所述第二归还IP指令包含第二归还IP;

根据所述第二归还IP指令,将所述第二归还IP标记为未分配IP。

需要说明的是,业务负责人想要删减容器时,可以通过管理平台向主节点发送缩容指令,主节点可以接收该缩容指令。该缩容指令内可以包含所需删减的容器的数量S。进而主节点可以根据接收到的缩容指令,向S个目标宿主机发送第四通知指令。接下来,主节点可以接收S个目标宿主机中的每个目标宿主机发送的第二归还IP指令。其中,该第二归还IP指令为S个目标宿主机中的每个目标宿主机中的容器编排器根据第四通知指令,关闭该目标宿主机中的容器之后所生成的,第二归还IP指令包含第二归还IP。该第二归还IP即为该目标宿主机中的容器编排器之前从第二IP池中所申请的一个第一IP。然后,主节点可以根据第二归还IP指令,将第二归还IP标记为未分配IP。这样,业务负责人想要删减容器时,可以将被关闭的容器所占用的IP标记为未分配IP。保证容器被关闭之后,被关闭的容器所占用的IP可以被释放,节省了资源。

可选的,在所述将所述M个目标宿主机从所述第二IP池中所申请的M个第一IP标记为已分配IP的步骤之后,所述方法还包括:

周期性遍历所述M个第一IP对应的M个容器的状态是否健康;

在确定所述M个第一IP中的第一目标IP对应的容器的状态不健康的情况下,将所述第一目标IP标记为未分配IP。

主节点中的IP监控模块还可以周期性遍历M个第一IP对应的M个容器的状态是否健康。在确定M个第一IP中的第一目标IP对应的容器的状态不健康的情况下,可以将第一目标IP标记为未分配IP。这样,IP监控模块监测到某个IP对应的容器的状态不健康的情况下,可以直接将该IP标记为未分配IP。保证状态不健康的容器所占用的IP可以被及时释放,节省了资源。

可选的,在所述将所述M个目标宿主机从所述第二IP池中所申请的M个第一IP标记为已分配IP的步骤之后,所述方法还包括:

监听所述M个目标宿主机中的每个目标宿主机内的容器是否被销毁;

在监听到所述M个目标宿主机中的第二目标宿主机内的容器被销毁的情况下,判断所述第二目标宿主机内的容器所占用的第一IP是否已被回收;

在判断出所述第二目标宿主机内的容器所占用的第一IP未被回收的情况下,将所述第二目标宿主机内的容器所占用的第一IP标记为未分配IP。

需要说明的是,主节点中的IP监控模块还可以监听M个目标宿主机中的每个目标宿主机内的容器是否被销毁。在IP监控模块监听到M个目标宿主机中的第二目标宿主机内的容器被销毁的情况下,可以判断第二目标宿主机内的容器所占用的第一IP是否已被回收。在IP监控模块判断出第二目标宿主机内的容器所占用的第一IP未被回收的情况下,可以将第二目标宿主机内的容器所占用的第一IP标记为未分配IP。这样,IP监控模块可以监听容器销毁事件,并及时验证被销毁的容器所占用的IP是否被回收。如果被销毁的容器所占用的IP未被回收,则可以自动回收该IP。保证被销毁的容器所占用的IP可以被及时释放,节省了资源。

由以上技术方案可知,本发明实施例提供的一种IP分配方法,接收容器创建指令,其中,所述容器创建指令包含所需创建的容器的数量M;根据所述容器创建指令,从第一IP池中选择N个IP,获得包含所述N个IP的第二IP池,并从所述第一IP池中删除所述N个IP,其中,N>M;向M个目标宿主机中的每个目标宿主机发送第一通知指令,所述第一通知指令用于指示所述M个目标宿主机中的每个目标宿主机内的容器编排器,从所述第二IP池中申请一个第一IP,并将该目标宿主机的容器的网络命名空间内的虚拟网卡的IP设置为所申请的所述第一IP;将所述M个目标宿主机从所述第二IP池中所申请的M个第一IP标记为已分配IP。这样,可以通过每个宿主机内的容器编排器,从第二IP池中申请一个第一IP,并将该宿主机的容器的网络命名空间内的虚拟网卡的IP设置为所申请的第一IP。不会在容器内部进行改动,避免代码侵入,使容器更稳定。

参见图2,图2是本发明提供的一种IP分配装置的结构图。如图2所示,IP分配装置200包括第一接收模块201、选择模块202、第一发送模块203和第一标记模块204,其中:

第一接收模块201,用于接收容器创建指令,其中,所述容器创建指令包含所需创建的容器的数量M;

选择模块202,用于根据所述容器创建指令,从第一IP池中选择N个IP,获得包含所述N个IP的第二IP池,并从所述第一IP池中删除所述N个IP,其中,N>M;

第一发送模块203,用于向M个目标宿主机中的每个目标宿主机发送第一通知指令,所述第一通知指令用于指示所述M个目标宿主机中的每个目标宿主机内的容器编排器,从所述第二IP池中申请一个第一IP,并将该目标宿主机的容器的网络命名空间内的虚拟网卡的IP设置为所申请的所述第一IP;

第一标记模块204,用于将所述M个目标宿主机从所述第二IP池中所申请的M个第一IP标记为已分配IP。

可选的,如图3所示,所述IP分配装置还包括:

第二发送模块205,用于向所述M个目标宿主机中的第一目标宿主机发送重启指令;

第二接收模块206,用于接收所述第一目标宿主机发送的第一归还IP指令,其中,所述第一归还IP指令为所述第一目标宿主机中的容器编排器根据所述重启指令,关闭所述第一目标宿主机中的容器之后所生成的,所述第一归还IP指令包含第一归还IP;

第二标记模块207,用于根据所述第一归还IP指令,将所述第一归还IP标记为未分配IP;

第三发送模块208,用于向除所述M个目标宿主机之外的第二宿主机发送第二通知指令,所述第二通知指令用于指示所述第二宿主机内的容器编排器,从所述第二IP池中申请所述第一归还IP,并将所述第二宿主机的容器的网络命名空间内的虚拟网卡的IP设置为所申请的所述第一归还IP。

可选的,如图4所示,所述IP分配装置还包括:

第三接收模块209,用于接收扩容指令,其中,所述扩容指令内包含所需增加容器的数量P;

第四发送模块2010,用于根据所述扩容指令,向P个第三宿主机中的每个第三宿主机发送第三通知指令,其中,所述P个第三宿主机为与所述M个目标宿主机不同的宿主机,所述第三通知指令用于指示所述P个第三宿主机中的每个第三宿主机内的容器编排器,从所述第二IP池中申请一个第三IP,并将该第三宿主机的容器的网络命名空间内的虚拟网卡的IP设置为所申请的所述第三IP。

可选的,如图5所示,所述IP分配装置还包括:

第四接收模块2011,用于接收缩容指令,其中,所述缩容指令内包含所需删减的容器的数量S;

第五发送模块2012,用于根据所述缩容指令,向S个所述目标宿主机发送第四通知指令;

第五接收模块2013,用于接收所述S个所述目标宿主机中的每个目标宿主机发送的第二归还IP指令,其中,所述第二归还IP指令为所述S个所述目标宿主机中的每个目标宿主机中的容器编排器根据所述第四通知指令,关闭该目标宿主机中的容器之后所生成的,所述第二归还IP指令包含第二归还IP;

第三标记模块2014,用于根据所述第二归还IP指令,将所述第二归还IP标记为未分配IP。

可选的,如图6所示,所述IP分配装置还包括:

遍历模块2015,用于周期性遍历所述M个第一IP对应的M个容器的状态是否健康;

第四标记模块2016,用于在确定所述M个第一IP中的第一目标IP对应的容器的状态不健康的情况下,将所述第一目标IP标记为未分配IP。

可选的,如图7所示,所述IP分配装置还包括:

监听模块2017,用于监听所述M个目标宿主机中的每个目标宿主机内的容器是否被销毁;

判断模块2018,用于在监听到所述M个目标宿主机中的第二目标宿主机内的容器被销毁的情况下,判断所述第二目标宿主机内的容器所占用的第一IP是否已被回收;

第五标记模块2019,用于在判断出所述第二目标宿主机内的容器所占用的第一IP未被回收的情况下,将所述第二目标宿主机内的容器所占用的第一IP标记为未分配IP。

IP分配装置200能够实现图1的方法实施例中IP分配装置实现的各个过程,为避免重复,这里不再赘述。且IP分配装置200可以实现通过每个宿主机内的容器编排器,从第二IP池中申请一个第一IP,并将该宿主机的容器的网络命名空间内的虚拟网卡的IP设置为所申请的第一IP。不会在容器内部进行改动,避免代码侵入,使容器更稳定。

图8为本发明实施例提供的电子设备的硬件结构示意图。如图8所示,该电子设备,包括:

存储器801,用于存储程序指令;

处理器802,用于调用并执行所述存储器中的程序指令,以实现上述实施例中所述IP分配方法。具体可以参见前述实施例中的相关描述。

本实施例中,处理器802和存储器801可通过总线或其他方式连接。处理器可以是通用处理器,例如中央处理器、数字信号处理器、专用集成电路,或者被配置成实施本发明实施例的一个或多个集成电路。存储器可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘。

本发明实施例还提供了一种可读存储介质,包括:所述可读存储介质中存储有计算机程序,当IP分配装置的至少一个处理器执行所述计算机程序时,IP分配装置执行上述实施例中所述的IP分配方法。

所述的可读存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。

本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于IP分配装置、电子设备及可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。

以上所述的本发明实施方式并不构成对本发明保护范围的限定。

本文发布于:2023-04-13 22:31:16,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/2/85820.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图