[发明专利]一种用于K8S微服务框架的自适应带权轮询负载均衡系统在审
申请号: | 202111293069.4 | 申请日: | 2021-11-03 |
公开(公告)号: | CN113946450A | 公开(公告)日: | 2022-01-18 |
发明(设计)人: | 沃天宇;谢一凡 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/54;G06F9/451 |
代理公司: | 北京中创阳光知识产权代理有限责任公司 11003 | 代理人: | 尹振启 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 k8s 微服 框架 自适应 带权轮询 负载 均衡 系统 | ||
1.一种用于K8S微服务框架的自适应带权轮询负载均衡系统,其特征在于:包括从下到上的服务负载层,服务控制层,用户交互层三层结构,所述服务负载层针对微服务的每个服务实例,提供从服务控制层获取到的权重信息,并使用带权轮询算法访问下游服务;所述服务控制层依据监控模块所收集到的服务负载层的监控数据,并使用算法策略,计算出每组微服务在调用下游服务的时候应该采用的权重配比,并将配比下发至微服务实例中;所述用户交互层提供web交互界面。
2.如权利要求1所述的一种用于K8S微服务框架的自适应带权轮询负载均衡系统,其特征在于:所述服务负载层的具体实现方式为:以设置于物理机中的上游容器访问下游实例中的容器服务,服务拥有多个实例,K8S框架在上游容器通过Service IP访问下游服务时,该IP地址被所述上游容器所在物理机拦截,并根据K8S配置的Iptables路由策略表转换为实际的实例IP;该方案需要完成两部分工作,第一部分工作是控制服务流出的流量流向服务代理。这部分可以通过Linux提供的Iptables工具来实现,第二部分工作是服务代理将流量发往下游的特定实例,选择云原生网络代理Envoy实现。
3.如权利要求2所述的一种用于K8S微服务框架的自适应带权轮询负载均衡系统,其特征在于:所述服务控制层由监控模块和决策模块两个部分构成。
4.如权利要求3所述的一种用于K8S微服务框架的自适应带权轮询负载均衡系统,其特征在于:所述监控模块监控三个维度指标:第一个维度为集群资源监控,通过K8S提供的Api-server接口,获取到集群中物理机信息、服务信息、以及服务下包含的实例信息;第二个维度为物理资源信息,在获取第一个维度的信息后,掌握集群内物理机以及容器实例的情况,再使用K8S社区提供的MetricsServer插件收集物理机与实例的CPU负载情况;第三个维度是服务调用情况,通过监控服务流量的流向情况以及调用时间,构建出服务调用关系有向图以及有服务调用的耗时,通过部署在服务容器里的Envoy网络代理软件进行监控,并通过Prometheus软件进行数据的收集以及历史数据的存储。
5.如权利要求4所述的一种用于K8S微服务框架的自适应带权轮询负载均衡系统,其特征在于:所述决策模块计算权重配比,具体方法为:对于上游服务A的一个服务实例Ai,调取下游服务B的实例Bj的权重参数表示为类型为整数,其中上游实例调取下游服务所有实例的总权重和为100,即上游实例Ai调用下游实例Bj的响应时间由两部分构成,下游服务本身的处理时间以及下游服务继续调用更下级服务链的时间消耗即表示对服务调用时间的建模,其中B是A的下游调用服务。
6.如权利要求5所述的一种用于K8S微服务框架的自适应带权轮询负载均衡系统,其特征在于:所述下游服务继续调用更下级服务链的时间消耗使用softmax函数将下游服务各个实例的调用时间转换为权重因子,则对上一轮权重进行调整的因子:
其中k为Bj所处的物理机,与请求时间相同;
所述由服务本身的处理时间而产生的权重因子的计算方法为:某台机器的CPU占用量Pi与空闲程度Ai的关系:
其中threshold为经验阈值,那么机器的空闲程度对服务B的实例Bj的影响因子可以简单建模为:
|B|为服务B的实例数量;,每个服务完成一次请求会有一个固有的CPU消耗而过量的访问会带来一个额外的CPU消耗,通过softmax函数可以将这个额外消耗建模出来:
其中PB为服务B的所有实例的CPU消耗值;
根据上面对最终权重更新的表达式为:
并对权重更新进行归一化的操作,将权重之和保持在100左右,使用平均分配的方法给参数赋予一个初始值:
最终获得每组服务的权重配比信息,并提供给服务负载层,从而实现自适应的带权轮询负载均衡系统。
7.如权利要求6所述的一种用于K8S微服务框架的自适应带权轮询负载均衡系统,其特征在于:所述用户交互层提供相关命令行工具以及可视化界面,K8S服务部署通过修改后的能够实现对业务容器额外注入脚本实现网络代理的能力的Yaml文件部署。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111293069.4/1.html,转载请声明来源钻瓜专利网。