CN115426257B - 一种面向服务网格的多控制器架构与部署方法 - Google Patents
一种面向服务网格的多控制器架构与部署方法 Download PDFInfo
- Publication number
- CN115426257B CN115426257B CN202210912040.8A CN202210912040A CN115426257B CN 115426257 B CN115426257 B CN 115426257B CN 202210912040 A CN202210912040 A CN 202210912040A CN 115426257 B CN115426257 B CN 115426257B
- Authority
- CN
- China
- Prior art keywords
- controller
- micro
- service
- controllers
- server
- 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
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明属于云原生和边缘原生计算领域,公开了一种面向服务网格的多控制器架构与部署方法,包括多个控制器,多个控制器分布在不同的服务器上,每个控制器管理部分微服务,所述微服务通过在同一平面的sidecar进行通信;每个控制器同构,服务器异构,所述控制器之间通过同步通信来实现多控制器的透明,使得用户仍然感受到的是一个控制器。本发明将多个控制器分别部署在不同的服务器上,每个控制器连接若干个微服务,管理着微服务的执行和通信。根据边缘服务器的资源情况和微服务的部署情况确定需要部署的控制器数量、位置以及连接哪些微服务。能够将传统的服务网格应用于边缘环境中,且保证微服务的正常运行和通信。
Description
技术领域
本发明属于云原生和边缘原生计算领域,尤其涉及一种面向服务网格的多控制器架构与部署方法。
背景技术
微服务是近年来新兴的一种软件开发技术。这种技术将传统业务分成很多细粒度的、松散耦合且可独立部署的微服务。在原有的单体软件架构已经无法满足当前互联网产品的技术需求的情况下,微服务技术得到了蓬勃发展。
在微服务技术发展的同时,服务网格(Service Mesh)应运而生。服务网格是用于处理微服务间通信的基础设施层,它负责为构架复杂的云原生应用传递可靠的网络请求。在微服务系统引入服务网格后,微服务之间的网络通信被服务网格代理,经由服务网格实现彼此之间的通信。服务网格对微服务之间的网络通信进行代理,是通过为每个微服务创建一个边车并与之建立关联关系实现的。
边缘计算,作为云计算的替代或补充,迫切需要应用云原生概念来实现边缘原生计算。服务网格在管理微服务问题上提供了一个单一控制器的解决方案,这种方式在资源充足的云计算环境中得到很好的效果,但由于边缘环境意味着资源受限,集中式的控制器架构会受到网络带宽、服务器处理能力不足等影响导致较长的微服务响应时间。因此,在边缘环境中缺少一种有效的架构来管理和部署微服务。
发明内容
本发明目的在于提供一种面向服务网格的多控制器架构与部署方法,以解决上述的技术问题。
为解决上述技术问题,本发明的一种面向服务网格的多控制器架构与部署方法的具体技术方案如下:
一种面向服务网格的多控制器架构,包括多个控制器,多个控制器分布在不同的服务器上,每个控制器管理管理部分微服务,所述微服务被部署在不同的服务器上,所述微服务通过在同一平面的sidecar进行通信;每个控制器同构,服务器异构,所述控制器之间通过同步通信来实现多控制器的透明,使得用户仍然感受到的是一个控制器。
进一步的,所述控制器的部署数量以及位置根据服务器之间的异构性以及微服务的部署情况确定;所述微服务根据控制器部署的情况连接至控制器。
进一步的,所述服务器之间的异构性包括服务器之间的带宽,服务器的处理能力。
进一步的,多个控制器之间进行同步通信,所述同步通信发送的信息包括:控制器本身的状态、控制器管理的服务状态。
进一步的,所述架构包括微服务与控制器之间的通信延迟,所述微服务与控制器的通信延迟为其中ρC为与控制器协商部分的信息比率,/>为部署在服务器n上的微服务s的请求率;/>为01变量,表示部署在服务器n上的微服务s是否连接至服务器m上的控制器,cnm表示服务器n和服务器m之间的带宽。
进一步的,所述架构包括微服务的响应延迟,对于每一个控制器来说,其处理服务请求的过程模拟为M/M/1模型,因此每一个控制器的平均处理时间为其中αn为处理能力,θn为其负载,平均控制器响应时间可以表示为Vn的加权平均值:/>
进一步的,所述架构包括控制器之间的同步延迟,总的同步延迟表示为:
其中yn为01变量,表示服务器n上是否放置控制器,B为常量,表示控制器本身的状态信息,ρS控制器之间同步请求控制信息比率。
本发明还公开了一种面向服务网格的多控制器架构的部署方法,包括如下步骤:
步骤1:首先将最终的结果变量costmin设置为一个任意的很大的数,k设置为1,的值取随机,设置一个k的最大取值kmax,其值应当小于服务器的数量;
步骤2:得到服务的分配方案 表示微服务s部署在服务器n上并且连接至服务器n上的控制器;
步骤3:算出优化目标的成本costgreedy;
步骤4:如果costgreedy<costmin,costmin=costgreedy,并且更新ymin和zmin;ymin表示当前最优的控制器部署方案,yn=1表示在服务器上部署控制器,zmin表示当前最优的微服务连接方式;
步骤5:应用k-means重新组织控制器放置y;
步骤6:判断costmin是否收敛,否则返回步骤2;
步骤7:k=k+1;
步骤8:向y添加一个新控制器,使同步成本最小;
步骤9:判断是否k≤kmax,否则返回步骤2;
步骤10:直到结果收敛,输出结果。
本发明的一种面向服务网格的多控制器架构与部署方法具有以下优点:本发明通过将多个控制器分别部署在不同的服务器上,每个控制器连接若干个微服务,管理着微服务的执行和通信,并根据边缘服务器的资源情况和微服务的部署情况确定需要部署的控制器数量、位置以及连接哪些微服务优化部署方案,减少了服务网格在边缘环境中由于服务器异构导致的资源不足、网络环境不稳定产生的高延迟,保证了服务网格在边缘环境中的正常运行和充分利用有限资源达到延迟最低的目的。
附图说明
图1为本发明面向服务网格的多控制器部署架构原理图;
图2为本发明面向服务网格的多控制器架构时序图;
图3为本发明解决面向服务网格的多控制器架构部署问题的ck-均值算法流程图;
图4为本发明仿真实验中α对结果的影响的实验图,其中α为[0,1]之间的数,表示部署方案对通信成本和响应时间和同步成本的比率;
图5为本发明的算法所用符号的意义描述表;
图6为本发明的仿真实验所设定的参数表。
具体实施方式
为了更好地了解本发明的目的、结构及功能,下面结合附图,对本发明一种面向服务网格的多控制器架构与部署方法做进一步详细的描述。
在云计算的环境中,服务器的资源可以看做无限大,因此一个控制器可以管理所有的微服务,并且微服务与控制器之间的通信由于带宽资源的充足可以忽略。所以服务网格能够取得很好的效果。然而在边缘环境中由于服务器的异构,且服务器资源有限,因此单控制器的架构会导致高延迟甚至无法运行。
如图1所示,本发明的一种面向服务网格的多控制器架构,包括多个控制器,多个控制器分布在不同的服务器上,每个控制器管理部分微服务,以减少服务器的压力,微服务被部署在不同的服务器上,每个控制器同构,服务器异构,控制器之间通过同步通信来实现多控制器的透明,使得用户仍然感受到的是一个控制器。控制器的部署数量以及位置根据服务器之间的异构性以及微服务的部署情况确定;微服务根据控制器部署的情况连接至控制器。服务器之间的异构性包括服务器之间的带宽,服务器的处理能力等。用户发出请求,由sidecar(或proxy)截获请求,并与控制器交互确定请求合法性。并在微服务执行后,向控制器发送执行信息。然后,多个控制器之间为了达到同步,需要进行同步通信。同步通信发送的信息包括:控制器本身的状态;控制器管理的服务状态。
由于存在服务与控制器通信、控制器与控制器之间的同步通信,网络带宽影响了其很大的延迟。另外,控制器连接的服务过多,会导致服务器过载,使得服务的处理延迟增大。因此本发明的面向服务网格的多控制器部署方法在为控制器选择部署位置、以及为微服务选择连接控制器时综合考虑了三种延迟:
一、通过对微服务器和控制器之间的通信,来作为微服务选择控制器和部署控制器数量及位置的重要标准。通过计算微服务与控制器之间由于边缘环境中带宽资源的有限带来的通信延迟,以评估当前放置方案的效果。
二、通过对控制器的处理能力处理为响应延迟,来作为微服务选择控制器和部署控制器数量及位置的重要的标准。考虑到边缘服务器的处理能力不足,无法承担大量的微服务的处理。对每一个控制器建立M/M/1模型,计算其处理响应延迟。
三、通过对多个控制器之间进行同步通信,来实现多控制器对用户透明。计算各控制器之间的同步通信延迟,也作为微服务选择控制器和部署控制器数量及位置的重要因素。
根据边缘服务器的资源情况和微服务的部署情况,在控制平面中部署多个控制器,并根据带宽、通信延迟、处理能力和同步延迟等多种因素综合考虑这些控制器部署的位置以及哪些微服务连接哪些控制器。微服务之间的通信仍然通过sidecar的代理在数据平面中进行。同时,sidecar需要向该服务器所连接的控制器发送服务运行的相关信息。如图2所示,为整个多控制器架构的时序图。服务对服务的通信由sidecar处理,与微服务位于同一位置。每当一个请求试图访问一个服务的时候,对应于该服务的sidecar就会截获该请求并与控制器交互以确定该请求是否合法。请求完成后,sidecar还将向控制器发送有关服务执行的各种信息,时序图如图2所示。基于上述过程,可以独立于服务开发、部署和维护,实施各种策略,如负载均衡、容错、断路、身份验证和访问控制。
下面对本发明一种面向服务网格的多控制器架构的细节进行具体的说明。主要包括以下几个方面:
1.sidecar(即服务)与控制器进行通信时产生的通信延迟。微服务与控制器的通信延迟我们计算为其中ρC为与控制器协商部分的信息比率,/>为部署在服务器n上的微服务s的请求率;/>为01变量,表示部署在服务器n上的微服务s是否连接至服务器m上的控制器。cnm表示服务器n和服务器m之间的带宽。边缘环境中由于带宽的有限,服务与控制器之间的频繁通信导致的通信延迟是相当可观的。这是用来评估整个系统正常运行的重要标准。
2.边缘服务器的处理能力有限,意味着控制器所管理的微服务数量也有限,服务器的处理延迟也是一个评估整个系统正常运行重要的标准。对于每一个控制器来说,其处理服务请求的过程模拟为M/M/1模型,因此每一个控制器的平均处理时间为其中αn为处理能力,θn为其负载。平均控制器响应时间可以表示为Vn的加权平均值:/>
3.为了达到与云计算中服务网格的相同效果,在部署多个控制器后,应该进行控制器之间的同步延迟,以达到微服务的统一管理和多控制透明的目的。对于每一个控制器来说,其处理服务请求的过程模拟为M/M/1模型,因此每一个控制器的平均处理时间为其中αn为处理能力,θn为其负载。平均控制器响应时间可以表示为Vn的加权平均值:/>在多个控制器的情况下,可以将服务分配给不同的控制器。当一个服务需要与另一个服务通信时,其相应的控制器应相互同步,以确保返回的控制信息的正确性。在运行时,当一个控制器发生故障时,另一个控制器应负责故障控制器管理的服务,以确保系统稳定性。通常,控制器之间需要同步的信息主要有两种。一个是控制器本身的基本状态,近似为常数。另一个是受控服务的信息。这一部分与控制的服务数量成比例。控制器之间的同步延迟包括:总的同步延迟可表示为:
其中yn为01变量,表示服务器n上是否放置控制器,B为常量,表示控制器本身的状态信息,ρS控制器之间同步请求控制信息比率。
当控制器部署的个数较少时,由于边缘服务器的计算能力有限,因此会使得控制器负载多个服务,从而导致控制器过载,使得服务的响应时间变长。从应用程序的角度来说,如果服务的时间过长将是不可接受的。因此,对于每一个控制器来说,其处理服务请求的过程模拟为M/M/1模型,因此我们能表示出整个系统的服务响应时间。因此,需要合理的安排控制器的数量以便于平衡服务与控制器的通信成本、控制器之间的同步成本和整个系统的响应时间。
因此,我们可以看到边缘计算中控制器部署的困境。部署更多控制器可能会产生较高的同步开销,但较少的控制器可能会导致较高的服务控制器通信延迟和成本。简而言之,应仔细考虑控制器的部署方式。
本发明的一种面向服务网格的多控制器部署方法,基于k-means方法改进的ck-means算法,流程图如图3所示,包括以下步骤:
步骤1:首先将最终的结果变量costmin设置为一个任意的很大的数,k设置为1,的值取随机,设置一个k的最大取值kmax,其值应当小于服务器的数量;
步骤2:得到服务的分配方案
该步骤中,表示微服务s部署在服务器n上并且连接至服务器n上的控制器。由于微服务的部署是提前设定的,当我们确定控制器的部署时,就可以计算出微服务与哪一个控制器相连。响应的算法为贪心算法,即对于每一个微服务而言,选择通信延迟最小的控制器。
步骤3:算出优化目标的成本costgreedy
该步骤中,当所有的部署方案确定时,我们可以计算出三种延迟成本,即微服务与控制器的通信延迟成本、控制器之间的同步延迟成本和微服务的响应延迟成本。
步骤4:如果costgreedy<costmin,costmin=costgreedy,并且更新ymin和zmin。
该步骤中ymin表示当前最优的控制器部署方案,yn=1表示在服务器上部署控制器。zmin表示当前最优的微服务连接方式。
步骤5:应用k-means重新组织控制器放置y
步骤6:判断costmin是否收敛,否则返回步骤2;
步骤7:k=k+1
步骤8:向y添加一个新控制器,使同步成本最小
步骤9:判断是否k≤kmax,否则返回步骤2
步骤10:直到结果收敛,输出结果。
算法伪代码具体如下:(参数定义参见图5)
算法1:面向服务网格的多控制器部署的ck-means算法
针对以上方法,我们进行了实验来评估其效能,并在图6中列出了参数设置,实验结果如图4所示,实验证明,ck-means比传统的k-means的效果更好,且很接近最优理论解。
可以理解,本发明是通过一些实施例进行描述的,本领域技术人员知悉的,在不脱离本发明的精神和范围的情况下,可以对这些特征和实施例进行各种改变或等效替换。另外,在本发明的教导下,可以对这些特征和实施例进行修改以适应具体的情况及材料而不会脱离本发明的精神和范围。因此,本发明不受此处所公开的具体实施例的限制,所有落入本申请的权利要求范围内的实施例都属于本发明所保护的范围内。
Claims (4)
1.一种面向服务网格的多控制器装置的部署方法,包括面向服务网格的多控制器装置,所述装置包括多个控制器,多个控制器分布在不同的服务器上,每个控制器管理部分微服务,所述微服务被部署在不同的服务器上,所述微服务通过在同一平面的sidecar进行通信;每个控制器同构,服务器异构,所述控制器之间通过同步通信来实现多控制器的透明,使得用户仍然感受到的是一个控制器,其特征在于,所述方法考虑微服务与控制器之间的通信延迟,所述微服务与控制器的通信延迟为其中ρC为与控制器协商部分的信息比率,/>为部署在服务器n上的微服务s的请求率;/>为01变量,表示部署在服务器n上的微服务s是否连接至服务器m上的控制器,cnm表示服务器n和服务器m之间的带宽;考虑微服务的响应延迟,对于每一个控制器来说,其处理服务请求的过程模拟为M/M/1模型,因此每一个控制器的平均处理时间为/>其中αn为处理能力,θn为其负载,平均控制器响应时间表示为Vn的加权平均值:/>考虑控制器之间的同步延迟,总的同步延迟表示为:
其中yn为01变量,表示服务器n上是否放置控制器,B为常量,表示控制器本身的状态信息,ρs表示控制器之间同步请求控制信息比率;
所述方法包括如下步骤:
步骤1:首先将最终的结果变量costmin设置为无穷大,k设置为1,的值取随机,设置一个k的最大取值kmax,kmax小于服务器的数量;
步骤2:根据贪心算法得到服务的分配方案 表示微服务s部署在服务器n上并且连接至服务器m上的控制器;
步骤3:算出三种延迟的成本costgreedy;
步骤4:如果costgreedy<costmin,costmin=costgreedy,并且更新ymin和zmin;ymin表示当前最优的控制器部署方案,yn=1表示在服务器上部署控制器,zmin表示当前最优的微服务连接方式;
步骤5:应用k-means重新组织控制器放置y;
步骤6:判断costmin是否收敛,否则返回步骤2;
步骤7:k=k+1;
步骤8:向y添加一个新控制器,使同步成本最小;
步骤9:判断是否k≤Kmax,否则返回步骤7;
步骤10:直到结果收敛,输出结果。
2.根据权利要求1所述的方法,其特征在于,所述控制器的部署数量以及位置根据服务器之间的异构性以及微服务的部署情况确定;所述微服务根据控制器部署的情况连接至控制器。
3.根据权利要求2所述的方法其特征在于,所述服务器之间的异构性包括服务器之间的带宽,服务器的处理能力。
4.根据权利要求1所述的方法其特征在于,多个控制器之间进行同步通信,所述同步通信发送的信息包括:控制器本身的状态、控制器管理的服务状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210912040.8A CN115426257B (zh) | 2022-07-29 | 2022-07-29 | 一种面向服务网格的多控制器架构与部署方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210912040.8A CN115426257B (zh) | 2022-07-29 | 2022-07-29 | 一种面向服务网格的多控制器架构与部署方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115426257A CN115426257A (zh) | 2022-12-02 |
CN115426257B true CN115426257B (zh) | 2023-09-05 |
Family
ID=84196125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210912040.8A Active CN115426257B (zh) | 2022-07-29 | 2022-07-29 | 一种面向服务网格的多控制器架构与部署方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115426257B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108667868A (zh) * | 2017-03-30 | 2018-10-16 | 杭州达乎科技有限公司 | 一种用于广域网长距离通信的sdn网络控制平面的部署架构 |
CN113296927A (zh) * | 2020-06-09 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 服务网格实例的构建方法、服务网格系统以及多集群系统 |
CN113647056A (zh) * | 2019-04-03 | 2021-11-12 | 思科技术公司 | 扩展企业可信策略框架到云原生应用 |
CN114423023A (zh) * | 2021-12-08 | 2022-04-29 | 重庆邮电大学 | 一种面向移动用户的5g网络边缘服务器部署方法 |
CN114697207A (zh) * | 2020-12-28 | 2022-07-01 | 瞻博网络公司 | 具有网络性能参数支持的边缘控制器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220109733A1 (en) * | 2021-11-19 | 2022-04-07 | Intel Corporation | Service mesh offload to network devices |
-
2022
- 2022-07-29 CN CN202210912040.8A patent/CN115426257B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108667868A (zh) * | 2017-03-30 | 2018-10-16 | 杭州达乎科技有限公司 | 一种用于广域网长距离通信的sdn网络控制平面的部署架构 |
CN113647056A (zh) * | 2019-04-03 | 2021-11-12 | 思科技术公司 | 扩展企业可信策略框架到云原生应用 |
CN113296927A (zh) * | 2020-06-09 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 服务网格实例的构建方法、服务网格系统以及多集群系统 |
CN114697207A (zh) * | 2020-12-28 | 2022-07-01 | 瞻博网络公司 | 具有网络性能参数支持的边缘控制器 |
CN114423023A (zh) * | 2021-12-08 | 2022-04-29 | 重庆邮电大学 | 一种面向移动用户的5g网络边缘服务器部署方法 |
Non-Patent Citations (1)
Title |
---|
一种自管理的轻量化网格平台参考模型;顾军;罗军舟;;东南大学学报(自然科学版)(第S1期);185-191 * |
Also Published As
Publication number | Publication date |
---|---|
CN115426257A (zh) | 2022-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ren et al. | Enabling resilient distributed power sharing in networked microgrids through software defined networking | |
US10795737B2 (en) | Generic distributed processing for multi-agent systems | |
CN103369601B (zh) | 为手机客户端提供大并发处理及流量控制的方法 | |
Verma et al. | An efficient data replication and load balancing technique for fog computing environment | |
CN109947574B (zh) | 一种基于雾网络的车辆大数据计算卸载方法 | |
CN102299959B (zh) | 一种数据库集群系统的负载均衡实现方法和装置 | |
CN108566289B (zh) | 基于5g移动通信网络切片架构设计管理方法 | |
CN108712464A (zh) | 一种面向集群微服务高可用的实现方法 | |
WO2018121201A1 (zh) | 分布式集群服务结构及节点协同方法和装置、终端及介质 | |
CN113645146B (zh) | 基于新流密度的软件定义网络控制器负载均衡方法及系统 | |
Li et al. | Deployment of edge servers in 5G cellular networks | |
KR102110099B1 (ko) | 퍼블릭 클라우드 및 프라이빗 클라우드를 포함하는 컨테이너 기반의 클라우드 서비스 제공 시스템 | |
Chang et al. | Adaptive replication for mobile edge computing | |
KR102090911B1 (ko) | 컨테이너 기반의 클라우드 서비스 제공 시스템 | |
Yamanaka et al. | Proximity-aware IaaS in an edge computing environment with user dynamics | |
Tsukamoto et al. | Feedback control for adaptive function placement in uncertain traffic changes on an advanced 5G system | |
CN102957549A (zh) | 一种跨平台的远程服务器管理系统及方法 | |
CN115426257B (zh) | 一种面向服务网格的多控制器架构与部署方法 | |
CN103297542A (zh) | 一种支持构件在线伸缩的云操作系统总线及均衡方法 | |
CN112351106B (zh) | 一种含事件网格的服务网格平台及其通信方法 | |
CN105847428A (zh) | 一种移动云平台 | |
Wang et al. | Load Balancing Strategy of Power Communication Network Based on SDN Controller | |
Cohen et al. | Distributed asynchronous protocol for service provisioning in the edge-cloud continuum | |
Dhakal et al. | Load balancing in the presence of random node failure and recovery | |
CN103200225A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |