CN114039982A - Node服务器、基于Node服务器实现多Master负载均衡的方法和系统 - Google Patents
Node服务器、基于Node服务器实现多Master负载均衡的方法和系统 Download PDFInfo
- Publication number
- CN114039982A CN114039982A CN202111157716.9A CN202111157716A CN114039982A CN 114039982 A CN114039982 A CN 114039982A CN 202111157716 A CN202111157716 A CN 202111157716A CN 114039982 A CN114039982 A CN 114039982A
- Authority
- CN
- China
- Prior art keywords
- module
- ipvs
- server
- master server
- master
- 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.)
- Granted
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
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- 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/1034—Reaction to server failures by a load balancer
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及Node服务器、基于Node服务器实现多Master负载均衡的方法和系统,其中,Node服务器包括kubelet模块、Notify模块、IPVS模块;该系统包括:Master服务器、Node服务器、etcd存储;该方法包括:通过Notify模块感知Master服务器的状态信息变化,并将Master服务器的变动信息发送给IPVS模块,得到刷新的IPVS转发规则表;通过IPVS模块对Kubelet模块与Master服务器之间集群数据流量的负载进行均衡访问。通过Kubelet模块把Node服务器本地系统的状态与本地容器信息上报给Master服务器,并接收和执行来自Master服务器的管控指令。通过本申请,既不需要额外采购昂贵的第三方负载均衡硬件,又能真正实现多Master的高可用性与扩展性。
Description
技术领域
本申请涉及通信技术领域,特别是涉及Node服务器、基于Node服务器实现多Master负载均衡的方法和系统。
背景技术
Kubernetes是一个开源的容器编排引擎,其支持自动化部署、大规模可伸缩、应用容器化管理。kubernetes集群中有Master服务器和Node服务器,其中Node是负责容器运行的主机服务器,而Master则是负责管控Node服务器。Node会时刻去主动访问Master,一旦Node与Master失联时间过长,集群就可能存在各种异常问题,因此Master的高可用性与扩展性就显得尤为重要。通常情况下,kubernetes集群会部署多个Master服务器,并对这些多个Master进行负载均衡。
在相关技术中,为了对kubernetes集群会部署的多个Master服务器进行负载均衡,第一种方法是通过安装nginx或haproxy等第三方负载均衡软件来给多个master服务器配置负载均衡。当一个master宕机的时候,第三方负载均衡软件会将宕机的master摘除,node与master通讯的时候会去自动访问剩余正常的master。然而这种方法虽然解决了多个master的负载均衡,但是nginx或haproxy等第三方负载均衡软件自身的可用性并没有解决,例如nginx宕机了,master也就无法访问了,存在单点故障问题。第二种方法是在master服务器操作系统本地安装keepalived或heartbeat等的主备切换软件,keepalived软件负责给多个nginx或haproxy等第三方负载均衡软件提供高可用主备切换服务。keepalived切换软件会根据用户配置在多个nginx中识别出主nginx和备nginx。当主nginx宕机的时候,keepalived软件会将服务切换到备nginx上,这样node就会去自动通过剩余正常的nginx去访问master。然而,第二种方法虽然解决了nginx宕机之后master无法访问的问题,但是keepalived或heartbeat软件只能做主备切换,却无法给nginx自身提供负载均衡。一旦kubernetes集群规模很大的时候,大量的node来访问nginx,而只有主nginx在单机提供服务,这就会导致nginx的性能瓶颈问题。第三种方法是在master服务器操作系统本地安装keepalived或heartbeat这样的主备切换软件,keepalived切换软件会根据用户配置,在多master中识别出主master和备master。当主master宕机的时候,keepalived软件会将服务切换到备master上,node与master通讯的时候会去自动访问剩余正常的master。然而第三种方法和第二种方法有着类似的问题,当kubernetes集群规模大的时候,大量的node来访问master,而只有主master在单机提供服务,这就会导致master的性能瓶颈问题。第四种方法是购买第三方负载均衡硬件设备,部署在外部,来给多个master服务器配置负载均衡。当一个master宕机的时候,第三方负载均衡硬件会将宕机的master摘除,node与master通讯的时候会去自动访问剩余正常的master。但是第四种方法需要企业额外采购第三方负载均衡硬件,尤其当kubernetes集群规模大的时候,还需要再次向负载均衡设备厂商购买扩容许可,采购成本比较高。此外,硬件扩展灵活性也相对较弱,扩容往往需要断电和切换还会造成业务中断的风险,IT成本相对也较高。
目前针对相关技术中,在对kubernetes集群的多Master服务器进行负载均衡时,存在的单点故障问题,或者由于难以横向扩展导致的性能瓶颈问题,还或者购买硬件设备带来的成本高的问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了Node服务器、基于Node服务器实现多Master负载均衡的方法和系统,以至少解决相关技术中在对kubernetes集群的多Master服务器进行负载均衡时,存在的单点故障问题,或者由于难以横向扩展导致的性能瓶颈问题,还或者购买硬件设备带来的成本高的问题。
第一方面,本申请实施例提供了一种用于实现多Master负载均衡的Node服务器,其特征在于,所述Node服务器包括kubelet模块、Notify模块、IPVS模块;
所述Kubelet模块,用于把所述Node服务器本地系统的状态与本地容器信息上报给Master服务器,并接收和执行来自所述Master服务器的管控指令;
所述Notify模块,用于感知Master服务器的状态信息变化,并将所述Master服务器的变动信息发送给所述IPVS模块,得到刷新的IPVS转发规则表;
所述IPVS模块,用于对所述Kubelet模块与所述Master服务器之间集群数据流量的负载进行均衡访问。
在其中一些实施例中,所述Notify模块感知Master服务器的状态信息变化,并将所述Master服务器的变动信息发送给所述IPVS模块包括:
所述Notify模块读取Master服务器的状态信息,并对所述状态信息进行格式转换,转变成转发规则表数据,将所述转发规则表数据写入到本地操作系统的所述IPVS模块中,得到刷新的IPVS转发规则表。
在其中一些实施例中,所述Notify模块通过定时器对所述IPVS模块中的转发规则表进行周期性刷新。
在其中一些实施例中,所述Kubelet模块把所述Node服务器本地系统的状态与本地容器信息上报给Master服务器包括:所述kubelet模块读取本地容器信息,并通过所述IPVS模块传送给所述Master服务器,完成本地容器信息的上报。
第二方面,本申请实施例提供了一种基于Node服务器实现多Master负载均衡的系统,其特征在于,所述系统包括:Master服务器、权利要求1-4任一项所述的Node服务器、etcd存储;
所述Master服务器,用于管控所述Node服务器;
所述etcd存储,用于存储后端的状态信息。
第三方面,本申请实施例提供了一种基于Node服务器实现多Master负载均衡的方法,其特征在于,所述方法包括:
通过Notify模块感知Master服务器的状态信息变化,并将所述Master服务器的变动信息发送给IPVS模块,得到刷新的IPVS转发规则表;
通过IPVS模块对Kubelet模块与所述Master服务器之间集群数据流量的负载进行均衡访问。
通过Kubelet模块把Node服务器本地系统的状态与本地容器信息上报给所述Master服务器,并接收和执行来自所述Master服务器的管控指令。
在其中一些实施例中,通过Notify模块感知Master服务器的状态信息变化,并将所述Master服务器的变动信息发送给IPVS模块包括:
所述Notify模块读取所述Master服务器的状态信息,并对所述状态信息进行格式转换,转变成转发规则表数据,将所述转发规则表数据写入到本地操作系统的所述IPVS模块中,得到刷新的IPVS转发规则表。
在其中一些实施例中,所述通过Kubelet模块把Node服务器本地系统的状态与本地容器信息上报给所述Master服务器包括:
所述kubelet模块读取本地容器信息,并通过所述IPVS模块传送给所述Master服务器,完成本地容器信息的上报。
在其中一些实施例中,所述通过IPVS模块对Kubelet模块与所述Master服务器之间集群数据流量的负载进行均衡访问包括:
所述kubelet模块向所述IPVS模块发起访问所述Master服务器的注册请求,所述IPVS模块在收到所述kubelet模块的请求之后,所述IPVS模块按照刷新的IPVS转发规则表将数据负载均衡地转发给所述Master服务器。
在其中一些实施例中,在通过Notify模块感知Master服务器的状态信息变化之前,所述方法包括:
将所述Notify模块安装到所述Node服务器上,并为所述Node服务器预置目标etcd存储的IP地址、端口号和SSL证书。
本申请实施例提供了一种用于实现多Master负载均衡的Node服务器,其中,Node服务器包括kubelet模块、Notify模块、IPVS模块;具体地,Kubelet模块,用于把Node服务器本地系统的状态与本地容器信息上报给Master服务器,并接收和执行来自Master服务器的管控指令;Notify模块,用于感知Master服务器的状态信息变化,并将Master服务器的变动信息发送给IPVS模块,得到刷新的IPVS转发规则表;IPVS模块,用于对Kubelet模块与Master服务器之间集群数据流量的负载进行均衡访问。
本申请实施例还提供了一种包含上述Node服务器的系统,该系统还包括:Master服务器和etcd存储;具体地,Master服务器,用于管控Node服务器;etcd存储,用于存储后端的状态信息。
相比于相关技术,本申请实施例提供的一种基于Node服务器实现多Master负载均衡的方法,通过Notify模块感知Master服务器的状态信息变化,并将Master服务器的变动信息发送给IPVS模块,得到刷新的IPVS转发规则表;通过IPVS模块对Kubelet模块与Master服务器之间集群数据流量的负载进行均衡访问。通过Kubelet模块把Node服务器本地系统的状态与本地容器信息上报给Master服务器,并接收和执行来自Master服务器的管控指令。
相比于现有技术中通过第三方代理对kubernetes master进行负载均衡的方法,本申请提出了一种创新思路,改变为由node节点本地主动转发到kubernetes master进行负载均衡。本申请基于node节点本地操作系统内核的IPVS模块,通过自研的Notify模块从etcd存储中同步kubernetes集群中master服务器的状态信息变化,刷新IPVS本地转发规则表,实现本地主动转发。可以低成本地实现多kubernetes Master的高可用性与扩展灵活性。解决了在对kubernetes集群的多Master服务器进行负载均衡时,存在的单点故障问题,或者由于难以横向扩展导致的性能瓶颈问题,或者购买硬件设备带来的成本高的问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的Kubernetes集群的系统结构图;
图2是根据本申请实施例的基于Node服务器实现多Master负载均衡的方法的流程图;
图3是根据本申请实施例的Notify模块逻辑组成结构示意图;
图4是根据本申请实施例的数据转换流程示意图;
图5是根据本申请实施例的电子设备的内部结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指大于或者等于两个。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本申请实施例提供了一种用于实现多Master负载均衡的Node服务器,其中,该Node服务器包括kubelet模块、Notify模块、IPVS模块;
图1是根据本申请实施例的Kubernetes集群的系统结构图,如图1所示,容器模块主要负责容器镜像加载、应用程序容器的启动与运行;
Kubelet模块主要负责把Node服务器本地系统的状态与本地容器信息上报给Master服务器,以及接收和执行来自Master服务器的管控指令。优选的,kubelet模块会读取本地容器信息,并通过IPVS模块传送给Master服务器,完成本地容器信息的上报;
IPVS模块主要是用于网络流量的负载均衡,本实施例中主要作用在Node服务器上的Kubelet模块与Master服务器之间的集群数据流量的负载均衡访问;
Notify模块用来感知etcd存储中的Master服务器的状态信息变化,并将Master服务器的变动信息发动给Node服务器的IPVS模块,使得Node服务器可以通过本地的IPVS代理访问到Master服务器。优选的,本实施例中,Notify模块会读取Master服务器的状态信息,并对状态信息进行格式转换,转变成转发规则表数据,将转发规则表数据写入到本地操作系统的IPVS模块中,得到刷新的IPVS转发规则表。
在其中一些实施例中,Notify模块会通过定时器对IPVS模块中的转发规则表进行周期性刷新。
通过上述的Node服务器可以通过本地的IPVS代理访问到Master服务器,实现本地主动转发,低成本地实现了多kubernetes Master的高可用性与扩展灵活性。
本申请实施例提供了一种基于Node服务器实现多Master负载均衡的系统,其中,该系统包括:Node服务器、etcd存储、Master服务器:
具体地,Master服务器用于管控Node服务器;etcd存储,用于存储后端的状态信息,例如Master服务器的状态信息。需要说明的是,本实施例中的Node服务器可以参考上述一种用于实现多Master负载均衡的Node服务器中的实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
通过上述系统,解决了在对kubernetes集群的多Master服务器进行负载均衡时,存在的单点故障问题,或者由于难以横向扩展导致的性能瓶颈问题,或者购买硬件设备带来的成本高的问题。既不需要额外采购昂贵的第三方负载均衡硬件,又能真正实现多Master的高可用性与扩展性。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
本申请实施例还提供了一种基于Node服务器实现多Master负载均衡的方法,图2是根据本申请实施例的基于Node服务器实现多Master负载均衡的方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,通过Notify模块感知Master服务器的状态信息变化,并将Master服务器的变动信息发送给IPVS模块,得到刷新的IPVS转发规则表;
优选的,在通过Notify模块感知Master服务器的状态信息变化之前,需要将Notify模块安装到Node服务器上,并为Node服务器预置目标etcd存储的IP地址、端口号和SSL证书。提前设定好etcd存储与Node服务器配置的对应关系,能更精准的识别数据来源和去向,以达到最终想要的效果。此外,还需要为所有的Master服务器配置目标etcd存储的IP地址、端口号和SSL证书,并为所有的Master服务器配置一个用于负载均衡的集群虚拟IP地址和端口,例如,192.168.10.33:6080等。同样地,提前设定好etcd存储与Master服务器配置的对应关系,能更精准的识别数据来源和去向,以达到最终想要的效果。
进一步地,Notify模块会感知Master服务器的状态信息变化,并将Master服务器的变动信息发送给IPVS模块;具体地,Notify模块读取etcd存储中的Master服务器的状态信息,并对状态信息进行格式转换,转变成转发规则表数据,将转发规则表数据写入到本地操作系统的IPVS模块中,得到刷新的IPVS转发规则表。需要说明的是,Master服务器会将当前的状态信息,例如IP地址、主机名、服务端口号和健康状态等信息,存储到预先设定好的etcd存储中。
本实施例中,Notify模块由数据读取、格式转换、数据写入和定时器四个逻辑部分组成,图3是根据本申请实施例的Notify模块逻辑组成结构示意图,如图3所示,Notify模块中的数据读取组件负责读取etcd存储的Master服务器的状态信息,同时负责把这些状态信息输送给格式转换组件;格式转换组件获取来自数据读取组件的原始数据,并将原始的状态信息数据转变成转发规则表这样的标准数据;最后,数据写入组件将转发规则表数据写入到本地操作系统的IPVS模块中,得到刷新的IPVS转发规则表。需要说明的是,Notify模块中“数据读取→格式转换→数据写入”这一套流程是通过定时器进行周期性执行的。例如,每隔3分钟执行一次流程,那么定时器运行的时候从0秒开始计时,每隔1秒加1,当时钟运行了180秒之后,触发执行1次流程。然后,定时器清0,继续开始计时,周而复始的执行。实现对Node服务器本地的IPVS模块的转发规则表进行周期性刷新。
通过本实施例的Notify模块可以将Master服务器中的源数据转化为目标数据。具体地,图4是根据本申请实施例的数据转换流程示意图,如图4所示,源数据为Master服务器的IP地址、主机名、服务端口号、健康状态等信息。这些源数据在Master服务器运行之后就自动存在了,同时,Master服务器会将当前的状态信息存储到etcd存储中。接着,Notify模块从etcd存储中读取上述的状态信息,并识别Master服务器中变动的信息,按照Master信息的变动,如增删情况,刷新到Node服务器的IPVS模块的转发规则表中,得到目标数据IPVS的转发规则表。该转发规则表可以用在Kubernetes集群中需要高可用的负载均衡的场景中。
需要说明的是,本实施例中的转发规则表中主要存储的是网络五元组数据,即源IP地址、源端口、目的IP地址、目的端口和传输层协议。例如:192.168.1.1 10000 TCP121.14.88.76 80就构成了一个五元组。其意义是,一个IP地址为192.168.1.1的终端通过端口10000,利用TCP协议,和IP地址为121.14.88.76,端口为80的终端进行连接。表1是根据本申请实施例的转发规则表样例,如下表1所示。
表1
源IP地址 | 源端口 | 目标IP地址 | 目标端口 | 转发协议 | 会话保持 |
192.168.100.101 | 17881 | 192.168.100.189 | 80 | TCP | yes |
192.168.37.88 | 30266 | 172.16.19.201 | 53 | UDP | No |
192.168.100.115 | 20993 | 192.168.200.22 | 80 | TCP | No |
192.168.50.79 | 30109 | 192.168.100.136 | 80 | TCP | yes |
步骤S202,通过IPVS模块对Kubelet模块与Master服务器之间集群数据流量的负载进行均衡访问;
优选的,本实施例通过IPVS模块对Kubelet模块与Master服务器之间集群数据流量的负载进行均衡访问,实现网络流量的负载均衡。具体地,kubelet模块会向IPVS模块发起访问Master服务器的注册请求,IPVS模块在收到kubelet模块的请求之后,IPVS模块会按照刷新的转发规则表将数据负载均衡地转发给Master服务器,实现Kubelet模块与Master服务器之间集群数据流量的负载均衡访问,并完成kubelet模块向Master服务器的注册;
步骤S203,通过Kubelet模块把Node服务器本地系统的状态与本地容器信息上报给Master服务器,并接收和执行来自Master服务器的管控指令。
本实施例中,在通过步骤S202使得Kubelet模块向Master服务器注册成功后,Node服务器就可以正常的被Master服务器管理了。
进一步地,kubelet模块会从容器模块中读取本地容器信息和Node服务器本地系统的状态,并通过IPVS模块传送给Master服务器,完成本地容器信息的上报,还会接收和执行来自Master服务器的管控指令。
通过上述步骤S201至步骤S203,本申请实施例通过启用kubernetes Node节点本地操作系统的IPVS模块功能,并配置上负载均衡转发规则,将所有发送给本地虚拟网卡的数据包转发给kubernetes集群的所有Master服务器的IP地址。将传统的通过第三方代理对kubernetes Master进行负载均衡的方法,改变为本地主动转发到kubernetes Master的新思路。kubernetes集群的所有Node都会去主动访问Master的IP地址来进行通信。解决了在对kubernetes集群的多Master服务器进行负载均衡时,存在的单点故障问题,或者由于难以横向扩展导致的性能瓶颈问题,或者购买硬件设备带来的成本高的问题。既不需要额外采购昂贵的第三方负载均衡硬件,又能真正实现多Master的高可用性与扩展性。
在其中一些实施例中,Node服务器正常访问Master服务器时,会优先将数据包发送到Node服务器本地虚拟网卡上的IP地址,IPVS模块就会直接处理所述数据包,并按照IPVS模块的转发规则表将数据包转发到多个Master服务器上;
在其中一些实施例中,在Master服务器宕机场景下,Notify模块感知到etcd存储中Master服务器状态信息变为失效状态,会通知Node服务器变更IPVS模块的转发规则表,这样Node服务器本地的IPVS转发规则将自动摘除掉宕机的Master服务器的IP地址,Node服务器通过本地IPVS可以访问到始终正常的Master。
在其中一些实施例中,在kubernetes集群中删除Master服务器的场景下,etcd存储中也会自动删除这条Master记录,Notify模块感知到etcd存储中Master服务器状态信息的删减情况,会通知Node服务器变更IPVS模块的转发规则表,这样Node服务器的IPVS转发规则将自动摘除掉被删除的Master服务器的IP地址,Node服务器通过本地IPVS模块可以访问到始终正常的Master服务器。
在其中一些实施例中,在kubernetes集群中新增Master服务器的场景下,etcd存储中也会自动增加这条新Master记录,Notify模块感知到etcd存储中Master服务器状态信息的增加情况,会通知Node服务器变更IPVS模块的转发规则表,Node服务器的IPVS模块会自动新增一条Master服务器IP转发规则。Node服务器通过本地IPVS就会访问到所有正常的Master服务器,其中包括新增的Master服务器。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
另外,结合上述实施例中的基于Node服务器实现多Master负载均衡的方法,本申请实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种基于Node服务器实现多Master负载均衡的方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于Node服务器实现多Master负载均衡的方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
在一个实施例中,图5是根据本申请实施例的电子设备的内部结构示意图,如图5所示,提供了一种电子设备,该电子设备可以是服务器,其内部结构图可以如图5所示。该电子设备包括通过内部总线连接的处理器、网络接口、内存储器和非易失性存储器,其中,该非易失性存储器存储有操作系统、计算机程序和数据库。处理器用于提供计算和控制能力,网络接口用于与外部的终端通过网络连接通信,内存储器用于为操作系统和计算机程序的运行提供环境,计算机程序被处理器执行时以实现一种基于Node服务器实现多Master负载均衡的方法,数据库用于存储数据。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本领域的技术人员应该明白,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种用于实现多Master负载均衡的Node服务器,其特征在于,所述Node服务器包括kubelet模块、Notify模块、IPVS模块;
所述Kubelet模块,用于把所述Node服务器本地系统的状态与本地容器信息上报给Master服务器,并接收和执行来自所述Master服务器的管控指令;
所述Notify模块,用于感知Master服务器的状态信息变化,并将所述Master服务器的变动信息发送给所述IPVS模块,得到刷新的IPVS转发规则表;
所述IPVS模块,用于对所述Kubelet模块与所述Master服务器之间集群数据流量的负载进行均衡访问。
2.根据权利要求1所述的Node服务器,其特征在于,所述Notify模块感知Master服务器的状态信息变化,并将所述Master服务器的变动信息发送给所述IPVS模块包括:
所述Notify模块读取所述Master服务器的状态信息,并对所述状态信息进行格式转换,转变成转发规则表数据,将所述转发规则表数据写入到本地操作系统的所述IPVS模块中,得到刷新的IPVS转发规则表。
3.根据权利要求1所述的Node服务器,其特征在于,所述Notify模块通过定时器对所述IPVS模块中的转发规则表进行周期性刷新。
4.根据权利要求1所述的Node服务器,其特征在于,所述Kubelet模块把所述Node服务器本地系统的状态与本地容器信息上报给Master服务器包括:
所述kubelet模块读取本地容器信息,并通过所述IPVS模块传送给所述Master服务器,完成本地容器信息的上报。
5.一种基于Node服务器实现多Master负载均衡的系统,其特征在于,所述系统包括:Master服务器、权利要求1-4任一项所述的Node服务器、etcd存储;
所述Master服务器,用于管控所述Node服务器;
所述etcd存储,用于存储后端的状态信息。
6.一种基于Node服务器实现多Master负载均衡的方法,其特征在于,所述方法包括:
通过Notify模块感知Master服务器的状态信息变化,并将所述Master服务器的变动信息发送给IPVS模块,得到刷新的IPVS转发规则表;
通过IPVS模块对Kubelet模块与所述Master服务器之间集群数据流量的负载进行均衡访问;
通过Kubelet模块把Node服务器本地系统的状态与本地容器信息上报给所述Master服务器,并接收和执行来自所述Master服务器的管控指令。
7.根据权利要求6所述的方法,其特征在于,通过Notify模块感知Master服务器的状态信息变化,并将所述Master服务器的变动信息发送给IPVS模块包括:
所述Notify模块读取所述Master服务器的状态信息,并对所述状态信息进行格式转换,转变成转发规则表数据,将所述转发规则表数据写入到本地操作系统的所述IPVS模块中,得到刷新的IPVS转发规则表。
8.根据权利要求6所述的方法,其特征在于,所述通过Kubelet模块把Node服务器本地系统的状态与本地容器信息上报给所述Master服务器包括:
所述kubelet模块读取本地容器信息,并通过所述IPVS模块传送给所述Master服务器,完成本地容器信息的上报。
9.根据权利要求6所述的方法,其特征在于,所述通过IPVS模块对Kubelet模块与所述Master服务器之间集群数据流量的负载进行均衡访问包括:
所述kubelet模块向所述IPVS模块发起访问所述Master服务器的注册请求,所述IPVS模块在收到所述kubelet模块的请求之后,所述IPVS模块按照刷新的IPVS转发规则表将数据负载均衡地转发给所述Master服务器。
10.根据权利要求6所述的方法,其特征在于,在通过Notify模块感知Master服务器的状态信息变化之前,所述方法包括:
将所述Notify模块安装到所述Node服务器上,并为所述Node服务器预置目标etcd存储的IP地址、端口号和SSL证书。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111157716.9A CN114039982B (zh) | 2021-09-28 | 2021-09-28 | Node服务器、基于Node服务器实现多Master负载均衡的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111157716.9A CN114039982B (zh) | 2021-09-28 | 2021-09-28 | Node服务器、基于Node服务器实现多Master负载均衡的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114039982A true CN114039982A (zh) | 2022-02-11 |
CN114039982B CN114039982B (zh) | 2023-04-07 |
Family
ID=80134578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111157716.9A Active CN114039982B (zh) | 2021-09-28 | 2021-09-28 | Node服务器、基于Node服务器实现多Master负载均衡的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114039982B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109842651A (zh) * | 2017-11-27 | 2019-06-04 | 中国移动通信集团上海有限公司 | 一种业务不间断的负载均衡方法和系统 |
CN111176783A (zh) * | 2019-11-20 | 2020-05-19 | 航天信息股份有限公司 | 容器治理平台的高可用方法、装置及电子设备 |
CN112104486A (zh) * | 2020-08-31 | 2020-12-18 | 中国—东盟信息港股份有限公司 | 一种基于Kubernetes容器的网络端点切片的方法及其系统 |
CN112130965A (zh) * | 2020-10-26 | 2020-12-25 | 腾讯科技(深圳)有限公司 | 部署分布式容器编排管理集群的方法、设备及存储介质 |
US20200412651A1 (en) * | 2019-06-27 | 2020-12-31 | Citrix Systems, Inc. | Securing communications between services in a cluster using load balancing systems and methods |
CN112714018A (zh) * | 2020-12-28 | 2021-04-27 | 上海领健信息技术有限公司 | 基于网关的ElasticSearch搜索服务方法、系统、介质及终端 |
CN112764886A (zh) * | 2021-01-29 | 2021-05-07 | 上海弘积信息科技有限公司 | 一种基于Kubernetes平台的负载均衡控制器 |
CN112860427A (zh) * | 2019-11-27 | 2021-05-28 | 北京金山云网络技术有限公司 | 容器集群的负载均衡方法、装置与容器集群 |
CN113037881A (zh) * | 2021-02-05 | 2021-06-25 | 中国—东盟信息港股份有限公司 | 一种基于Kubernetes的云原生服务不间断的IP替换方法 |
-
2021
- 2021-09-28 CN CN202111157716.9A patent/CN114039982B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109842651A (zh) * | 2017-11-27 | 2019-06-04 | 中国移动通信集团上海有限公司 | 一种业务不间断的负载均衡方法和系统 |
US20200412651A1 (en) * | 2019-06-27 | 2020-12-31 | Citrix Systems, Inc. | Securing communications between services in a cluster using load balancing systems and methods |
CN111176783A (zh) * | 2019-11-20 | 2020-05-19 | 航天信息股份有限公司 | 容器治理平台的高可用方法、装置及电子设备 |
CN112860427A (zh) * | 2019-11-27 | 2021-05-28 | 北京金山云网络技术有限公司 | 容器集群的负载均衡方法、装置与容器集群 |
CN112104486A (zh) * | 2020-08-31 | 2020-12-18 | 中国—东盟信息港股份有限公司 | 一种基于Kubernetes容器的网络端点切片的方法及其系统 |
CN112130965A (zh) * | 2020-10-26 | 2020-12-25 | 腾讯科技(深圳)有限公司 | 部署分布式容器编排管理集群的方法、设备及存储介质 |
CN112714018A (zh) * | 2020-12-28 | 2021-04-27 | 上海领健信息技术有限公司 | 基于网关的ElasticSearch搜索服务方法、系统、介质及终端 |
CN112764886A (zh) * | 2021-01-29 | 2021-05-07 | 上海弘积信息科技有限公司 | 一种基于Kubernetes平台的负载均衡控制器 |
CN113037881A (zh) * | 2021-02-05 | 2021-06-25 | 中国—东盟信息港股份有限公司 | 一种基于Kubernetes的云原生服务不间断的IP替换方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114039982B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2923272B1 (en) | Distributed caching cluster management | |
CN103207841B (zh) | 基于键值对缓存的数据读写方法及装置 | |
US9262323B1 (en) | Replication in distributed caching cluster | |
CN113572831B (zh) | Kubernetes集群间的通信方法、计算机设备及介质 | |
JP6165978B2 (ja) | リースエージェントシステム間での制作者システムの分配 | |
US10083098B1 (en) | Network function virtualization (NFV) virtual network function (VNF) crash recovery | |
CN111147274B (zh) | 为集群解决方案创建高度可用的仲裁集的系统和方法 | |
WO2019100266A1 (zh) | 移动边缘主机服务通知方法和装置 | |
CN110855488B (zh) | 一种虚拟机接入方法及装置 | |
US9760370B2 (en) | Load balancing using predictable state partitioning | |
WO2023016415A1 (zh) | 运行容器组的节点,容器组的管理系统和方法 | |
US20190199679A1 (en) | Dynamically defining encryption spaces across multiple data centers | |
US20240089352A1 (en) | Udp message distribution method, udp message distribution apparatus, electronic device and computer readable storage medium | |
CN114039982B (zh) | Node服务器、基于Node服务器实现多Master负载均衡的方法和系统 | |
CN113608865A (zh) | 一种流量控制方法、装置、系统、电子设备及存储介质 | |
US11349718B2 (en) | Capacity bursting using a remote control plane | |
CN115333993B (zh) | 容器环境下自定义容器组路由的方法、设备及存储介质 | |
US20220342726A1 (en) | Coordinating and processing events across multiple system managers | |
CN115826845A (zh) | 存储资源的分配方法和装置、存储介质、电子装置 | |
US10476947B1 (en) | Methods for managing web applications and devices thereof | |
US20230254270A1 (en) | Computer-readable recording medium storing program, information processing method, and information processing system | |
CN112968809B (zh) | 一种系统稳定性和兼容性的测试方法和装置 | |
US11824943B1 (en) | Managed connectivity between cloud service edge locations used for latency-sensitive distributed applications | |
CN117395316B (zh) | 出口流量管理方法、设备及可读存储介质 | |
US11853560B2 (en) | Conditional role decision based on source environments |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |