一种KubernetesOverlayIP地址管理方法技术

技术编号:32361736 阅读:48 留言:0更新日期:2022-02-20 03:30
本申请涉及一种Kubernetes Overlay IP地址管理方法,属于通信技术领域,其包括获取Kubernetes集群的网络信息,网络信息包括Kubernetes集群中所有的可用IP地址、可用网络和所有已使用IP地址;基于网络信息初始化Overlay网络;确定节点的subCIDR是否已分配CIDR块;若未分配CIDR块,则为subCIDR分配CIDR块;在接收到IP分配请求时,从节点的subCIDR中分配IP地址,IP分配请求用于请求为Pod分配IP地址;可以解决不同节点之间IP地址的分配效率较低的问题;当有不同节点的pod需要分配IP地址时,可以实现分布式分配IP地址,提高了系统的性能。的性能。的性能。

【技术实现步骤摘要】
一种Kubernetes Overlay IP地址管理方法


[0001]本申请涉及一种Kubernetes Overlay IP地址管理方法,属于通信


技术介绍

[0002]Kubernetes是一个开源的容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。Kubernetes只要提供一个标准的接口,就能为同样满足该协议的所有容器平台提供网络功能。而容器网络接口(Container Network Interface,CNI)正是这样的一个标准接口协议。
[0003]目前主流的CNI对IP地址的管理主要是通过维护一个当前节点的网段,每次对pod分配IP时优先分配本节点网段的IP,如果本节点IP不够会从其他节点的网段中获取IP。释放IP地址时,会根据pod的信息比如网络名和容器ID查询对应的网络块,如果块不存在,则认为已经被释放;则直接释放网络块对应的IP,然后更新对应的IP池。
[0004]然而,目前对IP池的管理不是很成熟,不同节点之间IP地址的分配效率较低。

技术实现思路

[0005]本申请提供了一种Kubernetes Overlay IP地址管理方法,通过subCIDR的设计模式,每个节点都有自己对应的存在空余IP地址的subCIDR,在分配IP时,可以直接使用当前节点的subCIDR中的IP地址,当有不同节点的pod需要分配IP地址时,可以实现分布式分配IP地址,提高了系统的性能。本申请提供如下技术方案:
[0006]提供一种Kubernetes Overlay IP地址管理方法,用于Kubernetes集群中的节点中,所述节点中设置有至少一个subCIDR,所述subCIDR为负责分配IP地址的对象;所述方法包括:
[0007]获取所述Kubernetes集群的网络信息,所述网络信息包括所述Kubernetes集群中所有的可用IP地址、可用网络和所有已使用IP地址;
[0008]基于所述网络信息初始化Overlay网络,并获取所有的subCIDR;
[0009]确定所述节点的subCIDR是否已分配CIDR块;
[0010]若未分配CIDR块,则为所述subCIDR分配CIDR块;
[0011]在接收到IP分配请求时,从所述节点的subCIDR中分配IP地址,所述IP分配请求用于请求为Pod分配IP地址。
[0012]可选地,所述方法还包括:
[0013]通过go协程每隔第一预设时长同步第一缓存,所述第一缓存中存储有初始化Overlay网络后得到的可用网络与CIDR之间的对应关系。
[0014]可选地,所述方法还包括:
[0015]通过go协程每隔第二预设时长同步第二缓存,所述第二缓存中存储有可用网络的网络状态、subCIDR的CIDR状态和所述subCIDR中IP地址的使用状态。
[0016]可选地,所述方法还包括:
[0017]通过go协程确定所述节点是否存在所述subCIDR;
[0018]若不存在所述subCIDR,则通过go协程创建所述subCIDR。
[0019]可选地,所述通过go协程确定所述节点是否存在所述subCIDR之后,还包括:
[0020]若存在所述subCIDR,则通过go协程确定所述subCIDR中是否存在可用IP地址;
[0021]若不存在可用IP地址,则通过go协程创建所述subCIDR。
[0022]可选地,所述在接收到IP分配请求时,从所述节点的subCIDR中分配IP地址,包括:
[0023]通过Kubelet向CNI发送所述IP分配请求;
[0024]通过所述CNI基于IP分配请求向fabric

ctl发送生成IP地址的HTTP请求;
[0025]通过所述fabric

ctl根据所述HTTP请求中携带的Pod信息,确定所述Pod是否有预约或者是否为主机网络模式;
[0026]在所述Pod无预约且不是主机网络模式的情况下,从所述节点的subCIDR中分配IP地址。
[0027]可选地,所述通过所述fabric

ctl根据所述HTTP请求中携带的Pod信息,确定所述Pod是否有预约或者是否为主机网络模式之后,还包括:
[0028]在所述Pod有预约的情况下,为所述Pod分配预约的IP地址;
[0029]或者,
[0030]在所述Pod为主机网络模式的情况下,为所述Pod分配主机IP地址。
[0031]可选地,所述在接收到IP分配请求时,从所述节点的subCIDR中分配IP地址之后,还包括:
[0032]在接收到所述Pod的IP释放请求时,释放所述Pod的IP地址。
[0033]可选地,所述在接收到所述Pod的IP释放请求时,释放所述Pod的IP地址,包括:
[0034]通过Kubelet向CNI发送所述IP释放请求;
[0035]通过fabric基于所述IP释放请求将所述Pod的Pod信息发送至fabric

ctl;
[0036]通过所述fabric

ctl根据所述Pod信息,确定所述Pod是否已停止;
[0037]若所述Pod未停止,确定所述Pod是否有预约或者是否为主机网络模式;
[0038]在所述Pod无预约且不是主机网络模式的情况下,释放所述节点的subCIDR中为所述Pod分配的IP地址。
[0039]可选地,所述Kubernetes集群支持多种封装协议;所述Kubernetes集群中的Pod支持多张网卡,且互相隔离。
[0040]本申请的有益效果至少包括:通过获取Kubernetes集群的网络信息,网络信息包括Kubernetes集群中所有的可用IP地址、可用网络和所有已使用IP地址;基于网络信息初始化Overlay网络,并获取所有的subCIDR;确定节点的subCIDR是否已分配CIDR块;若未分配CIDR块,则为subCIDR分配CIDR块;在接收到IP分配请求时,从节点的subCIDR中分配IP地址,IP分配请求用于请求为Pod分配IP地址;可以解决不同节点之间IP地址的分配效率较低的问题;由于每个节点都有自己对应的存在空余IP地址的subCIDR,在分配IP时,可以直接使用当前节点的subCIDR中的IP地址,当有不同节点的pod需要分配IP地址时,可以实现分布式分配IP地址,提高了系统的性能。
[0041]另外,通过定期同步网络缓存,回收IP地址;可以解决节点出问题时,不会自动的收回节点分配的网段,造成网络资源的浪费的问题;可以提高IP地址的利用率。
[0042]另外,支持容器IP地址的固定和预约,可以解决IP地址的漂移问题。
[0043]另外,支持多网络,可以解决只支持单一网络,无法处理多网络需求,需要其它第三方的插本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Kubernetes Overlay IP地址管理方法,其特征在于,用于Kubernetes集群中的节点中,所述节点中设置有至少一个subCIDR,所述subCIDR为负责分配IP地址的对象;所述方法包括:获取所述Kubernetes集群的网络信息,所述网络信息包括所述Kubernetes集群中所有的可用IP地址、可用网络和所有已使用IP地址;基于所述网络信息初始化Overlay网络,并获取所有的subCIDR;确定所述节点的subCIDR是否已分配CIDR块;若未分配CIDR块,则为所述subCIDR分配CIDR块;在接收到IP分配请求时,从所述节点的subCIDR中分配IP地址,所述IP分配请求用于请求为Pod分配IP地址。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:通过go协程每隔第一预设时长同步第一缓存,所述第一缓存中存储有初始化Overlay网络后得到的可用网络与CIDR之间的对应关系。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:通过go协程每隔第二预设时长同步第二缓存,所述第二缓存中存储有可用网络的网络状态、subCIDR的CIDR状态和所述subCIDR中IP地址的使用状态。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:通过go协程确定所述节点是否存在所述subCIDR;若不存在所述subCIDR,则通过go协程创建所述subCIDR。5.根据权利要求4所述的方法,其特征在于,所述通过go协程确定所述节点是否存在所述subCIDR之后,还包括:若存在所述subCIDR,则通过go协程确定所述subCIDR中是否存在可用IP地址;若不存在可用IP地址,则通过go协程创建所述subCIDR。6.根据权利要求1所述的方法,其特征在于,所述在接收到IP分配请求时,从所述节点的subCIDR中分配IP地址,包括:通过Kubelet向CNI发送所...

【专利技术属性】
技术研发人员:花磊刘学聪梁兵崔骥赵安全王亮
申请(专利权)人:苏州博纳讯动软件有限公司
类型:发明
国别省市:

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

1