CN114390101A - 一种基于BGP组网的Kubernetes负载均衡方法 - Google Patents
一种基于BGP组网的Kubernetes负载均衡方法 Download PDFInfo
- Publication number
- CN114390101A CN114390101A CN202210002089.XA CN202210002089A CN114390101A CN 114390101 A CN114390101 A CN 114390101A CN 202210002089 A CN202210002089 A CN 202210002089A CN 114390101 A CN114390101 A CN 114390101A
- Authority
- CN
- China
- Prior art keywords
- load balancing
- service
- bgp
- kubernetes
- load
- 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
Images
Classifications
-
- 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)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于BGP组网的Kubernetes负载均衡方法,本发明方法提供4‑7层的负载的负载能力,Pod直接发布到负载均衡上,相比较NodePort+外部负载均衡设备,不占用集群Node端口,不需要集群内部Kube‑Proxy参与,提升了网络性能,提供更丰富的健康检查,会话保持能力。
Description
技术领域
本发明涉及负载均衡技术领域,具体是指一种基于BGP组网的Kubernetes负载均衡方法。
背景技术
Kubernetes是Google开源的容器集群管理系统,提供应用部署、维护、扩展机制等功能。利用kubernetes能够方便地管理跨机器运行容器化的应用。在kubernetes技术中,Pod是基本操作单元,由一个或多个容器构成;其中,若Pod由多个容器构成,构成一个Pod的多个容器处于kubernetes集群的同一节点(即主机)。由于Pod会在kubernetes集群的各个节点上漂移,Pod的地址并不固定,这导致无法访问Pod。Kubernetes进而引入service的概念,service也是kubernetes的基本操作单元,具有固定不变的DNS(Domain Name System,域名系统)域名。由service代理Pod后,可以通过service的DNS域名访问其代理的Pod;ConfigMap类型的资源用于保存应用程序的配置信息;API(Application ProgrammingInterface,应用程序接口)是一些预先定义的接口;Calico作为一种常用的Kubernetes网络插件,使用BGP协议对各节点的容器网络进行路由交换。
随着Kubernetes虚拟化技术的兴起,应用架构的微服务化、系统的快速迭代对资源的弹性伸缩提出了更高的要求,要求负载均衡有更好的灵活性。Kubernetes提供了NodePort、LoadBalancer、Ingress三种方案发布服务。
目前的三种方案都有一些不完美的地方,只能支持七层应用的分发,对用户使用场景有所限制。NodePort会占用Kubernetes Node独立的端口,并且集群所有Node都要开通此端口的入访能力,限制了集群服务数量。一般会和集群外部的负载均衡设备搭配做双层负载,但对性能有一定影响。
发明内容
本发明要解决的技术问题是提供4-7层负载能力,基于BGP组网方案,负载均衡到Pod之间网络互通,绕开NodePort,实现Pod的直接发布,提高负载性能,简化结构,灵活发布服务。
为解决上述技术问题,本发明提供的技术方案为一种基于BGP组网的Kubernetes负载均衡方法,包括以下步骤:
步骤一:在Kubernetes部署CalicoBGP组网,所述CalicoBGP组网利用Linux内核建立高效的虚拟路由器来负责数据转发;
步骤二:配置集群外部的负载均衡,使其加入BGP网络中,实现负载均衡到Pod的网络直通;
步骤三:在Kubernetes中部署负载均衡控制器容器,控制器监听API SERVER,并将服务变化同步到集群外部的负载均衡上;
步骤四:用户向Kubernetes中发布ConfigMap,ConfigMap中描述了需要发布到负载均衡的Service、虚拟服务相关配置,经控制器感知后同步到负载均衡上,完成服务发布;
步骤五:外部用户请求先到达负载均衡设备,经负载后均衡的转发到对应的一组Pod上。
作为改进,所述步骤一中的每个虚拟路由器通过BGP协议负责把自己上运行的工作信息的路由信息向整个Calico网络内传播。
作为改进,所述步骤三中服务变化包括ConfigMap、Service、Pod的变化。
本发明与现有技术相比的优点在于:本发明方法提供4-7层的负载的负载能力,Pod直接发布到负载均衡上,相比较NodePort+外部负载均衡设备,不占用集群Node端口,不需要集群内部Kube-Proxy参与,提升了网络性能,提供更丰富的健康检查,会话保持能力。
附图说明
图1是本发明一种基于BGP组网的Kubernetes负载均衡方法的原理图。
图2是本发明一种基于BGP组网的Kubernetes负载均衡方法的流程图。
具体实施方式
下面结合附图对本发明一种基于BGP组网的Kubernetes负载均衡方法做进一步的详细说明。
结合附图1-2,一种基于BGP组网的Kubernetes负载均衡方法,包括以下步骤:
步骤一:在Kubernetes部署Calico BGP组网,所述Calico BGP组网利用Linux内核建立高效的虚拟路由器来负责数据转发;
步骤二:配置集群外部的负载均衡,使其加入BGP网络中,实现负载均衡到Pod的网络直通;
步骤三:在Kubernetes中部署负载均衡控制器容器,控制器监听API SERVER,并将服务变化同步到集群外部的负载均衡上;
步骤四:用户向Kubernetes中发布ConfigMap,ConfigMap中描述了需要发布到负载均衡的Service、虚拟服务相关配置,经控制器感知后同步到负载均衡上,完成服务发布;
步骤五:外部用户请求先到达负载均衡设备,经负载后均衡的转发到对应的一组Pod上。
所述步骤一中的每个虚拟路由器通过BGP协议负责把自己上运行的工作信息的路由信息向整个Calico网络内传播。
所述步骤三中服务变化包括ConfigMap、Service、Pod的变化。
本发明一种基于BGP组网的Kubernetes负载均衡方法的具体实施过程如下:
Kubernetes部署Calico BGP组网,Calico BGP组网利用Linux内核建立高效的虚拟路由器来负责数据转发,每个虚拟路由器通过BGP协议负责把自己上运行的工作信息的路由信息向整个Calico网络内传播;
负载均衡配置BGP邻居,加入BGP组网,实现负载均衡到Pod的网络互通;
Kubernetes部署负载均衡控制器容器,通过监听Kubernetes API SERVER感知ConfigMap、Service、Pod等变化,并同步到集群外部的负载均衡上;
用户通过ConfigMap发布服务,ConfigMap描述要发布的Service以及负载均衡相关配置;
控制器感知到ConfigMap,将服务同步到负载均衡。
以上对本发明及其实施方式进行了描述,这种描述没有限制性,附图中所示的也只是本发明的实施方式之一,实际的结构并不局限于此。总而言之如果本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本发明的保护范围。
Claims (3)
1.一种基于BGP组网的Kubernetes负载均衡方法,其特征在于,包括以下步骤:
步骤一:在Kubernetes部署Calico BGP组网,所述Calico BGP组网利用Linux内核建立高效的虚拟路由器来负责数据转发;
步骤二:配置集群外部的负载均衡,使其加入BGP网络中,实现负载均衡到Pod的网络直通;
步骤三:在Kubernetes中部署负载均衡控制器容器,控制器监听API SERVER,并将服务变化同步到集群外部的负载均衡上;
步骤四:用户向Kubernetes中发布ConfigMap,ConfigMap中描述了需要发布到负载均衡的Service、虚拟服务相关配置,经控制器感知后同步到负载均衡上,完成服务发布;
步骤五:外部用户请求先到达负载均衡设备,经负载后均衡的转发到对应的一组Pod上。
2.根据权利要求1所述的一种基于BGP组网的Kubernetes负载均衡方法,其特征在于:所述步骤一中的每个虚拟路由器通过BGP协议负责把自己上运行的工作信息的路由信息向整个Calico网络内传播。
3.根据权利要求1所述的一种基于BGP组网的Kubernetes负载均衡方法,其特征在于:所述步骤三中服务变化包括ConfigMap、Service、Pod的变化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210002089.XA CN114390101A (zh) | 2022-01-04 | 2022-01-04 | 一种基于BGP组网的Kubernetes负载均衡方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210002089.XA CN114390101A (zh) | 2022-01-04 | 2022-01-04 | 一种基于BGP组网的Kubernetes负载均衡方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114390101A true CN114390101A (zh) | 2022-04-22 |
Family
ID=81200775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210002089.XA Pending CN114390101A (zh) | 2022-01-04 | 2022-01-04 | 一种基于BGP组网的Kubernetes负载均衡方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114390101A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108964959A (zh) * | 2017-05-27 | 2018-12-07 | 阿里巴巴集团控股有限公司 | 一种用于虚拟化平台的网卡直通系统及数据包监管方法 |
CN111431740A (zh) * | 2020-03-16 | 2020-07-17 | 深信服科技股份有限公司 | 数据的传输方法、装置、设备及计算机可读存储介质 |
CN111447146A (zh) * | 2020-03-20 | 2020-07-24 | 上海中通吉网络技术有限公司 | 物理路由信息的动态更新方法、装置、设备和存储介质 |
WO2020161561A1 (en) * | 2019-02-04 | 2020-08-13 | Telefonaktiebolaget Lm Ericsson (Publ) | Local service announcement in a stretched cluster |
CN112764886A (zh) * | 2021-01-29 | 2021-05-07 | 上海弘积信息科技有限公司 | 一种基于Kubernetes平台的负载均衡控制器 |
CN113783922A (zh) * | 2021-03-26 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 负载均衡的方法、系统和装置 |
-
2022
- 2022-01-04 CN CN202210002089.XA patent/CN114390101A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108964959A (zh) * | 2017-05-27 | 2018-12-07 | 阿里巴巴集团控股有限公司 | 一种用于虚拟化平台的网卡直通系统及数据包监管方法 |
WO2020161561A1 (en) * | 2019-02-04 | 2020-08-13 | Telefonaktiebolaget Lm Ericsson (Publ) | Local service announcement in a stretched cluster |
CN111431740A (zh) * | 2020-03-16 | 2020-07-17 | 深信服科技股份有限公司 | 数据的传输方法、装置、设备及计算机可读存储介质 |
CN111447146A (zh) * | 2020-03-20 | 2020-07-24 | 上海中通吉网络技术有限公司 | 物理路由信息的动态更新方法、装置、设备和存储介质 |
CN112764886A (zh) * | 2021-01-29 | 2021-05-07 | 上海弘积信息科技有限公司 | 一种基于Kubernetes平台的负载均衡控制器 |
CN113783922A (zh) * | 2021-03-26 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 负载均衡的方法、系统和装置 |
Non-Patent Citations (1)
Title |
---|
LEE木川: "Kubernetes集群部署(三)——service,k8s网络通信 calico网络插件", 《HTTPS://BLOG.CSDN.NET/WEIXIN_56993834/ARTICLE/DETAILS/119175822 》, pages 1 - 3 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111796905B (zh) | 一种kubernetes容器云平台VLAN网络的实现方法及系统 | |
US10666609B2 (en) | Management of domain name systems in a large-scale processing environment | |
US9999030B2 (en) | Resource provisioning method | |
Guo et al. | Secondnet: a data center network virtualization architecture with bandwidth guarantees | |
CN109716717A (zh) | 从软件定义的网络控制器管理虚拟端口信道交换机对等体 | |
CN103607430A (zh) | 一种网络处理的方法和系统及网络控制中心 | |
CN111510515B (zh) | 一种区分混合应用环境的容器的方法及装置 | |
WO2015172362A1 (zh) | 一种网络功能虚拟化网络系统、数据处理方法及装置 | |
US9112769B1 (en) | Programatically provisioning virtual networks | |
CN109462511B (zh) | 网络的建立方法及装置 | |
CN105704042A (zh) | 报文处理方法、bng及bng集群系统 | |
CN108574613B (zh) | Sdn数据中心的二层互通方法及装置 | |
US11824765B2 (en) | Fast redirect of traffic when pods fail | |
CN112491984B (zh) | 基于虚拟网桥的容器编排引擎集群管理系统 | |
CN111447146A (zh) | 物理路由信息的动态更新方法、装置、设备和存储介质 | |
WO2021173318A1 (en) | Vrf segregation for shared services in multi-fabric cloud networks | |
Abdelaal et al. | High availability deployment of virtual network function forwarding graph in cloud computing environments | |
CN113381936A (zh) | 网络信息处理方法、装置及网络设备 | |
Lin et al. | Energy-aware service function chaining embedding in NFV networks | |
WO2022017099A1 (zh) | 通信方法、cp设备及nat设备 | |
CN112929206B (zh) | 一种云网环境下云物理机配置的方法与装置 | |
CN114172753B (zh) | 地址预留的方法、网络设备和系统 | |
Huang et al. | Embedding virtual software-defined networks over distributed hypervisors for vDC formulation | |
CN106209634B (zh) | 地址映射关系的学习方法及装置 | |
Sun et al. | AI-based survivable design for hybrid virtual networks for single regional failures in cloud data centers |
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 |