一种基于BGP组网的Kubernetes负载均衡方法技术

技术编号:33204236 阅读:37 留言:0更新日期:2022-04-24 00:46
本发明专利技术公开了一种基于BGP组网的Kubernetes负载均衡方法,本发明专利技术方法提供4

【技术实现步骤摘要】
一种基于BGP组网的Kubernetes负载均衡方法


[0001]本专利技术涉及负载均衡
,具体是指一种基于BGP组网的Kubernetes负载均衡方法。

技术介绍

[0002]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 Programming Interface,应用程序接口)是一些预先定义的接口;Calico作为一种常用的Kubernetes网络插件,使用BGP协议对各节点的容器网络进行路由交换。
[0003]随着Kubernetes虚拟化技术的兴起,应用架构的微服务化、系统的快速迭代对资源的弹性伸缩提出了更高的要求,要求负载均衡有更好的灵活性。Kubernetes提供了NodePort、LoadBalancer、Ingress三种方案发布服务。
[0004]目前的三种方案都有一些不完美的地方,只能支持七层应用的分发,对用户使用场景有所限制。NodePort会占用Kubernetes Node独立的端口,并且集群所有Node都要开通此端口的入访能力,限制了集群服务数量。一般会和集群外部的负载均衡设备搭配做双层负载,但对性能有一定影响。

技术实现思路

[0005]本专利技术要解决的技术问题是提供4

7层负载能力,基于BGP组网方案,负载均衡到Pod之间网络互通,绕开NodePort,实现Pod的直接发布,提高负载性能,简化结构,灵活发布服务。
[0006]为解决上述技术问题,本专利技术提供的技术方案为一种基于BGP组网的Kubernetes负载均衡方法,包括以下步骤:
[0007]步骤一:在Kubernetes部署CalicoBGP组网,所述CalicoBGP组网利用Linux内核建立高效的虚拟路由器来负责数据转发;
[0008]步骤二:配置集群外部的负载均衡,使其加入BGP网络中,实现负载均衡到Pod的网络直通;
[0009]步骤三:在Kubernetes中部署负载均衡控制器容器,控制器监听API SERVER,并将服务变化同步到集群外部的负载均衡上;
[0010]步骤四:用户向Kubernetes中发布ConfigMap,ConfigMap中描述了需要发布到负
载均衡的Service、虚拟服务相关配置,经控制器感知后同步到负载均衡上,完成服务发布;
[0011]步骤五:外部用户请求先到达负载均衡设备,经负载后均衡的转发到对应的一组Pod上。
[0012]作为改进,所述步骤一中的每个虚拟路由器通过BGP协议负责把自己上运行的工作信息的路由信息向整个Calico网络内传播。
[0013]作为改进,所述步骤三中服务变化包括ConfigMap、Service、Pod的变化。
[0014]本专利技术与现有技术相比的优点在于:本专利技术方法提供4

7层的负载的负载能力,Pod直接发布到负载均衡上,相比较NodePort+外部负载均衡设备,不占用集群Node端口,不需要集群内部Kube

Proxy参与,提升了网络性能,提供更丰富的健康检查,会话保持能力。
附图说明
[0015]图1是本专利技术一种基于BGP组网的Kubernetes负载均衡方法的原理图。
[0016]图2是本专利技术一种基于BGP组网的Kubernetes负载均衡方法的流程图。
具体实施方式
[0017]下面结合附图对本专利技术一种基于BGP组网的Kubernetes负载均衡方法做进一步的详细说明。
[0018]结合附图1

2,一种基于BGP组网的Kubernetes负载均衡方法,包括以下步骤:
[0019]步骤一:在Kubernetes部署Calico BGP组网,所述Calico BGP组网利用Linux内核建立高效的虚拟路由器来负责数据转发;
[0020]步骤二:配置集群外部的负载均衡,使其加入BGP网络中,实现负载均衡到Pod的网络直通;
[0021]步骤三:在Kubernetes中部署负载均衡控制器容器,控制器监听API SERVER,并将服务变化同步到集群外部的负载均衡上;
[0022]步骤四:用户向Kubernetes中发布ConfigMap,ConfigMap中描述了需要发布到负载均衡的Service、虚拟服务相关配置,经控制器感知后同步到负载均衡上,完成服务发布;
[0023]步骤五:外部用户请求先到达负载均衡设备,经负载后均衡的转发到对应的一组Pod上。
[0024]所述步骤一中的每个虚拟路由器通过BGP协议负责把自己上运行的工作信息的路由信息向整个Calico网络内传播。
[0025]所述步骤三中服务变化包括ConfigMap、Service、Pod的变化。
[0026]本专利技术一种基于BGP组网的Kubernetes负载均衡方法的具体实施过程如下:
[0027]Kubernetes部署Calico BGP组网,Calico BGP组网利用Linux内核建立高效的虚拟路由器来负责数据转发,每个虚拟路由器通过BGP协议负责把自己上运行的工作信息的路由信息向整个Calico网络内传播;
[0028]负载均衡配置BGP邻居,加入BGP组网,实现负载均衡到Pod的网络互通;
[0029]Kubernetes部署负载均衡控制器容器,通过监听Kubernetes API SERVER感知ConfigMap、Service、Pod等变化,并同步到集群外部的负载均衡上;
[0030]用户通过ConfigMap发布服务,ConfigMap描述要发布的Service以及负载均衡相
关配置;
[0031]控制器感知到ConfigMap,将服务同步到负载均衡。
[0032]以上对本专利技术及其实施方式进行了描述,这种描述没有限制性,附图中所示的也只是本专利技术的实施方式之一,实际的结构并不局限于此。总而言之如果本领域的普通技术人员受其启示,在不脱离本专利技术创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本专利技术的保护范本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于BGP组网的Kubernetes负载均衡方法,其特征在于,包括以下步骤:步骤一:在Kubernetes部署Calico BGP组网,所述Calico BGP组网利用Linux内核建立高效的虚拟路由器来负责数据转发;步骤二:配置集群外部的负载均衡,使其加入BGP网络中,实现负载均衡到Pod的网络直通;步骤三:在Kubernetes中部署负载均衡控制器容器,控制器监听API SERVER,并将服务变化同步到集群外部的负载均衡上;步骤四:用户向Kubernetes中发布ConfigMap,ConfigMap中描述了需要发布到负载...

【专利技术属性】
技术研发人员:苏家巍
申请(专利权)人:上海弘积信息科技有限公司
类型:发明
国别省市:

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

1