CN114866544B - 云边环境中面向cpu异构集群的容器化微服务负载均衡方法 - Google Patents
云边环境中面向cpu异构集群的容器化微服务负载均衡方法 Download PDFInfo
- Publication number
- CN114866544B CN114866544B CN202210344088.3A CN202210344088A CN114866544B CN 114866544 B CN114866544 B CN 114866544B CN 202210344088 A CN202210344088 A CN 202210344088A CN 114866544 B CN114866544 B CN 114866544B
- Authority
- CN
- China
- Prior art keywords
- pod
- service
- cpu
- micro
- container unit
- 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.)
- Active
Links
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
-
- 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/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- 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
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种云边环境中面向CPU异构集群的容器化微服务负载均衡方法,本发明包括确定目标微服务的各个容器单元Pod副本在对应节点上的CPU使用量;根据各个容器单元Pod副本在对应节点上的CPU使用量,确定目标微服务的各个容器单元Pod副本所在节点的CPU单线程能力;分别根据所在节点的CPU单线程能力调整目标微服务为对应容器单元Pod分配的负载以实现各个容器单元Pod副本之间的负载均衡。本发明通过采用采集容器负载信息、计算并调整容器间负载权重等方法,能够对现有负载均衡机制进行改进和优化,在保证较好的负载均衡效果的同时,兼顾良好的运行效率,可有效提高资源利用率和微服务性能。
Description
技术领域
本发明涉及属于计算机技术领域,具体涉及一种云边环境中面向CPU异构集群的容器化微服务负载均衡方法。
背景技术
容器虚拟化技术以其轻便、灵活、占用资源少和快速部署等特性,不仅在云计算领域得到了广泛应用,面向边缘场景的多样化需求也具有良好的适应性。Kubernetes是由谷歌开源的容器编排引擎,用于管理集群中多个主机上的容器化应用,为容器化的应用提供了自动化部署、扩容及缩容、存储编排、自我修复、服务发现和负载均衡等一整套功能,已成为容器编排领域事实上的标准。
目前,Kubernetes主要部署于云端数据中心用于容器集群的管理,云数据中心的节点通常是同构的,节点之间的差异很小。虽然KubeEdge等边缘项目扩展了Kubernetes,将Kubernetes从云扩展到了边,实现云边融合、统一管理,但KubeEdge等边缘项目旨在解决一些网络受限、只有内部私网地址的边缘场景,使得边缘侧具有自治能力,并没有改变Kubernetes的负载均衡方式。
与云数据中心不同,在云边环境中,由于边缘设备的多样性,其CPU ISA架构、主频等往往存在较大差异,即使是ISA架构相同的CPU,其单线程计算能力的不同也普遍存在。在容器集群中,一个微服务通常是由多个容器实例提供具体服务,这些容器实例具有相同数量的资源配置,但又通常分布在不同的节点上,在CPU异构的集群中,节点CPU性能的差异将导致其实际计算能力的不同。目前的容器编排系统仅提供基于轮询或随机等粗粒度的负载均衡算法,各容器副本的负载权重相等,这在CPU异构的集群中无法实现容器副本间的负载均衡,CPU性能相对较低节点上的容器将可能过载而产生阻塞,而CPU性能相对较高节点上的容器会存在资源利用不足而浪费。因此,云边环境下Kubernetes在CPU异构集群中将存在容器副本间负载不均衡的问题。
发明内容
本发明要解决的技术问题:针对容器化微服务在CPU异构集群中存在的负载不均衡、资源利用率低和微服务性能受限等问题,提供一种云边环境中面向CPU异构集群的容器化微服务负载均衡方法,本发明通过采用采集容器负载信息、计算并调整容器间负载权重等方法,能够对现有负载均衡机制进行改进和优化,在保证较好的负载均衡效果的同时,兼顾良好的运行效率,可有效提高资源利用率和微服务性能。
为了解决上述技术问题,本发明采用的技术方案为:
一种云边环境中面向CPU异构集群的容器化微服务负载均衡方法,包括:
1)确定目标微服务的各个容器单元Pod副本在对应节点上的CPU使用量;
2)根据各个容器单元Pod副本在对应节点上的CPU使用量,确定目标微服务的各个容器单元Pod副本所在节点的CPU单线程能力;
3)分别根据所在节点的CPU单线程能力调整目标微服务为对应容器单元Pod分配的负载以实现各个容器单元Pod副本之间的负载均衡。
可选地,步骤2)中确定目标微服务的各个容器单元Pod副本所在节点的CPU单线程能力时,指定目标微服务的任意第1个容器单元Pod副本所在节点p的CPU单线程能力Kp作为基准1,任意第k个容器单元Pod副本所在节点q的CPU单线程能力Kq的计算函数表达式为:
上式中,C1p表示目标微服务的第1个容器单元Pod副本在对应节点p上的CPU使用量,ω1表示目标微服务的第1个容器单元Pod副本当前的负载权重,Ciq表示目标微服务的第i个容器单元Pod副本在对应节点q上的CPU使用量,ωi表示目标微服务的第i个容器单元Pod副本当前的负载权重。
可选地,步骤3)包括:
3.1)分别根据目标微服务的各个容器单元Pod所在节点的CPU单线程能力计算对应容器单元Pod的负载权重;
3.2)分别根据目标微服务的各个容器单元Pod的负载权重,计算目标微服务为对应容器单元Pod分配负载的转发概率;
3.3)根据目标微服务为对应容器单元Pod分配负载的转发概率调整目标微服务为对应容器单元Pod分配的负载以实现各个容器单元Pod副本之间的负载均衡。
可选地,步骤3.1)中负载权重的计算函数表达式为:
上式中,ωi表示目标微服务的第i个容器单元Pod副本当前的负载权重,Ki表示目标微服务的任意第i个容器单元Pod副本所在节点p的CPU单线程能力,Kj表示目标微服务的任意第j个容器单元Pod副本所在节点p的CPU单线程能力,n表示目标微服务对应的容器单元Pod副本数量。
可选地,步骤3.2)中转发概率的计算函数表达式为:
上式中,Pi表示目标微服务为第i个容器单元Pod分配负载的转发概率,Pj表示目标微服务为第j个容器单元Pod分配负载的转发概率,ω1表示目标微服务的第1个容器单元Pod副本当前的负载权重,ωi表示目标微服务的第i个容器单元Pod副本当前的负载权重,n表示目标微服务对应的容器单元Pod副本数量。
可选地,步骤3.3)中根据目标微服务为对应容器单元Pod分配负载的转发概率调整目标微服务为对应容器单元Pod分配的负载时,采用iptables工具调整目标微服务为对应容器单元Pod分配的负载:根据目标微服务及其各个容器单元Pod的元数据信息匹配目标微服务对应的各个容器单元Pod的iptables路由转发规则,通过iptables命令根据各容器单元Pod分配负载的转发概率更新对应容器单元Pod的iptables路由转发规则。
此外,本发明还提供一种云边环境中面向CPU异构集群的容器化微服务负载均衡方法,包括:
S1)获取CPU异构集群中的各个微服务及其对应容器单元Pod副本的对应关系,以及微服务及其对应容器单元Pod副本的元数据信息;
S2)从CPU异构集群的所有微服务中取出一个微服务作为目标微服务,若遍历成功则跳转下一步,若遍历完毕,则跳转步骤S6);
S3)判断目标微服务对应容器单元Pod副本的数量是否为1,若为1,则跳转执行步骤S2),否则,跳转下一步;
S4)根据目标微服务对应的容器单元Pod副本的CPU使用量计算对应的CPU利用率,并计算目标微服务对应的所有n个容器单元Pod副本的CPU利用率的标准差,判断该标准差是否大于设定的阈值,若大于设定的阈值,则执行下一步,否则跳转执行步骤S2);
S5)针对目标微服务执行所述云边环境中面向CPU异构集群的容器化微服务负载均衡方法以实现各个容器单元Pod副本之间的负载均衡;跳转执行步骤S2);
S6)判断预设的周期是否到期,若到期则跳转步骤S1)进入下一周期。
可选地,步骤S4)中CPU利用率的计算函数表达式为:
Ui=Cip/limit.cpu,
上式中,Ui表示表示目标微服务的任意第i个容器单元Pod副本的CPU利用率,Cip表示目标微服务的任意第i个容器单元Pod副本在对应的节点p上的CPU使用量,limit.cpu表示目标微服务的任意第i个容器单元Pod副本的CPU限额。
可选地,所述CPU利用率的标准差的计算函数表达式为:
上式中,σ表示目标微服务对应的所有n个容器单元Pod副本的CPU利用率的标准差,n表示目标微服务对应的容器单元Pod副本数量,表示目标微服务对应的n个容器单元Pod副本的CPU利用率的平均值。
此外,本发明还提供一种云边环境中面向CPU异构集群的容器化微服务负载均衡系统,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行所述云边环境中面向CPU异构集群的容器化微服务负载均衡方法的步骤。
此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,该计算机程序用于被微处理器执行以实施所述云边环境中面向CPU异构集群的容器化微服务负载均衡方法的步骤。
和现有技术相比,本发明主要具有下述优点:本发明充分考虑到云边环境中集群设备的异构型,不同节点的实际计算能力有差异,导致了具有相同数量资源配置的容器副本的实际处理能力不同,通过周期性采集容器的CPU使用情况,自动评估其所在节点的CPU单线程能力,根据节点的CPU单线程能力计算并调整其负载权重,解决了CPU异构集群中容器副本间负载不均衡的问题,提高了集群的资源利用率,并提升了微服务的性能。
附图说明
图1为本发明实施例中面向单个微服务的执行过程流程示意图。
图2为本发明实施例中采集集群信息的执行过程流程示意图。
图3为本发明实施例中调整分配负载的流程示意图。
图4为本发明实施例中面向多个微服务的执行过程流程示意图。
图5为本发明实施例方法的应用模型结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下将以Kubernetes容器编排系统为例,结合附图和实施例对本发明进行进一步详细说明。需要说明的是,本发明云边环境中面向CPU异构集群的容器化微服务负载均衡方法并不依赖于Kubernetes容器编排系统,其同样也可以适用于其它容器编排系统。本发明云边环境中面向CPU异构集群的容器化微服务负载均衡方法中涉及的CPU异构集群是指集群中包含多种异构CPU,此处异构CPU泛指不同处理能力的CPU,可以是指不同平台的CPU,也可以是指不同结构的CPU。
实施例一:
对于Kubernetes容器编排系统而言,集群中的每个服务对象(Service)对应一个微服务;容器单元Pod包含一个或一组逻辑相关的容器,是Kubernetes可以调度的最小单元;每个服务对象由一个或多个容器单元Pod副本提供具体服务,容器单元Pod副本是指为同一个微服务提供具体服务的一组容器单元Pod实例,服务对象和容器单元Pod副本的对应关系是通过Endpoints对象管理维护的。Client-go是Kubernetes的官方编程式交互客户端库,可通过访问集群的API服务接口获取集群的所有元数据信息。
本实施例云边环境中面向CPU异构集群的容器化微服务负载均衡方法的基本原理为:对于一组分布在异构的不同节点上的容器单元Pod副本,应根据节点的CPU单线程能力确定其获取微服务转发用户请求的权重。由于在内存等资源充足的情况下,容器单元Pod副本的性能和其CPU资源配额呈线性关系,则在相同CPU配额的情况下,可根据容器的CPU使用量确定其所在节点的CPU单线程能力。如图1所示,本实施例云边环境中面向CPU异构集群的容器化微服务负载均衡方法包括:
1)获取CPU异构集群中的各个微服务及其对应容器单元Pod副本的对应关系,以及微服务及其对应容器单元Pod副本的元数据信息;确定目标微服务的各个容器单元Pod副本在对应节点上的CPU使用量;
2)根据各个容器单元Pod副本在对应节点上的CPU使用量,确定目标微服务的各个容器单元Pod副本所在节点的CPU单线程能力;
3)分别根据所在节点的CPU单线程能力调整目标微服务为对应容器单元Pod分配的负载以实现各个容器单元Pod副本之间的负载均衡。
其中,步骤1)确定目标微服务的各个容器单元Pod副本在对应节点上的CPU使用量的方式可包括输入或者采集。由于Client-go是Kubernetes的官方编程式交互客户端库,可通过访问集群的API服务接口获取集群的所有元数据信息,服务对象和容器单元Pod副本的对应关系是通过Endpoints对象管理维护的,因此如图2所示,本实施例中为通过client-go访问集群API Server获取Endpoints对象,通过Endpoints对象获取CPU异构集群中的各个微服务及其对应容器单元Pod副本的对应关系;可通过client-go访问集群API Server,集群的API服务接口获取微服务及其对应容器单元Pod副本的元数据信息。采集目标微服务的各个容器单元Pod副本在对应节点上的CPU使用量为现有公知方法,例如可通过容器化集群监控工具获取集群中所有Pod的CPU使用情况,容器化集群监控工具可采用cAdvisor、Metrics-Server或Prometheus等。通过cAdvisor、Metrics-Server或Prometheus等容器化集群监控工具获取集群中所有Pod的CPU使用情况的具体过程不在本实施例方法讨论之列,故在此不再展开说明。由于对集群中容器负载信息的采集是每个周期T内进行一次,每当新的时间间隔到来时,必须重新计算容器负载以获得实时负载,因此周期越长,计算开销会越小,但是由于负载不够实时,性能会变差,由于cAdvisor默认采集周期10s,我们将采集周期设置为10s,以便在性能和开销之间进行均衡。需要说明的是,图2中的三个采集的步骤之间并未先后依赖关系,可根据需要选择执行的顺序,也可选择采用并发执行的方式。
本实施例步骤2)中确定目标微服务的各个容器单元Pod副本所在节点的CPU单线程能力时,指定目标微服务的任意第1个容器单元Pod副本所在节点p的CPU单线程能力Kp作为基准1,任意第k个容器单元Pod副本所在节点q的CPU单线程能力Kq的计算函数表达式为:
上式中,C1p表示目标微服务的第1个容器单元Pod副本在对应节点p上的CPU使用量,ω1表示目标微服务的第1个容器单元Pod副本当前的负载权重,Ciq表示目标微服务的第i个容器单元Pod副本在对应节点q上的CPU使用量,ωi表示目标微服务的第i个容器单元Pod副本当前的负载权重。本实施例中目标微服务的各个容器单元Pod副本初始的负载权重相等,即初始有ω1=ω2=…=ωn=1/n,其中n表示目标微服务对应的容器单元Pod副本数量。此外,上述初始的负载权重也可以根据实际需要进行指定。
如图3所示,本实施例中步骤3)包括:
3.1)分别根据目标微服务的各个容器单元Pod所在节点的CPU单线程能力计算对应容器单元Pod的负载权重;前述步骤2)中任意第k个容器单元Pod副本所在节点q的CPU单线程能力Kq的计算函数表达式时需要使用上一步或初始的负载权重,步骤3.1)则会更新得到新的负载权重。
3.2)分别根据目标微服务的各个容器单元Pod的负载权重,计算目标微服务为对应容器单元Pod分配负载的转发概率;
3.3)根据目标微服务为对应容器单元Pod分配负载的转发概率调整目标微服务为对应容器单元Pod分配的负载以实现各个容器单元Pod副本之间的负载均衡。
本实施例步骤3.1)中负载权重的计算函数表达式为:
上式中,ωi表示目标微服务的第i个容器单元Pod副本当前的负载权重,Ki表示目标微服务的任意第i个容器单元Pod副本所在节点p的CPU单线程能力,Kj表示目标微服务的任意第j个容器单元Pod副本所在节点p的CPU单线程能力,n表示目标微服务对应的容器单元Pod副本数量。
本实施例步骤3.2)中转发概率的计算函数表达式为:
上式中,Pi表示目标微服务为第i个容器单元Pod分配负载的转发概率,Pj表示目标微服务为第j个容器单元Pod分配负载的转发概率,ω1表示目标微服务的第1个容器单元Pod副本当前的负载权重,ωi表示目标微服务的第i个容器单元Pod副本当前的负载权重,n表示目标微服务对应的容器单元Pod副本数量。
本实施例中,步骤3.3)中根据目标微服务为对应容器单元Pod分配负载的转发概率调整目标微服务为对应容器单元Pod分配的负载时,采用iptables工具调整目标微服务为对应容器单元Pod分配的负载:根据目标微服务及其各个容器单元Pod的元数据信息匹配目标微服务对应的各个容器单元Pod的iptables路由转发规则,通过iptables命令根据各容器单元Pod分配负载的转发概率更新对应容器单元Pod的iptables路由转发规则,即:通过iptables命令修改目标微服务第i个容器单元Pod分配负载的转发概率为对应的转发概率Pi。且采用iptables工具调整目标微服务为对应容器单元Pod分配的负载的模式可根据需要采用用户空间(userspace)模式或iptables模式。
前述步骤1)~步骤3)为针对单个目标微服务执行容器化微服务负载均衡的方法,考虑到CPU异构集群中可能包含多个微服务,为了进一步提高对多种微服务的兼容性,如图4所示,本实施例还提供一种云边环境中面向CPU异构集群的容器化微服务负载均衡方法,包括:
S2)从CPU异构集群的所有微服务中取出一个微服务作为目标微服务,若遍历成功则跳转下一步,若遍历完毕,则跳转步骤S6);
S3)判断目标微服务对应容器单元Pod副本的数量是否为1,若为1,则跳转执行步骤S2),否则,跳转下一步;
S4)根据目标微服务对应的容器单元Pod副本的CPU使用量计算对应的CPU利用率,并计算目标微服务对应的所有n个容器单元Pod副本的CPU利用率的标准差,判断该标准差是否大于设定的阈值,若大于设定的阈值,则执行下一步,否则跳转执行步骤S2);
S5)针对目标微服务执行前述云边环境中面向CPU异构集群的容器化微服务负载均衡方法以实现各个容器单元Pod副本之间的负载均衡;跳转执行步骤S2);
S6)判断预设的周期是否到期,若到期则跳转步骤S1)进入下一周期。
本实施例中,步骤S4)中CPU利用率的计算函数表达式为:
Ui=Cip/limit.cpu,
上式中,Ui表示表示目标微服务的任意第i个容器单元Pod副本的CPU利用率,Cip表示目标微服务的任意第i个容器单元Pod副本在对应的节点p上的CPU使用量,limit.cpu表示目标微服务的任意第i个容器单元Pod副本的CPU限额。
本实施例中,CPU利用率的标准差的计算函数表达式为:
上式中,σ表示目标微服务对应的所有n个容器单元Pod副本的CPU利用率的标准差,n表示目标微服务对应的容器单元Pod副本数量,表示目标微服务对应的n个容器单元Pod副本的CPU利用率的平均值。
图5为本实施例方法的应用模型,该Kubernetes容器编排系统中包含控制节点和工作节点两部分。其中控制节点中的相关组件包括:API服务器、控制器管理器、调度器、Etcd数据库和负载均衡器。API服务器是控制平面的前端,控制平面的所有组件之间以及控制平面与工作节点之间均通过API服务器交互;控制器管理器负责节点管理、Pod生命周期管理、创建API访问令牌等;调度器负责监视新创建的、未指定运行节点的容器单元Pod副本,并为其选择工作节点;Etcd数据库用来保存所有的集群数据;负载均衡器包含数据采集单元和权重计算单元,其中数据采集单元用于周期性采集集群中所有容器单元Pod副本的CPU使用情况以及微服务和容器单元Pod副本的元数据信息,权重计算单元用于重新计算Pod的负载权重。工作节点用于运行应用负载,主要组件包括Kubelet进程、Kube-proxy进程和权重修改单元。其中Kubelet用于处理控制节点下发到本节点的任务,管理容器单元Pod副本及容器单元Pod副本中的容器;Kube-proxy负责提供集群内部的服务发现,创建iptables路由规则;权重修改单元用于根据新计算的负载权重,调整相应容器单元Pod副本的转发规则。
综上所述,本实施例方法针对现有容器编排系统Kubernetes在CPU异构场景下容器副本间存在的负载不均衡的问题,通过周期性采集容器的CPU使用情况,自动评估其所在节点的CPU单线程能力,根据节点的CPU单线程能力计算并调整其负载权重。具体包括周期性采集集群中所有Pod的CPU使用信息;采集集群中所有微服务和Pod的元数据信息,包括名称、IP地址、命名空间、资源请求等,以及微服务和容器单元Pod副本的对应关系;根据一组容器单元Pod副本的CPU使用情况评估其所在节点的CPU单线程能力;根据容器单元Pod副本所在节点的CPU单线程能力计算其应获取微服务转发用户请求的权重;根据新的容器单元Pod副本负载权重调整相应的iptables路由规则。本实施例方法可有效解决CPU异构集群中容器副本间负载不均衡的问题,提高集群的资源利用率,并提升微服务的性能。
此外,本实施例还提供一种云边环境中面向CPU异构集群的容器化微服务负载均衡系统,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行前述云边环境中面向CPU异构集群的容器化微服务负载均衡方法的步骤。
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序用于被微处理器执行以实施前述云边环境中面向CPU异构集群的容器化微服务负载均衡方法的步骤。
实施例二:
本实施例与实施例一基本相同,其主要区别为:本实施例步骤3.3)中根据目标微服务为对应容器单元Pod分配负载的转发概率调整目标微服务为对应容器单元Pod分配的负载时所采用的工具不同。本实施例中采用kube-proxy组件的ipvs模式,ipvs模式基于NAT实现,不创建反向代理,也不创建iptables路由转发规则,通过netlink创建规则,性能上比用户空间(userspace)模式和iptables模式都更优秀。
此外,本实施例还提供一种云边环境中面向CPU异构集群的容器化微服务负载均衡系统,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行前述云边环境中面向CPU异构集群的容器化微服务负载均衡方法的步骤。
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序用于被微处理器执行以实施前述云边环境中面向CPU异构集群的容器化微服务负载均衡方法的步骤。
实施例三:
本实施例与实施例一基本相同,其主要区别为:本实施例步骤2.3)中根据目标微服务为对应容器单元Pod分配负载的转发概率调整目标微服务为对应容器单元Pod分配的负载时所采用的工具不同。本实施例中采用Ingress对象实现,Ingress对象是Kubernetes容器编排系统的一种资源对象,该对象允许外部访问Kubernetes容器编排系统的为微服务,通过创建规则集合来配置访问权限,这些规则定义了哪些入站连接可以访问哪些服务;Ingress仅支持HTTP和HTTPS协议;ingress可配置用于提供外部可访问的服务url、负载均衡流量、SSL终端和提供虚拟主机名配置。ingress控制器(ingress-controller)是实现反向代理和负载均衡的程序,通过监听Ingress的ingress控制器(ingress-controller)这个api对象里的配置规则并转化成Nginx的配置,然后对外部提供服务。
此外,本实施例还提供一种云边环境中面向CPU异构集群的容器化微服务负载均衡系统,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行前述云边环境中面向CPU异构集群的容器化微服务负载均衡方法的步骤。
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序用于被微处理器执行以实施前述云边环境中面向CPU异构集群的容器化微服务负载均衡方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.一种云边环境中面向CPU异构集群的容器化微服务负载均衡方法,其特征在于包括:
1)确定目标微服务的各个容器单元Pod副本在对应节点上的CPU使用量;
2)根据各个容器单元Pod副本在对应节点上的CPU使用量,确定目标微服务的各个容器单元Pod副本所在节点的CPU单线程能力;
3)分别根据所在节点的CPU单线程能力调整目标微服务为对应容器单元Pod分配的负载以实现各个容器单元Pod副本之间的负载均衡,包括:3.1)分别根据目标微服务的各个容器单元Pod所在节点的CPU单线程能力计算对应容器单元Pod的负载权重;3.2)分别根据目标微服务的各个容器单元Pod的负载权重,计算目标微服务为对应容器单元Pod分配负载的转发概率;3.3)根据目标微服务为对应容器单元Pod分配负载的转发概率调整目标微服务为对应容器单元Pod分配的负载以实现各个容器单元Pod副本之间的负载均衡。
2.根据权利要求1所述的云边环境中面向CPU异构集群的容器化微服务负载均衡方法,其特征在于,步骤2)中确定目标微服务的各个容器单元Pod副本所在节点的CPU单线程能力时,指定目标微服务的任意第1个容器单元Pod副本所在节点p的CPU单线程能力作为基准1,任意第k个容器单元Pod副本所在节点q的CPU单线程能力/>的计算函数表达式为:
,
上式中,表示目标微服务的第1个容器单元Pod副本在对应节点p上的CPU使用量,/>表示目标微服务的第1个容器单元Pod副本当前的负载权重,/>表示目标微服务的第i个容器单元Pod副本在对应节点q上的CPU使用量,/>表示目标微服务的第i个容器单元Pod副本当前的负载权重。
3.根据权利要求1所述的云边环境中面向CPU异构集群的容器化微服务负载均衡方法,其特征在于,步骤3.1)中负载权重的计算函数表达式为:
,
上式中,表示目标微服务的第i个容器单元Pod副本当前的负载权重,/>表示目标微服务的任意第i个容器单元Pod副本所在节点p的CPU单线程能力,/>表示目标微服务的任意第j个容器单元Pod副本所在节点p的CPU单线程能力,/>表示目标微服务对应的容器单元Pod副本数量。
4.根据权利要求1所述的云边环境中面向CPU异构集群的容器化微服务负载均衡方法,其特征在于,步骤3.2)中转发概率的计算函数表达式为:
,
上式中,表示目标微服务为第i个容器单元Pod分配负载的转发概率,/>表示目标微服务为第j个容器单元Pod分配负载的转发概率,/>表示目标微服务的第1个容器单元Pod副本当前的负载权重,/>表示目标微服务的第i个容器单元Pod副本当前的负载权重,/>表示目标微服务对应的容器单元Pod副本数量。
5.根据权利要求1所述的云边环境中面向CPU异构集群的容器化微服务负载均衡方法,其特征在于,步骤3.3)中根据目标微服务为对应容器单元Pod分配负载的转发概率调整目标微服务为对应容器单元Pod分配的负载时,采用iptables工具调整目标微服务为对应容器单元Pod分配的负载:根据目标微服务及其各个容器单元Pod的元数据信息匹配目标微服务对应的各个容器单元Pod的iptables路由转发规则,通过iptables命令根据各容器单元Pod分配负载的转发概率更新对应容器单元Pod的iptables路由转发规则。
6.一种云边环境中面向CPU异构集群的容器化微服务负载均衡方法,其特征在于包括:
S1)获取CPU异构集群中的各个微服务及其对应容器单元Pod副本的对应关系,以及微服务及其对应容器单元Pod副本的元数据信息;
S2)从CPU异构集群的所有微服务中取出一个微服务作为目标微服务,若遍历成功则跳转下一步,若遍历完毕,则跳转步骤S6);
S3)判断目标微服务对应容器单元Pod副本的数量是否为1,若为1,则跳转执行步骤S2),否则,跳转下一步;
S4)根据目标微服务对应的容器单元Pod副本的CPU使用量计算对应的CPU利用率,并计算目标微服务对应的所有个容器单元Pod副本的CPU利用率的标准差,判断该标准差是否大于设定的阈值,若大于设定的阈值,则执行下一步,否则跳转执行步骤S2);
S5)针对目标微服务执行权利要求1~5中任意一项所述云边环境中面向CPU异构集群的容器化微服务负载均衡方法以实现各个容器单元Pod副本之间的负载均衡;跳转执行步骤S2);
S6)判断预设的周期是否到期,若到期则跳转步骤S1)进入下一周期。
7.根据权利要求6所述的云边环境中面向CPU异构集群的容器化微服务负载均衡方法,其特征在于,步骤S4)中CPU利用率的计算函数表达式为:
,
上式中,表示表示目标微服务的任意第i个容器单元Pod副本的CPU利用率,/>表示目标微服务的任意第i个容器单元Pod副本在对应的节点p上的CPU使用量,limit.cpu表示目标微服务的任意第i个容器单元Pod副本的CPU限额;所述CPU利用率的标准差的计算函数表达式为:
,
上式中,表示目标微服务对应的所有/>个容器单元Pod副本的CPU利用率的标准差,/>表示目标微服务对应的容器单元Pod副本数量,/>表示目标微服务对应的/>个容器单元Pod副本的CPU利用率的平均值。
8.一种云边环境中面向CPU异构集群的容器化微服务负载均衡系统,包括相互连接的微处理器和存储器,其特征在于,该微处理器被编程或配置以执行权利要求1~7中任意一项所述云边环境中面向CPU异构集群的容器化微服务负载均衡方法的步骤。
9.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其特征在于,该计算机程序用于被微处理器执行以实施权利要求1~7中任意一项所述云边环境中面向CPU异构集群的容器化微服务负载均衡方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210344088.3A CN114866544B (zh) | 2022-04-02 | 2022-04-02 | 云边环境中面向cpu异构集群的容器化微服务负载均衡方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210344088.3A CN114866544B (zh) | 2022-04-02 | 2022-04-02 | 云边环境中面向cpu异构集群的容器化微服务负载均衡方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114866544A CN114866544A (zh) | 2022-08-05 |
CN114866544B true CN114866544B (zh) | 2023-10-03 |
Family
ID=82628695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210344088.3A Active CN114866544B (zh) | 2022-04-02 | 2022-04-02 | 云边环境中面向cpu异构集群的容器化微服务负载均衡方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114866544B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116048734B (zh) * | 2023-03-29 | 2023-06-02 | 贵州大学 | 一种ai即服务的实现方法、装置、介质及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106453564A (zh) * | 2016-10-18 | 2017-02-22 | 北京京东尚科信息技术有限公司 | 弹性云分布式海量请求处理的方法、装置及系统 |
CN106888254A (zh) * | 2017-01-20 | 2017-06-23 | 华南理工大学 | 一种基于Kubernetes的容器云架构及其各模块之间的交互方法 |
CN108551488A (zh) * | 2018-05-03 | 2018-09-18 | 山东汇贸电子口岸有限公司 | 基于国产cpu和os的分布式容器集群负载均衡方法 |
CN111093230A (zh) * | 2020-01-20 | 2020-05-01 | 常熟理工学院 | 基于6LoWPAN的IPv6无线传感器节点负载均衡的实现方法 |
CN111694633A (zh) * | 2020-04-14 | 2020-09-22 | 新华三大数据技术有限公司 | 集群节点负载均衡方法、装置及计算机存储介质 |
CN114138486A (zh) * | 2021-12-02 | 2022-03-04 | 中国人民解放军国防科技大学 | 面向云边异构环境的容器化微服务编排方法、系统及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200341789A1 (en) * | 2019-04-25 | 2020-10-29 | Vmware, Inc. | Containerized workload scheduling |
-
2022
- 2022-04-02 CN CN202210344088.3A patent/CN114866544B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106453564A (zh) * | 2016-10-18 | 2017-02-22 | 北京京东尚科信息技术有限公司 | 弹性云分布式海量请求处理的方法、装置及系统 |
CN106888254A (zh) * | 2017-01-20 | 2017-06-23 | 华南理工大学 | 一种基于Kubernetes的容器云架构及其各模块之间的交互方法 |
CN108551488A (zh) * | 2018-05-03 | 2018-09-18 | 山东汇贸电子口岸有限公司 | 基于国产cpu和os的分布式容器集群负载均衡方法 |
CN111093230A (zh) * | 2020-01-20 | 2020-05-01 | 常熟理工学院 | 基于6LoWPAN的IPv6无线传感器节点负载均衡的实现方法 |
CN111694633A (zh) * | 2020-04-14 | 2020-09-22 | 新华三大数据技术有限公司 | 集群节点负载均衡方法、装置及计算机存储介质 |
CN114138486A (zh) * | 2021-12-02 | 2022-03-04 | 中国人民解放军国防科技大学 | 面向云边异构环境的容器化微服务编排方法、系统及介质 |
Non-Patent Citations (1)
Title |
---|
电力通信网络中负载均衡的路由协议;赵灿明;李祝红;闫凡;张信明;;计算机应用(第11期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114866544A (zh) | 2022-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10466899B2 (en) | Selecting controllers based on affinity between access devices and storage segments | |
Moens et al. | VNF-P: A model for efficient placement of virtualized network functions | |
US9104492B2 (en) | Cloud-based middlebox management system | |
Krishnamurthy et al. | Pratyaastha: an efficient elastic distributed sdn control plane | |
EP3281359B1 (en) | Application driven and adaptive unified resource management for data centers with multi-resource schedulable unit (mrsu) | |
US7793308B2 (en) | Setting operation based resource utilization thresholds for resource use by a process | |
US20130031559A1 (en) | Method and apparatus for assignment of virtual resources within a cloud environment | |
CN105159775A (zh) | 基于负载均衡器的云计算数据中心的管理系统和管理方法 | |
US20220318071A1 (en) | Load balancing method and related device | |
US9184982B2 (en) | Balancing the allocation of virtual machines in cloud systems | |
WO2015183313A1 (en) | Resource usage data collection within a distributed processing framework | |
Gupta et al. | A technique based on ant colony optimization for load balancing in cloud data center | |
Singh et al. | Survey on various load balancing techniques in cloud computing | |
EP4170491A1 (en) | Resource scheduling method and apparatus, electronic device, and computer-readable storage medium | |
CN115134371A (zh) | 包含边缘网络算力资源的调度方法、系统、设备及介质 | |
Alkaff et al. | Cross-layer scheduling in cloud systems | |
CN114866544B (zh) | 云边环境中面向cpu异构集群的容器化微服务负载均衡方法 | |
CN112994937A (zh) | 智融标识网络中虚拟cdn的部署与迁移系统 | |
Shahzad et al. | Reduce VM migration in bandwidth oversubscribed cloud data centres | |
Jung et al. | Ostro: Scalable placement optimization of complex application topologies in large-scale data centers | |
Onoue et al. | Scheduling of parallel migration for multiple virtual machines | |
Zhang et al. | Processing of mixed-sensitivity video surveillance streams on hybrid clouds | |
CN112104566B (zh) | 一种负载均衡的处理方法和装置 | |
Khan et al. | Efficient virtual machine scheduling in cloud computing | |
WO2017023256A1 (en) | Cloud provisioning for networks |
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 |