CN112437136A - 一种实现云原生负载均衡服务的方法及系统 - Google Patents
一种实现云原生负载均衡服务的方法及系统 Download PDFInfo
- Publication number
- CN112437136A CN112437136A CN202011260479.4A CN202011260479A CN112437136A CN 112437136 A CN112437136 A CN 112437136A CN 202011260479 A CN202011260479 A CN 202011260479A CN 112437136 A CN112437136 A CN 112437136A
- Authority
- CN
- China
- Prior art keywords
- service
- load balancing
- module
- controller
- events
- 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
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5061—Pools of addresses
-
- 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
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
-
- 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
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
Abstract
本发明公开了一种实现云原生负载均衡服务的方法及系统,属于云原生负载均衡服务技术领域,该方法当用户创建服务时,检测到服务是负载均衡类型,且为裸金属服务器时,对该服务进行管理并分配私有IP地址池;当检测到服务是负载均衡类型,且为裸金属服务器时,获取所述负载均衡IP并通过控制器发布该IP给其他节点。实现云原生负载均衡服务的方系统包括控制器、发言者和Kubernetes客户端三部分。本发明能够有效管理并分配IP地址池,保证容器云中容器服务访问的灵活性,保证容器应用的高可用性。
Description
技术领域
本发明涉及云原生负载均衡服务技术领域,具体地说是一种实现云原生负载均衡服务的方法及系统。
背景技术
容器技术是比较流行的提供微服务的PaaS技术,而Kubernetes是近期比较流行的容器编排管理技术,Kubernetes是一个全新的基于容器技术的分布式架构领先方案。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列功能,提高了大规模容器集群管理的便捷性和高可用性。但是如何在裸金属集群内部暴露服务一直没有现成的方案,导致实际应用中,云服务的容器应用不能更好的管理。
发明内容
本发明的技术任务是针对以上不足之处,提供一种实现云原生负载均衡服务的方法及系统,能够保证容器云中容器服务访问的灵活性,保证了容器应用的高可用性。
本发明解决其技术问题所采用的技术方案是:
一种实现云原生负载均衡服务的方法,当用户创建服务时,检测到服务是负载均衡类型,且为裸金属服务器时,对该服务进行管理并分配私有IP地址池;
当检测到服务是负载均衡类型,且为裸金属服务器时,获取所述负载均衡IP并通过控制器发布该IP给其他节点。
所述IP即网际互联协议,负载均衡IP又表示为loadbalancerIP。通过该方法能够有效管理并分配IP地址池,通过loadbalancerIP访问容器服务,保证云容器应用的可访问性。
进一步的,该方法中,监听API服务器的资源信息,包括服务、端点、配置和节点;监听到事件后放入工作队列,使用运行方法循环处理工作队列中的事件。
优选的,通过控制器监听所述服务,对服务的状态字段进行修改,更新服务状态,实现对该服务的管理。
进一步的,通过Kubernetes客户端连接API服务器,监听所述API服务器的资源信息。
优选的,所述通过控制器发布负载均衡IP给其他节点,支持arp、ndp和/或bgp协议。
arp:地址解析协议
ndp:邻居发现协议
bgp:边界网关协议
优选的,该方法应用于浪潮容器云,在浪潮容器云应用中,所述裸金属服务器备注为metallb.inspur.com/enabled:true。
本发明还要求保护一种实现云原生负载均衡服务的系统,包括控制器、发言者和Kubernetes客户端三部分,
控制器用于检测服务,当服务是负载均衡类型,且为裸金属服务器时,从IP池中分配负载均衡IP给这个服务,修改服务的状态字段;
发言用于检测服务,当服务是负载均衡类型,且为裸金属服务器时,获取负载均衡IP并使用bgp控制器或layer2控制器发布这个IP给其他发言者;
Kubernetes客户端用于连接API服务器,监听API服务器的资源信息,包括服务、端点、配置和节点;监听到事件后放入工作队列,使用运行方法循环处理工作队列中的事件。
优选的,所述控制器包括设置负载均衡模块、配置模块和修改状态模块;
所述发言包括设置负载均衡模块、配置模块、设置节点模块、BGP控制器、两层网络控制器、地址解析模块(arp)、邻居发现模块(ndp)和边界网关模块(bgp);
所述Kubernetes客户端包括服务管理模块、断电管理模块、配置管理模块、节点管理模块、工作队列和运行模块。
当用户创建负载均衡类型的服务时,控制器给服务器分配负载均衡IP,并更新服务状态;发言者监听服务状态后,按arp、ndp或bgp协议通知其他节点。
进一步的,该系统应用于浪潮容器云,在浪潮容器云应用中,所述裸金属服务器备注为metallb.inspur.com/enabled:true。
本发明还要求保护一种计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行上述的方法。
本发明的一种实现云原生负载均衡服务的方法及系统与现有技术相比,具有以下有益效果:
通过使用该方法及系统,可以有效管理分配IP地址池,通过负载均衡IP访问容器服务,能够有效提升容器云访问服务的灵活性,保证容器应用的高可用性。
附图说明
图1是本发明一个实施例提供的实现云原生负载均衡服务的方法原理图;
图2是本发明一个实施例提供的实现云原生负载均衡服务的系统架构图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明。
为了给浪潮容器云提供一个实现云原生负载均衡服务的方法,本发明实施例提供一种实现云原生负载均衡服务的方法,当用户创建服务时,检测到服务是负载均衡类型,且为裸金属服务器时,对该服务进行管理并分配私有IP地址池,并更新服务的状态。
该方法应用于浪潮容器云,在浪潮容器云应用中,所述裸金属服务器备注为metallb.inspur.com/enabled:true。
通过将该方法应用于浪潮容器云,有效管理并分配ip地址池,保证浪潮容器云中容器服务访问的灵活性,保证容器应用的高可用性。
发言者监听服务状态,当检测到服务是负载均衡类型,且备注为metallb.inspur.com/enabled:true时,获取所述负载均衡IP并通过bgp控制器或layer2控制器发布该IP给其他节点,支持arp、ndp和/或bgp协议。
该方法中,通过Kubernetes客户端连接apiserver,监听服务、端点、配置和节点等资源;监听到事件后放入一个工作队列,使用运行方法循环处理工作队列中的事件。
通过控制器监听所述服务,对服务的状态字段进行修改,更新服务状态,实现对该服务的管理。
arp:地址解析协议
ndp:邻居发现协议
bgp:边界网关协议
所述IP即网际互联协议,负载均衡IP又表示为loadbalancerIP。通过该方法能够有效管理并分配IP地址池,通过loadbalancerIP访问容器服务,保证云容器应用的可访问性。
参考图1所示,当用户创建负载均衡类型的服务时,控制器给service分配负载均衡IP,并更新服务的状态;
发言者监听服务状态后,按ARP或NDP或BGP协议通知其他节点;
Kubernetes客户端监听服务、端点、配置和节点等资源;监听到事件后放入一个工作队列,使用运行方法循环处理工作队列中的事件。
在该方法的实现中,
1、Service的解析:
1)、针对裸金属集群内部使用的loadbalancer,需要在service上就加上区分标志;
2)、改造internal/k8s/k8s.go文件,增加只处理具有metallb.inspur.com/enabled:true备注的service;
3)、Service样例:
2、Ip池配置样例:
通过该方法可以有效管理并分配ip地址池,通过loadbalancerIP访问容器服务,该方法应用于浪潮容器云,提升了浪潮容器云访问服务的灵活性,保证了浪潮云容器应用的可访问性。
本发明实施例还提供一种实现云原生负载均衡服务的系统,该系统应用于浪潮容器云,包括控制器、发言者和Kubernetes客户端三部分。
控制器用于检测服务,当服务是负载均衡类型,且备注为metallb.inspur.com/enabled:true时,从IP池中分配负载均衡IP给这个服务,修改服务的状态字段;
发言用于检测服务,当服务是负载均衡类型,且且备注为metallb.inspur.com/enabled:true时,获取负载均衡IP并使用bgp控制器或layer2控制器发布这个IP给其他发言者;
Kubernetes客户端用于连接apiserver,监听API服务器的资源信息,包括服务、端点、配置和节点;监听到事件后放入一个工作队列,使用运行方法循环处理工作队列中的事件。
具体的,参考附图2所示,所述控制器包括设置负载均衡模块、配置模块和修改状态模块,实现负载均衡IP的分配、服务配置以及服务状态的修改。
所述发言包括设置负载均衡模块、配置模块、设置节点模块、BGP控制器、两层网络控制器、地址解析模块(arp)、邻居发现模块(ndp)和边界网关模块(bgp),实现服务的监听及检测,以及协议通知其他节点。
所述Kubernetes客户端包括服务管理模块、断电管理模块、配置管理模块、节点管理模块、工作队列和运行模块,实现整个系统的管理和运行。
当用户创建负载均衡类型的服务时,控制器给服务器分配负载均衡IP,并更新服务状态;发言者监听服务状态后,按arp、ndp或bgp协议通知其他节点。
本发明实施例还提供了一种计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行本发明上述实施例中所述的实现云原生负载均衡服务的。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。
Claims (10)
1.一种实现云原生负载均衡服务的方法,其特征在于,当用户创建服务时,检测到服务是负载均衡类型,且为裸金属服务器时,对该服务进行管理并分配私有IP地址池;
当检测到服务是负载均衡类型,且为裸金属服务器时,获取所述负载均衡IP并通过控制器发布该IP给其他节点。
2.根据权利要求1所述的一种实现云原生负载均衡服务的方法,其特征在于,监听API服务器的资源信息,包括服务、端点、配置和节点;监听到事件后放入工作队列,使用运行方法循环处理工作队列中的事件。
3.根据权利要求1或2所述的一种实现云原生负载均衡服务的方法,其特征在于,通过控制器监听所述服务,对服务的状态字段进行修改。
4.根据权利要求3所述的一种实现云原生负载均衡服务的方法,其特征在于,通过Kubernetes客户端连接API服务器,监听所述API服务器的资源信息。
5.根据权利要求1所述的一种实现云原生负载均衡服务的方法,其特征在于,所述通过控制器发布负载均衡IP给其他节点,支持arp、ndp和/或bgp协议。
6.根据权利要求1所述的一种实现云原生负载均衡服务的方法,其特征在于,所述裸金属服务器备注为metallb.inspur.com/enabled:true。
7.一种实现云原生负载均衡服务的系统,其特征在于,包括控制器、发言者和Kubernetes客户端三部分,
控制器用于检测服务,当服务是负载均衡类型,且为裸金属服务器时,从IP池中分配负载均衡IP给这个服务,修改服务的状态字段;
发言用于检测服务,当服务是负载均衡类型,且为裸金属服务器时,获取负载均衡IP并发布这个IP给其他发言者;
Kubernetes客户端用于连接API服务器,监听API服务器的资源信息,包括服务、端点、配置和节点;监听到事件后放入工作队列,使用运行方法循环处理工作队列中的事件。
8.根据权利要求7所述的一种实现云原生负载均衡服务的系统,其特征在于,所述控制器包括设置负载均衡模块、配置模块和修改状态模块;
所述发言包括设置负载均衡模块、配置模块、设置节点模块、BGP控制器、两层网络控制器、地址解析模块、邻居发现模块和边界网关模块;
所述Kubernetes客户端包括服务管理模块、断电管理模块、配置管理模块、节点管理模块、工作队列和运行模块。
9.根据权利要求7所述的一种实现云原生负载均衡服务的系统,其特征在于,所述裸金属服务器备注为metallb.inspur.com/enabled:true。
10.计算机可读介质,其特征在于,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行权利要求1至6任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011260479.4A CN112437136A (zh) | 2020-11-12 | 2020-11-12 | 一种实现云原生负载均衡服务的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011260479.4A CN112437136A (zh) | 2020-11-12 | 2020-11-12 | 一种实现云原生负载均衡服务的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112437136A true CN112437136A (zh) | 2021-03-02 |
Family
ID=74701333
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011260479.4A Pending CN112437136A (zh) | 2020-11-12 | 2020-11-12 | 一种实现云原生负载均衡服务的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112437136A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113791954A (zh) * | 2021-09-17 | 2021-12-14 | 上海道客网络科技有限公司 | 容器裸金属服务器及其物理环境风险的应对方法、系统 |
CN113835836A (zh) * | 2021-09-23 | 2021-12-24 | 证通股份有限公司 | 动态发布容器服务的系统、方法、计算机设备及介质 |
CN114900526A (zh) * | 2022-04-28 | 2022-08-12 | 京东科技信息技术有限公司 | 负载均衡方法及系统、计算机存储介质、电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110868435A (zh) * | 2018-08-27 | 2020-03-06 | 中移(苏州)软件技术有限公司 | 一种裸金属服务器调度方法、装置及存储介质 |
CN111736827A (zh) * | 2020-08-25 | 2020-10-02 | 长沙慧码至一信息科技有限公司 | 一种云原生开发组件系统 |
-
2020
- 2020-11-12 CN CN202011260479.4A patent/CN112437136A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110868435A (zh) * | 2018-08-27 | 2020-03-06 | 中移(苏州)软件技术有限公司 | 一种裸金属服务器调度方法、装置及存储介质 |
CN111736827A (zh) * | 2020-08-25 | 2020-10-02 | 长沙慧码至一信息科技有限公司 | 一种云原生开发组件系统 |
Non-Patent Citations (4)
Title |
---|
云原生实验室: "Porter:面向裸金属环境的 Kubernetes 开源负载均衡器", 《HTTPS://CLOUD.TENCENT.COM/DEVELOPER/ARTICLE/1512604》 * |
云栖TECHDAY: "阿里云重磅发布云原生裸金属方案:裸金属+容器,解锁云计算的新方式", 《HTTPS://DEVELOPER.ALIYUN.COM/ARTICLE/768239?SPM=A2C6H.13813017.CONTENT3.1.46A84BE1A9SBCR》 * |
技术火炬手: "K8s 原理架构介绍(一)", 《HTTPS://BBS.HUAWEICLOUD.COM/BLOGS/116502》 * |
绿色记忆: "为裸金属K8S集群提供外部负载均衡器", 《HTTPS://BLOG.GMEM.CC/EXTERNAL-LB-FOR-ON-PREMISE-K8S-CLUSTER》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113791954A (zh) * | 2021-09-17 | 2021-12-14 | 上海道客网络科技有限公司 | 容器裸金属服务器及其物理环境风险的应对方法、系统 |
CN113791954B (zh) * | 2021-09-17 | 2023-09-22 | 上海道客网络科技有限公司 | 容器裸金属服务器及其物理环境风险的应对方法、系统 |
CN113835836A (zh) * | 2021-09-23 | 2021-12-24 | 证通股份有限公司 | 动态发布容器服务的系统、方法、计算机设备及介质 |
CN113835836B (zh) * | 2021-09-23 | 2024-01-30 | 证通股份有限公司 | 动态发布容器服务的系统、方法、计算机设备及介质 |
CN114900526A (zh) * | 2022-04-28 | 2022-08-12 | 京东科技信息技术有限公司 | 负载均衡方法及系统、计算机存储介质、电子设备 |
CN114900526B (zh) * | 2022-04-28 | 2024-04-16 | 京东科技信息技术有限公司 | 负载均衡方法及系统、计算机存储介质、电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112437136A (zh) | 一种实现云原生负载均衡服务的方法及系统 | |
CN108810013B (zh) | 一种基于容器的服务访问方法 | |
US11012408B2 (en) | Configuring virtual machine instances using one-to-one mappings | |
US9411648B2 (en) | Flexible resource configuration management for computing clusters | |
US20120124242A1 (en) | Server and method for testing pxe function of network interface card | |
CN107729176B (zh) | 一种配置文件管理系统的容灾方法及容灾系统 | |
EP2786251B1 (en) | Role instance reachability in data center | |
US20110282979A1 (en) | Network Address Assignment In A Data Center | |
CN106873970B (zh) | 一种操作系统的安装方法和装置 | |
CN108429824B (zh) | 一种地址分配方法及装置 | |
CN111343262B (zh) | 分布式集群登录方法、装置、设备和存储介质 | |
CN112187958A (zh) | 微服务注册、发现转发的方法及装置 | |
US8832215B2 (en) | Load-balancing in replication engine of directory server | |
CN110674095A (zh) | 一种ctdb集群扩展方法、装置、设备及可读存储介质 | |
US10237233B2 (en) | Allocating identifiers with minimal fragmentation | |
CN112087401A (zh) | 分布式存储中实现服务质量的方法和装置 | |
CN112351110A (zh) | 基于zookeeper的ID分配方法、装置 | |
CN114422350A (zh) | 一种公共云容器实例创建方法 | |
CN112040029B (zh) | Nat转换方法、装置、计算机设备及存储介质 | |
CN112054919B (zh) | 容器集群无状态下的id生成方法、装置、存储介质及系统 | |
US20160342401A1 (en) | Inter-instance communication in a containered clustered server environment | |
CN110636149B (zh) | 远程访问方法、装置、路由器及存储介质 | |
CN111198756A (zh) | 一种kubernetes集群的应用调度方法及装置 | |
US9753755B2 (en) | Addressing a workload partition | |
CN114785861A (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: 20210302 |