基于国产CPU和OS的分布式容器集群负载均衡方法与流程

文档序号:15466276发布日期:2018-09-18 19:23阅读:470来源:国知局

本发明涉及分布式容器集群服务技术,尤其涉及一种基于国产CPU和OS的分布式容器集群负载均衡方法。



背景技术:

随着国内企业信息化和政府电子政务的发展,大中型企业以及政府机构越来越依赖于信息系统展开其业务运作,软件应用在国产CPU和操作系统下由单一架构转变为微服务架构逐渐成为趋势,应用部署也将逐渐容器化,集群化。将容器应用部署到分布式集群时,其服务地址,即IP地址和端口, 是由分布式集群系统动态分配的,不同的服务之间可以在集群内部网络中通过内部IP地址访问,但是有些服务需要对外提供访问功能,这就需要分布式容器集群提供对外的服务暴露及负载均衡功能。

目前分布式容器集群服务的对外访问是通过绑定容器集群部署的物理主机的某个端口,由部署在物理主机上服务代理组件进行请求转发和负载均衡实现,由于分布式容器集群中服务可能有很多个,如果每个都绑定一个主机端口的话,主机需要开放外围一堆的端口进行服务调用,管理混乱,而且无法应用很多公司要求的防火墙规则。



技术实现要素:

为了解决以上技术问题,本发明提出了一种基于国产CPU和OS的分布式容器集群负载均衡方法。

本发明的技术方案是:

一种基于国产CPU和OS的分布式容器集群负载均衡方法,在分布式容器集群内部实现了专门的负载均衡服务,绑定固定的端口(如80),然后根据域名或者服务名向分布式容器集群内部服务ip转发请求,当有新的服务加入时,该方法自动建立域名和服务的对应关系,并自动生成相应的负载均衡器的配置信息,并将该配置信息更新到负载均衡器容器中,并自动reload负载均衡器,使配置生效。

本发明主要由服务负载配置模块、负载均衡控制器模块、负载均衡模块三个功能模块组成。服务负载配置模块接收交互服务组件传递的服务访问路径等配置信息,自动生成该服务的对外访问规则集;负载均衡控制模块通过交互服务组件,实时监听分布式容器集群的服务状态变化,获取服务的对外访问规则集,动态生成负载均衡配置文件,并控制负载均衡重启,使配置生效;负载均衡模块基于负载均衡软件实现,为分布式容器集群提供访问暴露及负载均衡功能;

服务负载配置模块接收用户的服务配置信息,配置生成外部访问连接到达集群服务的对外访问规则集,允许进入集群的请求被转发至集群内的服务。服务负载均衡模块生成的配置信息中包含配置一个loadbalancer或proxy server的所有信息,最重要的是它包含了一个匹配所有入站请求的规则列表,提供外部可访问的URL、负载均衡、SSL等,生成的配置信息会保存到分布式一致性k-v存储系统Etcd中;

负载均衡控制器模块与交互服务组件进行交互,实时的感知分布式容器集群中后端服务、容器组等变化,获取全部对外访问规则集的定义,基于对外访问规则集的定义,再结合负载均衡软件的配置模板,生成负载均衡软件所需的配置文件,然后更新反向代理负载均衡器,并刷新其配置,实现动态服务发现与更新该模块负载均衡软件的启动、停止、配置更新及重启;

负载均衡控制器模块在生成负载均衡软件所需的配置文件时,会实时监测运行负载均衡软件的容器所在主机的软硬件信息,结合配置文件模板,动态生成符合当前主机性能的负载均衡配置,如根据CPU核心数、主频等信息自动配置相应的工作进程数及连接线程数;根据内存信息,动态配置相应缓存大小

负载均衡模块基于负载均衡软件实现,提供L4、L7的服务均衡服务,提供访问控制,带宽控制,以及高效整合各种应用的能力,实现分布式容器集群的负载均衡及服务暴露,绑定固定的端口(如80),然后根据域名或者服务名向分布式容器集群内部服务ip转发请求;

本发明针对服务负载配置模块、负载均衡控制器模块、负载均衡模块三个功能模块实现容器化封装,分别制作相应的容器镜像。运行时只需通过分布式容器管理平台部署运行三个模块镜像的容器实例即可。

本发明的有益效果是

该方法支持在基于国产CPU和操作系统的分布式容器集群管理平台上运行,能够实现分布式容器集群的负载均衡功能;

该方法解决了基于国产CPU和操作系统的分布式容器集群管理平台实现服务外部访问时,主机需要开放外围一堆的端口进行服务调用,管理混乱的问题;

用户只需要配置服务的访问url路径及对应的集群服务及端口号,该方法就可以自动生成相应的负载均衡配置,提供对外服务均衡服务;

该方法实时监听分布式容器集群服务、容器组等对象的状态信息,当服务配置发生改变时(如服务对应的容器数量发生改变时),动态更新相应的负载均衡配置,无需用户再单独配置负载均衡,简单易用。

该方法提供L4、L7的服务均衡服务,提供访问控制,带宽控制,以及高效整合各种应用的能力,实现分布式容器集群的负载均衡及服务暴露。

附图说明

图1是软件架构示意图;

图2是负载均衡原理示意图。

具体实施方式

下面对本发明的内容进行更加详细的阐述:

