分配容器组pod IP地址的方法、装置、设备及存储介质制造方法及图纸

技术编号:24089913 阅读:69 留言:0更新日期:2020-05-09 07:36
本发明专利技术公开了一种分配容器组pod IP地址的方法、装置、设备及存储介质。其中,方法应用于Kubernetes集群中的计算节点,包括:获取待分配IP地址的容器组pod,作为目标容器组pod;根据目标容器组pod的类型信息,确定目标容器组pod是否属于设定类型,其中,设定类型的容器组pod的名称不变;在目标容器组pod属于设定类型的情况下,在Kubernetes集群的数据库中查找目标容器组pod的名称;在查找到目标容器组pod的名称的情况下,将与目标容器组pod的名称相对应的IP地址分配给目标容器组pod。这样,属于设定类型的目标容器组pod将拥有与重建前的容器组pod相同的名称。同时,由于并未修改目标容器组pod对应的配置文件的任何信息,因此,目标容器组pod的配置文件可以跨集群使用。

Methods, devices, devices and storage media for allocating the pod IP address of container group

【技术实现步骤摘要】
分配容器组podIP地址的方法、装置、设备及存储介质
本专利技术涉及通信
,更具体地,涉及一种分配容器组podIP地址的方法、装置、设备及存储介质。
技术介绍
Kubernetes是一种基于容器的集群管理平台,Kubernetes集群中包括主节点(Master)和分别与主节点通信连接的多个计算节点(Node)。主节点用于管理和控制多个计算节点。计算节点是工作负载节点,每个计算节点中部署有多个容器组(Pod),每个容器组中封装有一个或多个用于承载软件程序的容器(Container),pod是Kubernetes的基本操作单元,是最小的可创建、调试和管理的部署单元,同一个pod中的多个Container共享网络资源,例如,一个pod只有一个IP地址,同一个pod中的多个Container共享该IP地址。当计算节点发生故障时,该计算节点上部署的容器组pod将会被重建。或者当计算节点上的某一个容器组pod发生故障时,该故障的容器组pod也将会被重建。当容器组pod被重建后,经重建得到的容器组pod将会由被部署的计算节点分配一个IP地址。而该IP地址通常是一个不同于重建前容器组pod的IP地址的新IP地址。但是,对于容器组pod来说,经重建得到的容器组pod的IP地址改变时,其中包含的容器中承载的特定软件程序将无法正常运行。为了避免特定软件程序无法正常运行,可利用Kubernetes集群中的一些网络组件,如calico,通过在容器组pod的配置文件中为容器组pod设置固定的IP地址,以实现容器组pod经重建得到的容器组pod仍具有与重建前容器组pod的IP地址相同的IP地址。但是,由于容器组pod的配置文件中为容器组pod设置的固定的IP地址的IP网段,是容器组pod所在Kubernetes集群的IP网段,而Kubernetes集群间的IP网段通常是不同的,因此,在容器组pod的配置文件中为容器组pod设置固定的IP地址后,该配置文件将无法应用到其他Kubernetes集群中。
技术实现思路
本专利技术的一个目的是提供一种用于分配容器组podIP地址的新技术方案。根据本专利技术的第一方面,提供了一种分配容器组podIP地址的方法,所述方法应用于Kubernetes集群中的计算节点,所述方法包括:获取待分配IP地址的容器组pod,作为目标容器组pod;根据所述目标容器组pod的类型信息,确定所述目标容器组pod是否属于设定类型,其中,所述设定类型的容器组pod的名称不变;在所述目标容器组pod属于所述设定类型的情况下,在所述Kubernetes集群的数据库中查找所述目标容器组pod的名称;在查找到所述目标容器组pod的名称的情况下,将与所述目标容器组pod的名称相对应的IP地址分配给所述目标容器组pod。可选的,所述方法还包括:在所述目标容器组pod不属于所述设定类型的情况下,从Kubernetes集群中的IP地址池中提取第一IP地址;所述IP地址池中存储有未被分配的IP地址;将所述第一IP地址分配给所述目标容器组pod。可选的,所述方法还包括:在未查找到所述目标容器组pod的名称的情况下,从Kubernetes集群中的IP地址池中提取第二IP地址;所述IP地址池中存储有未被分配的IP地址;将所述第二IP地址分配给所述目标容器组pod;将所述目标容器组pod的名称和所述第二IP地址上传至所述Kubernetes集群的数据库中。可选的,所述在所述目标容器组pod属于所述设定类型的情况下,在所述Kubernetes集群的数据库中查找所述目标容器组pod的名称,包括:在所述目标容器组pod属于所述设定类型的情况下,查找所述Kubernetes集群的数据库中是否存储有容器组pod的名称与IP地址之间的映射关系;在所述Kubernetes集群的数据库中未存储有所述映射关系的情况下,指示所述Kubernetes集群的数据库建立所述映射关系;在所述Kubernetes集群的数据库中存储有所述映射关系的情况下,在所述Kubernetes集群的数据库中查找所述目标容器组pod的名称。可选的,所述方法还包括:输出为所述目标容器组pod分配的IP地址。可选的,所述方法还包括:响应于接收到删除已分配IP地址的所述目标容器组pod的删除请求,查找所述映射关系中是否存储有所述目标容器组pod的名称;在所述映射关系中存储有所述目标容器组pod的名称的情况下,删除所述目标容器组pod并输出删除信息;所述删除信息用于表征所述目标容器组pod的IP地址已删除。可选的,所述方法还包括:在所述映射关系中未存储有所述目标容器组pod的名称的情况下,删除所述目标容器组pod,并将所述目标容器组pod已分配的IP地址释放到所述Kubernetes集群中的IP地址池中,以及输出所述删除信息。根据本专利技术的第二方面,提供了一种分配容器组podIP地址的装置,其所述装置包括:获取模块,用于获取待分配IP地址的容器组pod,作为目标容器组pod;确定模块,用于根据所述目标容器组pod的类型信息,确定所述目标容器组pod是否属于设定类型,其中,所述设定类型的容器组pod名称不变;查找模块,用于在所述目标容器组pod属于所述设定类型的情况下,在所述Kubernetes集群的数据库中查找所述目标容器组pod的名称;分配模块,用于在查找到所述目标容器组pod的名称的情况下,将与所述目标容器组pod的名称相对应的IP地址分配给所述目标容器组pod。根据本专利技术的第三方面,提供了一种Kubernetes集群中的计算节点,包括第二方面所述的装置;或者,包括存储器和处理器,所述存储器用于存储计算机指令,所述处理器用于从所述存储器中调用所述计算机指令,以执行如第一方面任一项所述的方法。根据本专利技术的第四方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机指令,当所述存储介质中的计算机指令由处理器执行时,实现如第一方面任一项所述的方法。在本实施例中,计算节点在为属于设定类型的目标容器组pod分配IP地址时,首先在Kubernetes集群的数据库中查找目标容器组pod的名称,在查找到目标容器组pod的名称时,说明目标容器组pod属于经重建得到的容器组pod。此时,将Kubernetes集群的数据库中存储的与目标容器组pod的名称对应的IP地址分配给目标容器组pod。这样,属于设定类型的目标容器组pod将拥有与重建前的容器组pod相同的名称。因此,对于特定的程序来说,可利用属于设定类型的目标容器组pod中的容器来承载。这样,特定的程序始终可以正常运行。同时,由于本实施例提供的分配容器组pod的IP地址的方法并未修改目标容器组pod对应的配置文件的任何信息,因此,目标容器组pod的配置文件可以跨集群使用。通过以下参照附图对本专利技术的示例性实施本文档来自技高网
...

