容器组Pod定位方法、计算机程序产品、存储介质及电子装置与流程
- 国知局
- 2024-08-02 12:40:07
本技术涉及云原生和多集群网络领域,具体而言,涉及一种容器组pod定位方法、计算机程序产品、存储介质及电子装置。
背景技术:
1、多容器编排引擎(kubernetes,简称为k8s)集群管理和调度为分布式应用程序提供了跨公共云和私有云连接多个集群的能力。如今的明星项目比如karmada和clusternet提供了无与伦比的高可用性和并发能力,但也带来了网络连接挑战,例如:集群之间的无类域间路由(classless inter-domain routing,简称为cidr)有重叠、以及kubernetes集群缺乏静态或动态公共互联网协议(internet protocol,简称为ip)地址、pod的容器网络接口(container network interface,简称为cni)类型多种多样等。这些挑战限制了多集群间的入站连接,并阻碍了应用程序的可访问性,目前没有已知的解决方案。
2、此外,由于集群的历史部署和集群提供商分布在不同云厂商之间等原因,kubernetes集群中存在多种cni插件类型,这也为集群之间的原生通信形成了障碍;异构网络的存在也使集群间的连接更加复杂。这些问题在多集群的各个领域都普遍存在,且并未得到完全解决。例如:submariner选择了点对点(peer to peer,简称为p2p)的集群间隧道连接方式,它要求每个集群必须提供一个可以公网可达的public node,这在大多数情况下都无法满足,且submariner的网络规则设置在主机上,对原有集群存在侵入式的修改,这给基础设施管理者带来了心智负担。
3、针对相关技术中,多集群网络中,不同子集群之间的通信连接复杂,从而导致归属于不同子集群的pod无法被唯一定位的问题,尚未提出有效的解决方案。
技术实现思路
1、本技术实施例提供了一种容器组pod定位方法、计算机程序产品、存储介质及电子装置,以至少解决相关技术中,多集群网络中,不同子集群之间的通信连接复杂,从而导致归属于不同子集群的pod无法被唯一定位的问题。
2、根据本技术实施例的一个实施例,提供了一种容器组pod定位方法,包括:获取多集群中的中心集群为第一子集群分配的目标网段,其中,所述目标网段是平行网络中未被所述多集群中其他子集群使用的网段,所述平行网络是平行于所述多集群使用的物理网络的虚拟网络,其中,所述第一子集群是新加入所述多集群的子集群,所述其他子集群是所述多集群中除了所述第一子集群之外的其他子集群;为第一pod分配所述目标网段中未被使用的第一地址,其中,所述第一pod是所述第一子集群中包括的多个pod中的任一pod,所述第一地址用于向所述其他子集群中的第二pod提供所述第一pod的服务;通过所述第一地址在所述多集群中唯一定位所述第一pod。
3、在一个示例性实施例中,确定多集群中的中心集群为第一子集群分配的目标网段之前,所述方法还包括:在确定所述中心集群已经启动隧道服务器的情况下,向所述中心集群发送入网请求;接收所述中心集群反馈的认证令牌,其中,所述认证令牌携带有所述中心集群为所述第一子集群分配的所述目标网段,所述认证令牌是所述中心集群基于所述入网请求生成的。
4、在一个示例性实施例中,接收所述中心集群反馈的认证令牌之后,所述方法还包括:获取所述中心集群根据所述认证令牌向所述第一子集群传输的第一公钥和第一隧道配置文件,并根据所述第一公钥和所述第一隧道配置文件建立所述第一子集群对所述中心集群的第一信任关系;向所述中心集群发送所述第一子集群的第二公钥和第二隧道配置文件,以指示所述中心集群根据所述第二公钥和所述第二隧道配置文件建立所述中心集群对所述第一子集群的第二信任关系,其中,所述第二隧道配置文件包括所述目标网段;根据所述第一信任关系和所述第二信任关系建立所述第一子集群与所述中心集群之间的隧道连接,其中,所述隧道连接用于所述其他子集群请求所述第一子集群的所述服务。
5、在一个示例性实施例中,为第一pod分配所述目标网段中未被使用的第一地址之后,所述方法还包括:在所述第一pod需要暴露所述服务的情况下,根据所述第一地址创建用于暴露所述服务的第一端点切片endpointslice,其中,所述服务还对应有第二endpointslice,所述第二endpointslice用于向第三pod暴露所述服务,其中,所述第三pod是所述第一子集群包括的多个pod中、除了所述第一pod之外的剩余pod中的任一pod,所述第二endpointslice是根据第二地址创建的,其中,所述第一地址与所述第二地址同时分配在所述第一pod中,所述第二地址是所述第一pod在所述物理网络中的地址;将所述第一endpointslice发送到所述中心集群的共享命名空间中,以向所述第二pod提供所述服务,其中,所述共享命名空间用于承载所述多集群中包括的所有子集群分别推送的endpointslice。
6、在一个示例性实施例中,为第一pod分配所述目标网段中未被使用的第一地址之后,所述方法还包括:从所述中心集群的共享命名空间中获取第三endpointslice,其中,所述第三endpointslice是所述共享命名空间中除第一endpointslice之外的endpointslice,其中,所述共享命名空间用于承载所述多集群中包括的所有子集群分别推送的endpointslice,其中,所述第一endpointslice是根据所述第一地址创建的;在所述第一子集群存在跨集群的服务解析需求的情况下,确定所述服务解析需求在所述第三endpointslice中匹配的第四endpointslice;解析所述第四endpointslice,以获取所述第四endpointslice对应的第三地址,其中,所述第三地址在所述平行网络中。
7、在一个示例性实施例中,为第一pod分配所述目标网段中未被使用的第一地址之后,所述方法还包括:在所述第一子集群出现扩容或缩容的情况下,确定所述第一pod的第一地址是否出现变动;在所述第一地址出现变动的情况下,通过变动的第一地址更新第一endpointslice,得到第五endpointslice,其中,所述第一endpointslice是根据所述第一地址创建的;通过所述第五endpointslice更新所述中心集群的共享命名空间中的所述第一endpointslice,并指示所述共享命名空间通过所述第五endpointslice更新目标集群中的第六endpointslice,其中,所述目标集群包括:所述多集群中拉取所述第一endpointslice的所有子集群,所述第六endpointslice是已经被所述目标集群拉取到所述目标集群内部的第一endpointslice。
8、在一个示例性实施例中,为第一pod分配所述目标网段中未被使用的第一地址,包括:通过节点资源接口控制器为所述第一pod创建第一网络接口,其中,所述第一网络接口属于所述平行网络,所述第一pod中还创建有属于所述物理网络的第二网络接口;为所述第一网络接口分配所述目标网段中未被使用的第一地址。
9、根据本技术实施例的另一个实施例,还提供了一种容器组pod定位装置,包括:获取模块,用于获取多集群中的中心集群为第一子集群分配的目标网段,其中,所述目标网段是平行网络中未被所述多集群中其他子集群使用的网段,所述平行网络是平行于所述多集群使用的物理网络的虚拟网络,其中,所述第一子集群是新加入所述多集群的子集群,所述其他子集群是所述多集群中除了所述第一子集群之外的其他子集群;分配模块,用于为第一pod分配所述目标网段中未被使用的第一地址,其中,所述第一pod是所述第一子集群中包括的多个pod中的任一pod,所述第一地址用于向所述其他子集群中的第二pod提供所述第一pod的服务;定位模块,用于通过所述第一地址在所述多集群中唯一定位所述第一pod。
10、根据本技术实施例的又一方面,还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述方法。
11、根据本技术实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述方法。
12、根据本技术实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的方法。
13、在本技术实施例中,获取多集群中的中心集群为新加入多集群的第一子集群分配的、平行网络中未被多集群中其他子集群使用的目标网段,其中,所述平行网络是平行于所述多集群使用的物理网络的虚拟网络;并进一步的为第一子集群中包括的多个pod中的任一pod,即第一pod,分配目标网段中未被使用的第一地址;进而可以通过所述第一地址向所述其他子集群中的第二pod提供所述第一pod的服务,以及可以通过第一地址在所述多集群中唯一定位所述第一pod。也就是说,新加入多集群中的第一子集群通过获取被分配的未被其他子集群使用的目标网段,可以从目标网段中为第一子集群中包括的任一pod都分别分配一个未被使用的第一地址,从而可以使得任一pod在多集群中、在平行网络层面被唯一定位;因此,可以解决相关技术中,多集群网络中,不同子集群之间的通信连接复杂,从而导致归属于不同子集群的pod无法被唯一定位的问题。从而实现了在多集群包括的不同子集群之间中唯一定位每个子集群中的任一pod的技术效果。
本文地址:https://www.jishuxx.com/zhuanli/20240802/237224.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。