本发明所述负载均衡方法,由服务负载配置模块、负载均衡控制器模块、负载均衡模块三个功能模块组成。服务负载配置模块接收交互服务组件传递的服务访问路径等配置信息,自动生成该服务的对外访问规则集;负载均衡控制模块通过交互服务组件,实时监听分布式容器集群的服务状态变化,获取服务的对外访问规则集,动态生成负载均衡配置文件,并控制负载均衡重启,使配置生效;负载均衡模块基于负载均衡软件实现,为分布式容器集群提供访问暴露及负载均衡功能。

本发明所述方法中,针对服务负载配置模块、负载均衡控制器模块、负载均衡模块三个功能模块实现容器化封装,分别制作相应的容器镜像。运行时只需通过分布式容器管理平台部署运行三个模块镜像的容器实例即可。

1 服务负载均衡配置模块实现服务对外访问规则集配置

通常,服务和容器组仅有集群内互相路由的IP。到流量到达边缘节点的时候将被丢弃或者转发。

对外访问规则集主要实现集群内所有服务的入口,通过一系列规则集合来允许外部的访问。对外访问规则集可以配置为提供服务外部访问的URL,负载均衡,SSL,提供基于名称的虚拟主机等。

服务负载配置模块,配置外部访问连接到达集群服务的对外访问规则集,允许进入集群的请求被转发至集群内的服务。服务负载均衡模块生成的配置信息中包含配置一个负载均衡的所有信息,最重要的是它包含了一个匹配所有入站请求的规则列表,提供外部可访问的URL、负载均衡、SSL等,生成的配置信息会保存到分布式一致性k-v存储系统Etcd中。

对外访问规则集使用http规则配置入站请求信息,每条http规则包含以下信息:

(1)、一个地址配置项(比如www.inspur-oa.com),该地址配置项对应的是负载均衡的虚拟域名,具体物理地址对应负载均衡所在节点的ip地址。

(2)、访问路径列表(比如:/oa),每个路径都关联一个后端(比如oaservice:8080)。后端是一个服务+端口的组合,对应该服务的对外访问入口。在负载均衡将流量转发到后端之前,所有的入站请求都要先匹配地址配置项和访问路径。对应url的流量被转发到它所匹配的后端。

服务负载配置模块对分布式容器集群状态进行监控,当有新的服务加入时,允许用户能把服务配置成外网能够访问的URL,生成该服务的对外访问规则集,用户通过访问配置的URL(API资源服务的形式,例如:www.inspur-oa.com/oa)进入和请求服务。

2负载均衡控制器实时更新负载均衡软件配置

负载均衡控制器模块,实现服务的负载均衡自动化配置,该模块控制负载均衡软件的启动、停止、配置更新及重启。负载均衡控制器模块与交互服务组件进行交互,实时的感知分布式容器集群中后端服务、容器组等变化,获取全部对外访问规则集的定义,基于对外访问规则集的定义,再结合负载均衡软件的配置模板,生成负载均衡软件所需的配置文件,然后更新反向代理负载均衡器,并刷新其配置,实现动态服务发现与更新该模块负载均衡软件的启动、停止、配置更新及重启。

负载均衡控制器模块在生成负载均衡软件所需的配置文件时,会实时监测运行负载均衡软件的容器所在主机的软硬件信息,结合配置文件模板,动态生成符合当前主机性能的负载均衡配置,如根据CPU核心数、主频等信息自动配置相应的工作进程数及连接线程数;根据内存信息,动态配置相应缓存大小。

3负载均衡模块实现负载均衡及服务暴露

负载均衡模块基于负载均衡软件实现,提供L4、L7的服务均衡服务,提供访问控制,带宽控制,以及高效整合各种应用的能力,实现分布式容器集群的负载均衡及服务暴露,绑定固定的端口(如80),然后根据域名或者服务名向分布式容器集群内部服务ip转发请求。

本发明所述方法需要通过分布式容器集群管理平台运行负载均衡服务,运行该服务模块需要的服务负载配置模块、负载均衡控制器模块、负载均衡模块三个容器。

1 分布式容器集群新添加服务的负载均衡自动化配置流程

1)用户使用GUI或者API接口通过交互服务组件在分布式容器集群中配置添加新的服务时,若该服务需要对外提供访问服务,可配置该服务的对外访问信息如对外访问地址,对应的的后端服务及访问端口等信息。

2)交互服务组件将相关负载均衡及对外访问配置信息传递给,服务负载配置模块,服务负载配置模块根据用户配置信息,生成该服务的对外访问规则集,生成的对外访问规则集信息会通过交互服务组件保存到分布式一致性k-v存储系统Etcd中。

3)负载均衡控制器模块与交互服务组件进行交互,实时的感知分布式容器集群中后端服务、容器组等变化,当检测有新的服务加入或者有服务配置更新时,会获取全部对外访问规则集的定义,基于对外访问规则集的定义,再结合负载均衡软件的配置模板,生成负载均衡软件所需的配置文件。

4)负载均衡控制器模块将生成的新的负载均衡软件配置文件拷贝到负载均衡器容器的配置文件目录下,更新配置并重启负载均衡软件。

5)负载均衡器模块重启后,读取新的配置文件,为新的服务配置对外访问URL、负载均衡、SSL等功能,实现服务的负载均衡及对外访问等功能。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1