【技术保护点】
1.一种分配容器组podIP地址的方法,其特征在于,所述方法应用于Kubernetes集群中的计算节点,所述方法包括:/n获取待分配IP地址的容器组pod,作为目标容器组pod;/n根据所述目标容器组pod的类型信息,确定所述目标容器组pod是否属于设定类型,其中,所述设定类型的容器组pod的名称不变;/n在所述目标容器组pod属于所述设定类型的情况下,在所述Kubernetes集群的数据库中查找所述目标容器组pod的名称;/n在查找到所述目标容器组pod的名称的情况下,将与所述目标容器组pod的名称相对应的IP地址分配给所述目标容器组pod。/n

【技术特征摘要】
1.一种分配容器组podIP地址的方法,其特征在于,所述方法应用于Kubernetes集群中的计算节点,所述方法包括:
获取待分配IP地址的容器组pod,作为目标容器组pod;
根据所述目标容器组pod的类型信息,确定所述目标容器组pod是否属于设定类型,其中,所述设定类型的容器组pod的名称不变;
在所述目标容器组pod属于所述设定类型的情况下,在所述Kubernetes集群的数据库中查找所述目标容器组pod的名称;
在查找到所述目标容器组pod的名称的情况下,将与所述目标容器组pod的名称相对应的IP地址分配给所述目标容器组pod。


2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述目标容器组pod不属于所述设定类型的情况下,从Kubernetes集群中的IP地址池中提取第一IP地址;所述IP地址池中存储有未被分配的IP地址;
将所述第一IP地址分配给所述目标容器组pod。


3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在未查找到所述目标容器组pod的名称的情况下,从Kubernetes集群中的IP地址池中提取第二IP地址;所述IP地址池中存储有未被分配的IP地址;
将所述第二IP地址分配给所述目标容器组pod;
将所述目标容器组pod的名称和所述第二IP地址上传至所述Kubernetes集群的数据库中。


4.根据权利要求1所述的方法,其特征在于,所述在所述目标容器组pod属于所述设定类型的情况下,在所述Kubernetes集群的数据库中查找所述目标容器组pod的名称,包括:
在所述目标容器组pod属于所述设定类型的情况下,查找所述Kubernetes集群的数据库中是否存储有容器组pod的名称与IP地址之间的映射关系;
在所述Kubernetes集群的数据库中未存储有所述映射关系的情况下,指示所述Kubernetes集群的数据库建立所述映射关系;
在所述Kubernetes集群的数据库中存储有所述映射关系的情况下,在所述Kubernetes集群的数据库中查找所述...

【专利技术属性】
技术研发人员:赵帅
申请(专利权)人:北京金山云网络技术有限公司北京金山云科技有限公司
类型:发明
国别省市:北京;11

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

1