CN112751913A - 一种跨Kubernetes集群的网络通信方法及系统 - Google Patents
一种跨Kubernetes集群的网络通信方法及系统 Download PDFInfo
- Publication number
- CN112751913A CN112751913A CN202011531664.2A CN202011531664A CN112751913A CN 112751913 A CN112751913 A CN 112751913A CN 202011531664 A CN202011531664 A CN 202011531664A CN 112751913 A CN112751913 A CN 112751913A
- Authority
- CN
- China
- Prior art keywords
- node
- cluster
- kubernets
- kubernetes
- clusters
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000004891 communication Methods 0.000 title claims abstract description 33
- RJKFOVLPORLFTN-LEKSSAKUSA-N Progesterone Chemical compound C1CC2=CC(=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H](C(=O)C)[C@@]1(C)CC2 RJKFOVLPORLFTN-LEKSSAKUSA-N 0.000 claims description 10
- 238000013500 data storage Methods 0.000 claims description 5
- 230000002457 bidirectional effect Effects 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 4
- 238000002955 isolation Methods 0.000 abstract description 5
- 230000008569 process Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000007723 transport mechanism Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000033764 rhythmic process Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4604—LAN interconnection over a backbone network, e.g. Internet, Frame Relay
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/04—Interdomain routing, e.g. hierarchical routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种跨Kubernetes集群的网络通信方法、系统,通过打通VXLAN链路和IPsec链路实现了多个集群之间的直连互通,让多个Kubernetes集群真正形成一个有机的、互通的、具备更高隔离性的整体。方法包括:任一Kubernetes集群的第一节点的submariner‑gateway组件选举出活动的IPsec端点;所述第一节点包括带有网关标签的节点;所述任一Kubernetes集群的活动的IPsec端点用于与其它Kubernetes集群的活动的IPsec端点建立连接;所述活动的IPsec端点的Submariner‑route‑agent组件创建VXLAN VTEP网络接口;所述任一Kubernetes集群的第二节点的Submariner‑route‑agent组件获取所述活动的IPsec端点的信息;所述第二节点包括容器集合Pod和/或容器;所述任一Kubernetes集群的第二节点的Submariner‑route‑agent组件连接所述VXLAN VTEP网络接口;所述第二节点通过VXLAN链路和IPsec链路与其它Kubernetes集群的任一节点通信。
Description
技术领域
本发明涉及云计算技术领域,尤其涉及一种跨Kubernetes集群的网络通信方法及系统。
背景技术
混合云可以采用多种形式,通常,混合云指的是跨公有云和私有(内部部署)云运行,而多云意味着跨多个公有云平台运行。
采用混合云或多云架构可以为组织带来诸多好处。例如,使用多个云提供商可以避免供应商锁定,能够为实现目标选择最佳的云服务。使用云和本地环境,可以同时享受云的优势(灵活性、可扩展性、成本降低)和本地的好处(安全性、低延迟、硬件复用)。如果是首次迁移到云端,采用混合云步骤可以让用户按照自己的节奏,以最适合自身业务的方式进行。我们认为采用混合服务网络是简化云和本地环境中应用程序管理、安全性和可靠性的关键。而混合云环境中,往往多个Kubernetes集群位于不同环境中,例如本地数据中心运行了核心Kubernetes集群,公有云中也运行了次要业务的Kubernetes集群,而多个Kubernetes集群之间的网络连通性是必须解决的首要问题。
目前Kubernetes的网络方案都是单集群设计,容器无法进行跨集群通信。
发明内容
为此,本发明提供了一种跨Kubernetes集群的网络通信方法及系统,以力图解决或者至少缓解上面存在的至少一个问题。
根据本发明实施例的一个方面,提供了一种跨Kubernetes集群的网络通信方法,包括:
任一Kubernetes集群的第一节点的submariner-gateway组件选举出活动的IPsec端点;所述第一节点包括带有网关标签的节点;所述任一Kubernetes集群的活动的IPsec端点用于与其它Kubernetes集群的活动的IPsec端点建立连接;
所述任一Kubernetes集群的活动的IPsec端点的Submariner-route-agent组件创建VXLAN VTEP网络接口;
所述任一Kubernetes集群的第二节点的Submariner-route-agent组件获取所述活动的IPsec端点的信息;所述第二节点包括容器集合Pod和/或容器;
所述任一Kubernetes集群的第二节点的Submariner-route-agent组件连接所述VXLAN VTEP网络接口;
所述任一Kubernetes集群的第二节点通过VXLAN链路和IPsec链路与其它Kubernetes集群的任一节点通信。
可选地,方法还包括:
当所述任一Kubernetes集群被确定为中央代理时,所述中央代理的活动的IPsec端点的submariner-gateway组件在数据存储区和所述中央代理之间控制资源的双向同步;
以及,
所述中央代理的活动的IPsec端点的submariner-gateway组件接收其它Kubernetes集群的活动的IPsec端点的submariner-gateway组件上传的CRD数据;
当所述中央代理确定与所述其它Kubernetes集群的CRD数据不匹配时,所述中央代理的活动的IPsec端点的submariner-gateway组件将所述中央代理的资源同步至所述其它Kubernetes集群;
其中,Kubernetes集群的个数不少于三个。
可选地,方法还包括:
当所述任一Kubernetes集群的CRD发生变化时,所述任一Kubernetes集群的所有节点的Submariner-route-agent组件响应所述CRD的更改。
可选地,方法还包括:
所述任一Kubernetes集群的活动的IPsec端点执行预设操作以确保为所述任一Kubernetes集群的唯一的活动的IPsec端点。
可选地,还包括:
当所述任一Kubernetes集群的活动的IPsec端点发生故障时,所述任一Kubernetes集群的第一节点的submariner-gateway组件确定出新的活动的IPsec端点;所述新的活动的IPsec端点用于与其它Kubernetes集群的活动的IPsec端点建立连接;
所述任一Kubernetes集群的第二节点的Submariner-route-agent组件更新路由表,更新后的路由表包含所述新的活动的IPsec端点的信息。
可选地,方法还包括:
所述任一Kubernetes集群的第二节点的Submariner-route-agent组件配置路由规则和iptable规则。
可选地,方法还包括:
所述第一节点和/或所述第二节点根据默认网络接口的MTU减去VXLAN链路的开销计算VXLAN MTU。
可选地,方法还包括:
所述任一Kubernetes集群的第一节点接收到所述其它Kubernetes集群的任一节点的数据包之后,根据所述数据包的CIDR进行路由。
可选地,所述任一Kubernetes集群与其它Kubernetes集群的CIDR不同。
根据本发明的又一方面,提供一种跨Kubernetes集群的网络通信系统,包括多个Kubernetes集群,Kubernetes集群包含第一节点和第二节点,所述第一节点包括带有网关标签的节点,所述第二节点包括容器集合Pod和/或容器;所述第一节点预装submariner-gateway组件和Submariner-route-agent组件,所述第二节点预装Submariner-route-agent组件;
任一Kubernetes集群的第一节点用于通过所述
submariner-gateway组件选举出活动的IPsec端点;所述任一Kubernetes集群的活动的IPsec端点用于与其它Kubernetes集群的活动的IPsec端点建立连接;所述活动的IPsec端点用于通过Submariner-route-agent组件创建VXLAN VTEP网络接口;
所述任一Kubernetes集群的第二节点用于通过Submariner-route-agent组件连接所述VXLAN VTEP网络接口;以及,通过VXLAN链路和IPsec链路与其它Kubernetes集群的任一节点通信;
所述任一Kubernetes集群的所有节点还用于通过Submariner-route-agent组件获取所述活动的IPsec端点的信息。
本发明提供的技术方案中,任一Kubernetes集群的第一节点的submariner-gateway组件选举出活动的IPsec端点;所述第一节点包括带有网关标签的节点;所述任一Kubernetes集群的活动的IPsec端点用于与其它Kubernetes集群的活动的IPsec端点建立连接,所述活动的IPsec端点的Submariner-route-agent组件创建VXLAN VTEP网络接口,所述任一Kubernetes集群的第二节点的Submariner-route-agent组件获取所述活动的IPsec端点的信息;所述第二节点包括容器集合Pod和/或容器,所述任一Kubernetes集群的第二节点的Submariner-route-agent组件连接所述VXLAN VTEP网络接口,所述任一Kubernetes集群的第二节点通过VXLAN链路和IPsec链路与其它Kubernetes集群的任一节点通信;通过打通VXLAN链路和IPsec链路实现了多个集群之间的直连互通,让多个Kubernetes集群真正形成一个有机的、互通的、具备更高隔离性的整体。
附图说明
附图示出了本发明的示例性实施方式,并与其说明一起用于解释本发明的原理,其中包括了这些附图以提供对本发明的进一步理解,并且附图包括在本说明书中并构成本说明书的一部分。
图1是示例性的计算设备的结构框图;
图2是根据本发明实施例的一种跨Kubernetes集群的网络通信方法的流程示意图;
图3是根据本发明实施例的一种跨Kubernetes集群的网络通信系统的架构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
图1是布置为实现根据本发明的一种跨Kubernetes集群的网络通信方法的示例计算设备100的框图。在基本的配置102中,计算设备100典型地包括系统存储器106和一个或者多个处理器104。存储器总线108可以用于在处理器104和系统存储器106之间的通信。
取决于期望的配置,处理器104可以是任何类型的处理,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器104可以包括诸如一级高速缓存110和二级高速缓存112之类的一个或者多个级别的高速缓存、处理器核心114和寄存器116。示例的处理器核心114可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器118可以与处理器104一起使用,或者在一些实现中,存储器控制器118可以是处理器104的一个内部部分。
取决于期望的配置,系统存储器106可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器106可以包括操作系统120、一个或者多个程序122以及程序数据124。在一些实施方式中,程序122可以被配置为在操作系统上由一个或者多个处理器104利用程序数据124执行指令。
计算设备100还可以包括有助于从各种接口设备(例如,输出设备142、外围接口144和通信设备146)到基本配置102经由总线/接口控制器130的通信的接口总线140。示例的输出设备142包括图形处理单元148和音频处理单元150。它们可以被配置为有助于经由一个或者多个A/V端口152与诸如显示终端或者扬声器之类的各种外部设备进行通信。示例外围接口144可以包括串行接口控制器154和并行接口控制器156,它们可以被配置为有助于经由一个或者多个I/O端口158和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备146可以包括网络控制器160,其可以被布置为便于经由一个或者多个通信端口164与一个或者多个其他计算设备162通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以是这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
计算设备100可以实现为各类形态的个人计算机和服务器设备,若干计算设备100可组成集群对外提供云服务。
其中,计算设备100的一个或多个程序122包括用于执行根据本发明的一种跨Kubernetes集群的网络通信方法的指令。
图2示例性示出根据本发明的一种跨Kubernetes集群的网络通信方法的流程图,方法始于步骤S210。
在步骤S210中,任一Kubernetes集群的第一节点的submariner-gateway组件选举出活动的IPsec(Internet Protocol Security,因特网协议安全)端点;第一节点包括带有网关标签的节点;活动的IPsec端点用于与其它Kubernetes集群的活动的IPsec端点建立连接。
submariner-gateway组件是预先在各个第一节点安装并配置的组件;被选举为IPsec端点的第一节点与其它Kubernetes集群的IPsec端点按照配置策略协调并建立IPsec链路。
随后,在步骤S220中,本集群的活动的IPsec端点的Submariner-route-agent组件创建VXLAN(Virtual Extensible Local Area Network,虚拟扩展局域网)的VTEP(VXLANTunnel End Point,VXLAN隧道终点)网络接口。
创建的VXLAN VTEP网络接口用于建立Kubernetes集群内部的从第二节点到第一节点的VXLAN链路。
随后,在步骤S230中,本集群的第二节点的Submariner-route-agent组件获取活动的IPsec端点的信息;第二节点包括容器集合Pod和/或容器;
Submariner-route-agent组件预装在每个节点中,可以获知作为活动的IPsec端点的第一节点的信息。
随后,在步骤S240中,本集群的第二节点的Submariner-route-agent组件连接VXLAN VTEP网络接口。
第二节点的Submariner-route-agent组件连接到VXLAN VTEP网络接口之后,形成了从第二节点到第一节点的VXLAN链路。
随后,在步骤S250中,本集群的第二节点通过VXLAN链路和IPsec链路与其它Kubernetes集群的任一节点通信。
例如,一个数据包从一个Kubernetes集群的容器到另一个Kubernetes集群的容器,首先通过VXLAN链路传输至本地Kubernetes集群的活动的IPsec端点,由本地Kubernetes集群的活动的IPsec端点通过IPsec链路转发至目标Kubernetes集群的活动的IPsec端点,再由目标Kubernetes集群的活动的IPsec端点通过VXLAN链路传输至目标容器。
优选地,Kubernetes集群的活动的IPsec端点执行预设操作以确保为唯一的活动的IPsec端点。
此外,在本发明实施例中,Submariner-route-agent组件还配置路由规则和网络防火墙iptable规则,以实现与远程集群的完全连接。
以及,Submariner VXLAN隧道的MTU是基于主机上默认网络接口的MTU减去VXLAN开销计算得到。
在本发明实施例中,不同的Kubernetes集群需要使用不同的CIDR(ClasslessInter-Domain Routing,无类别域间路由)以及不同的kubernetes DNS后缀,这是为了防止流量选择器、策略、路由冲突。数据包在网关节点之间进行转发时,根据目标CIDR以两种方式之一进行路由:如果目标CIDR是Pod网络,则流量将通过Kubernetes CNI编程的网络进行路由。如果目标CIDR是服务网络,则流量将通过位于目标网关节点上的kube-proxy进程配置的规则进行路由。
在本发明又一实施例中,Kubernetes集群的个数不少于三个时,Kubernetes集群之间按照预设规则确定出中央代理,当任一Kubernetes集群被确定为中央代理时,中央代理的活动的IPsec端点的submariner-gateway组件在数据存储区和中央代理之间控制资源的双向同步;以及,中央代理的活动的IPsec端点的submariner-gateway组件接收其它Kubernetes集群的活动的IPsec端点的submariner-gateway组件上传的CRD数据;当中央代理确定与其它Kubernetes集群的CRD(CustomResourceDefinition)数据不匹配时,中央代理的活动的IPsec端点的submariner-gateway组件将中央代理的资源同步至其它Kubernetes集群。
中央代理的活动的IPsec端点的submariner-gateway组件作为数据存储同步器的控制器运行,控制器负责在数据存储区和本地群集之间执行双向同步,同步器只会将Kubernetes CRD数据推送到中央代理,例如基于集群ID进行推送,以及,当数据与本地集群不匹配时,会将中央代理的所有数据同步到本地集群。在本发明实施例中,通过设置中央代理,实现了三个以上集群环境下各个集群间的自定义资源的同步。
在任一Kubernetes集群内,当CRD发生更改时,所有节点的Submariner-route-agent组件可获知并响应CRD的更改。例如,在选举出活动的IPsec端点之后,响应动作包括删除或者添加相关路由信息。
在本发明的又一实施例中,当任一Kubernetes集群的活动的IPsec端点发生故障时,任一Kubernetes集群的第一节点的submariner-gateway组件确定出新的活动的IPsec端点;新的活动的IPsec端点用于与其它Kubernetes集群的活动的IPsec端点建立连接;该任一Kubernetes集群的第二节点的Submariner-route-agent组件更新路由表,更新后的路由表包含新的活动的IPsec端点的信息。
例如,当一个活动的IPsec端点发生故障时,submariner-gateway组件通过master实例获得领导权并执行和解,以确保它是活动的领导者并成为活动的IPsec端点。完成后,其它Kubernetes集群即远程群集将IPsec端点与新端点协调,并重新建立连接。此外,submariner-route-agent组件将更新每个节点上的路由表,以指向新的作为活动的IPsec端点的网关节点。
参见图3,展示了本发明实施例提供的跨Kubernetes集群的网络通信系统中的两个Kubernetes集群,其中一个为本地部署k8s集群,另一个为配置broker组件的公有云k8s集群,Kubernetes集群的每个节点安装submariner-route-agent组件,Kubernetes集群的网关节点安装submariner-gateway组件。在图2所示的系统中,本地部署k8s集群的节点与网关节点的Submariner-route-agent组件建立了VXLAN链路,本地部署k8s集群的网关节点通过IPsec链路和公网接入公有云k8s集群,公有云k8s集群的节点与网关节点的Submariner-route-agent组件同样建立了VXLAN链路。本地部署k8s集群的网关节点的submariner-gateway组件通过broker方式接入公有云k8s集群的数据库,获取到submariner CRDs信息,进而同步相关资源信息。
本系统中,submariner-gateway组件内置了一些建立状态的控制器。它负责与Charon运行/接口以建立IPsec隧道,以及将本地集群信息更新到中央代理中以在集群之间共享信息。submariner-gateway组件是在具备网关标签的节点上作为KubernetesDaemonSet运行,并利用领导者选举机制建立活动的网关节点,该节点用于促进IPsec隧道与远程群集的连接。
submariner-route-agent组件在所有Kubernetes的工作节点上均作为Kubernetes DaemonSet运行,并确保路由规则以允许所有Pod和节点能和成为领导者的网关节点进行通信,从而实现远程集群网络。它确保状态并响应Kubernetes CRD的更改,这意味着它能够在领导者选举发生时删除/添加路由。
本系统的网络路径的原理如下:网络路径取决于IP流量的来源/目的地。在所有情况下,两个集群之间的流量都将通过ip xfrm规则在(每个集群中)当选的领导者网关节点之间转换。每个网关节点都有一个正在运行的Charon守护程序,它将执行IPsec密钥和策略管理。当源Pod位于非选举的网关节点的工作节点上时,发往远程群集的流量将通过VXLAN隧道传输到本地群集网关节点。在网关节点上,流量被封装在IPSEC隧道中并转发到远程群集。流量到达目标网关节点后,将根据目标CIDR以两种方式之一进行路由。如果目标CIDR是Pod网络,则流量将通过Kubernetes CNI编程的网络进行路由。如果目标CIDR是服务网络,则流量将通过位于目标网关节点上的kube-proxy进程配置的规则进行路由。
本发明实现了在多个Kubernetes集群间打通各个节点、容器工作负载的直连互通,进而可用于全局的DNS解析、全局负载均衡等,让多个Kubernetes集群真正形成一个有机的、互通的、具备更高隔离性的整体。以负载均衡为例,可以将业务负载分布在多个集群上,使用一个全局的VIP或者DNS域名将请求发送到对应的后端集群,当一个集群发生故障无法处理请求时,将VIP或者DNS记录切换健康的集群。又例如,当集群发生诸如断电、网络故障、资源不足引起的连锁反应等问题时,使用多个集群可以将故障隔离在特定的集群,不会向其它集群传播。并且更进一步,多集群之间的工作负载可直连互通,相当于在一个集群中实现了多个故障隔离区,有了一个集群的互通性,也具备多个集群的隔离性。
应当理解,这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如软盘、CD-ROM、硬盘驱动器或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被该机器执行时,该机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的该程序代码中的指令,执行本发明的各种方法。
以示例而非限制的方式,计算机可读介质包括计算机存储介质和通信介质。计算机可读介质包括计算机存储介质和通信介质。计算机存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在计算机可读介质的范围之内。
应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该发明的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面发明的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所发明的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中发明的所有特征以及如此发明的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中发明的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的发明是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
Claims (10)
1.一种跨Kubernetes集群的网络通信方法,其特征在于,包括:
任一Kubernetes集群的第一节点的submariner-gateway组件选举出活动的IPsec端点;所述第一节点包括带有网关标签的节点;所述任一Kubernetes集群的活动的IPsec端点用于与其它Kubernetes集群的活动的IPsec端点建立连接;
所述任一Kubernetes集群的活动的IPsec端点的Submariner-route-agent组件创建VXLAN VTEP网络接口;
所述任一Kubernetes集群的第二节点的Submariner-route-agent组件获取所述活动的IPsec端点的信息;所述第二节点包括容器集合Pod和/或容器;
所述任一Kubernetes集群的第二节点的Submariner-route-agent组件连接所述VXLANVTEP网络接口;
所述任一Kubernetes集群的第二节点通过VXLAN链路和IPsec链路与其它Kubernetes集群的任一节点通信。
2.如权利要求1所述的方法,其特征在于,还包括:
当所述任一Kubernetes集群被确定为中央代理时,所述中央代理的活动的IPsec端点的submariner-gateway组件在数据存储区和所述中央代理之间控制资源的双向同步;
以及,
所述中央代理的活动的IPsec端点的submariner-gateway组件接收其它Kubernetes集群的活动的IPsec端点的submariner-gateway组件上传的CRD数据;
当所述中央代理确定与所述其它Kubernetes集群的CRD数据不匹配时,所述中央代理的活动的IPsec端点的submariner-gateway组件将所述中央代理的资源同步至所述其它Kubernetes集群;
其中,Kubernetes集群的个数不少于三个。
3.如权利要求2所述的方法,其特征在于,还包括:
当所述任一Kubernetes集群的CRD发生变化时,所述任一Kubernetes集群的所有节点的Submariner-route-agent组件响应所述CRD的更改。
4.如权利要求1所述的方法,其特征在于,还包括:
所述任一Kubernetes集群的活动的IPsec端点执行预设操作以确保为所述任一Kubernetes集群的唯一的活动的IPsec端点。
5.如权利要求1所述的方法,其特征在于,还包括:
当所述任一Kubernetes集群的活动的IPsec端点发生故障时,所述任一Kubernetes集群的第一节点的submariner-gateway组件确定出新的活动的IPsec端点;所述新的活动的IPsec端点用于与其它Kubernetes集群的活动的IPsec端点建立连接;
所述任一Kubernetes集群的第二节点的所述Submariner-route-agent组件更新路由表,更新后的路由表包含所述新的活动的IPsec端点的信息。
6.如权利要求1所述的方法,其特征在于,还包括:
所述任一Kubernetes集群的第二节点的Submariner-route-agent组件配置路由规则和iptable规则。
7.如权利要求6所述的方法,其特征在于,还包括:
所述第一节点和/或所述第二节点根据默认网络接口的MTU减去VXLAN链路的开销计算VXLAN MTU。
8.如权利要求1所述的方法,其特征在于,还包括:
所述任一Kubernetes集群的第一节点接收到所述其它Kubernetes集群的任一节点的数据包之后,根据所述数据包的CIDR进行路由。
9.如权利要求1所述的方法,其特征在于,所述任一Kubernetes集群与其它Kubernetes集群的CIDR不同。
10.一种跨Kubernetes集群的网络通信系统,其特征在于,包括多个Kubernetes集群,Kubernetes集群包含第一节点和第二节点,所述第一节点包括带有网关标签的节点,所述第二节点包括容器集合Pod和/或容器;所述第一节点预装submariner-gateway组件和Submariner-route-agent组件,所述第二节点预装Submariner-route-agent组件;
任一Kubernetes集群的第一节点用于通过所述submariner-gateway组件选举出活动的IPsec端点;所述任一Kubernetes集群的活动的IPsec端点用于与其它Kubernetes集群的活动的IPsec端点建立连接;所述活动的IPsec端点用于通过Submariner-route-agent组件创建VXLAN VTEP网络接口;
所述任一Kubernetes集群的第二节点用于通过Submariner-route-agent组件连接所述VXLAN VTEP网络接口;以及,通过VXLAN链路和IPsec链路与其它Kubernetes集群的任一节点通信;
所述任一Kubernetes集群的所有节点还用于通过Submariner-route-agent组件获取所述活动的IPsec端点的信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011531664.2A CN112751913A (zh) | 2020-12-22 | 2020-12-22 | 一种跨Kubernetes集群的网络通信方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011531664.2A CN112751913A (zh) | 2020-12-22 | 2020-12-22 | 一种跨Kubernetes集群的网络通信方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112751913A true CN112751913A (zh) | 2021-05-04 |
Family
ID=75645920
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011531664.2A Pending CN112751913A (zh) | 2020-12-22 | 2020-12-22 | 一种跨Kubernetes集群的网络通信方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112751913A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113572831A (zh) * | 2021-07-21 | 2021-10-29 | 重庆星环人工智能科技研究院有限公司 | Kubernetes集群间的通信方法、计算机设备及介质 |
CN113726638A (zh) * | 2021-11-04 | 2021-11-30 | 北京比格大数据有限公司 | 一种多云多芯容器管理的方法、装置及设备、存储介质 |
CN114025021A (zh) * | 2021-11-18 | 2022-02-08 | 上海道客网络科技有限公司 | 一种跨Kubernetes集群的通信方法、系统、介质和电子设备 |
CN115086312A (zh) * | 2022-05-10 | 2022-09-20 | 兴业银行股份有限公司 | 实现kubernetes服务跨集群通信的方法及系统 |
WO2023173720A1 (zh) * | 2022-03-17 | 2023-09-21 | 苏州浪潮智能科技有限公司 | 应用访问方法、云端代理及节点代理组件、设备、介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106559851A (zh) * | 2015-09-24 | 2017-04-05 | 成都鼎桥通信技术有限公司 | LTE宽带集群系统IPSec级联组网实现方法及系统 |
CN107770066A (zh) * | 2017-10-20 | 2018-03-06 | 成都精灵云科技有限公司 | 一种跨主机、跨VLAN、跨集群的Docker容器导流方法 |
CN110012125A (zh) * | 2019-04-01 | 2019-07-12 | 优刻得科技股份有限公司 | 集群网络通信方法、装置、存储介质和设备 |
CN110881007A (zh) * | 2018-09-05 | 2020-03-13 | 北京京东尚科信息技术有限公司 | 一种容器集群网络接入的方法和装置 |
US10708082B1 (en) * | 2018-08-31 | 2020-07-07 | Juniper Networks, Inc. | Unified control plane for nested clusters in a virtualized computing infrastructure |
CN111796905A (zh) * | 2020-05-22 | 2020-10-20 | 浙商银行股份有限公司 | 一种kubernetes容器云平台VLAN网络的实现方法及系统 |
WO2020212998A1 (en) * | 2019-04-17 | 2020-10-22 | Telefonaktiebolaget Lm Ericsson (Publ) | Network address allocation in a virtual layer 2 domain spanning across multiple container clusters |
-
2020
- 2020-12-22 CN CN202011531664.2A patent/CN112751913A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106559851A (zh) * | 2015-09-24 | 2017-04-05 | 成都鼎桥通信技术有限公司 | LTE宽带集群系统IPSec级联组网实现方法及系统 |
CN107770066A (zh) * | 2017-10-20 | 2018-03-06 | 成都精灵云科技有限公司 | 一种跨主机、跨VLAN、跨集群的Docker容器导流方法 |
US10708082B1 (en) * | 2018-08-31 | 2020-07-07 | Juniper Networks, Inc. | Unified control plane for nested clusters in a virtualized computing infrastructure |
CN110881007A (zh) * | 2018-09-05 | 2020-03-13 | 北京京东尚科信息技术有限公司 | 一种容器集群网络接入的方法和装置 |
CN110012125A (zh) * | 2019-04-01 | 2019-07-12 | 优刻得科技股份有限公司 | 集群网络通信方法、装置、存储介质和设备 |
WO2020212998A1 (en) * | 2019-04-17 | 2020-10-22 | Telefonaktiebolaget Lm Ericsson (Publ) | Network address allocation in a virtual layer 2 domain spanning across multiple container clusters |
CN111796905A (zh) * | 2020-05-22 | 2020-10-20 | 浙商银行股份有限公司 | 一种kubernetes容器云平台VLAN网络的实现方法及系统 |
Non-Patent Citations (4)
Title |
---|
51CTO博客: "论跨Kubernetes集群Pod通信的必要性和实现方式", 《HTTPS://BLOG.51CTO.COM/U_15061931/2567910》 * |
51CTO博客: "论跨Kubernetes集群Pod通信的必要性和实现方式", 《HTTPS://BLOG.51CTO.COM/U_15061931/2567910》, 19 December 2020 (2020-12-19) * |
WEIXIN_39883129: "contentprovider实现跨进程通信_论跨Kubernetes集群Pod通信的必要性和实现方式" * |
李翔;: "在私有Kubernetes集群中实现服务的负载均衡", 电子技术与软件工程, no. 14 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113572831A (zh) * | 2021-07-21 | 2021-10-29 | 重庆星环人工智能科技研究院有限公司 | Kubernetes集群间的通信方法、计算机设备及介质 |
CN113572831B (zh) * | 2021-07-21 | 2024-03-15 | 重庆星环人工智能科技研究院有限公司 | Kubernetes集群间的通信方法、计算机设备及介质 |
CN113726638A (zh) * | 2021-11-04 | 2021-11-30 | 北京比格大数据有限公司 | 一种多云多芯容器管理的方法、装置及设备、存储介质 |
CN113726638B (zh) * | 2021-11-04 | 2022-04-01 | 北京比格大数据有限公司 | 一种多云多芯容器管理的方法、装置及设备、存储介质 |
CN114025021A (zh) * | 2021-11-18 | 2022-02-08 | 上海道客网络科技有限公司 | 一种跨Kubernetes集群的通信方法、系统、介质和电子设备 |
CN114025021B (zh) * | 2021-11-18 | 2023-08-08 | 上海道客网络科技有限公司 | 一种跨Kubernetes集群的通信方法、系统、介质和电子设备 |
WO2023173720A1 (zh) * | 2022-03-17 | 2023-09-21 | 苏州浪潮智能科技有限公司 | 应用访问方法、云端代理及节点代理组件、设备、介质 |
CN115086312A (zh) * | 2022-05-10 | 2022-09-20 | 兴业银行股份有限公司 | 实现kubernetes服务跨集群通信的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112751913A (zh) | 一种跨Kubernetes集群的网络通信方法及系统 | |
CN112470436B (zh) | 用于提供多云连通性的系统、方法、以及计算机可读介质 | |
US20220377045A1 (en) | Network virtualization of containers in computing systems | |
US8484353B1 (en) | Resource placement templates for virtual networks | |
WO2021135344A1 (zh) | 虚拟私有云与云下数据中心通信、配置方法及相关装置 | |
US11336696B2 (en) | Control access to domains, servers, and content | |
CN115699698A (zh) | 虚拟l2网络中的环路防止 | |
US20170099612A1 (en) | Scalable control plane | |
US20130111066A1 (en) | Device and Method for Split DNS Communications | |
US20130239198A1 (en) | Managing remote network addresses in communications | |
JP5720324B2 (ja) | シンクライアント環境提供システム、サーバ、シンクライアント環境管理方法、及びシンクライアント環境管理プログラム | |
US7944926B2 (en) | Method and system for migrating a peer in a distributed BGP system | |
US9112769B1 (en) | Programatically provisioning virtual networks | |
US10516544B2 (en) | Extranet connectivity in LISP networks | |
US20220114008A1 (en) | Cloud-based managed networking service that enables users to consume managed virtualized network functions at edge locations | |
US10999239B2 (en) | Stateful LISP subscription for overlapping subnetworks | |
CN111556110B (zh) | 一种用于私有云系统的不同物理业务网络自动化适配方法 | |
CN112822061B (zh) | 一种边缘节点对外暴露服务的方法和系统 | |
US20230109231A1 (en) | Customizable network virtualization devices using multiple personalities | |
CN114124714B (zh) | 一种多层级网络部署方法、装置、设备及存储介质 | |
US11811593B2 (en) | Secure bi-directional network connectivity system between private networks | |
CN110324248B (zh) | 一种裸金属服务器路由更新方法、装置、电子设备及介质 | |
JP2024507146A (ja) | キャッシュされた構成情報およびキャッシュされない構成情報に基づいたクラウドインフラストラクチャにおけるパケットフロー | |
CN113904859A (zh) | 安全组源组信息管理方法、装置、存储介质及电子设备 | |
CN107124411B (zh) | 经典网络环境下的虚拟私有云实现方法、装置、以及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210504 |