Page 286 - 《软件学报》2021年第12期
P. 286
3950 Journal of Software 软件学报 Vol.32, No.12, December 2021
2.2 FDN控制器
控制器是 FDN 中心化的调度组件,负责整个系统的正常运转.它负责流量优化和容器的编排,让计算任务
调度到更合适的边缘计算集群.同时,控制器还负责用户接入、代码库的维护、网关等功能,保持系统稳定高效
运行.FDN 控制器包含了以下几个组件.
1) FDN-Web:负责存储用户的个人信息、项目信息以及功能函数的创建等功能;
2) FDN 分发器:负责计算并实现容器的跨集群编排,优化每个计算任务的计算延迟.编排算法会在第 3 节
展示;
3) FDN 费用中心:负责记录用户使用平台所需要支付的费用;
4) FDN 网关:负责收集网络的流量信息以及函数的分发与路由、集群内的负载均衡等功能.同时,FDN
网关还承担着流量控制、安全策略管理、用户授权等功能,保证 FDN 系统安全可靠的运行;
5) FDN 代码库管理:负责管理和维护代码库的稳定和更新,并且判定用户上传的容器镜像是否合法以及
有效.
为了更好地管理分布式边缘集群,我们还设计了分层的控制器管理结构.在每个边缘计算集群内部有一个
控制器,分别管理自己所在的集群.而全网还有一个中心控制器,作为全网的指挥,收集来自各个集群控制器的
信息,以实现对全网信息的统一管理和调度.这种分层结构能够同时在中心和边缘端更便捷高效地管理各类计
算资源和网络流量,保证 FDN 平台的可靠运行.
2.3 边缘计算集群
为了让不同地理位置的用户享受更低的计算延迟,多个边缘计算集群分布在网络的不同地点,并由控制器
进行管理.我们为每个边缘服务器安装了容器的运行环境.当用户提交计算任务时,目标边缘计算集群会根据控
制器的容器编排策略,从代码库中下载、安装并运行任务所需要的容器.同时,它会接收 DNS 的映射指令并与对
应的用户绑定,与用户进行直接的数据通信,并最终将计算结果返回给用户.
2.4 DNS
DNS 为用户提供了统一的接口,用户在使用时,只需要输入一个 URL 地址,就可以访问计算资源.DNS 会解
析用户的地址,并且将地址和任务信息传送给中心控制器.同时,在容器编排时,DNS 将与控制器协同工作.当控
制器计算出容器编排策略后,DNS 会根据调度策略将目标边缘计算集群与用户进行绑定,通过发送映射命令,让
它们进行数据通信.我们指出 DNS 在 FDN 系统中起到了桥梁的作用,连接了用户与中心控制器,为控制器提供
准确的用户位置和任务信息.DNS 将解析用户信息与计算调度策略功能进行解耦,为系统的可扩展性提供了有
力支撑;同时也能够减轻中心控制器的压力,保证平台的可靠运行.在实际运行中,为了让用户以更小的延迟访
问 FDN 资源,我们采用了 Smart DNS 技术,优化地址访问和解析策略,以适应 FDN 在不同用户规模下的实际使
用效果.FDN 中采用的 Smart DNS 具体分为两个部分:1) 控制器根据容器编排算法,计算出最优的用户流量调
度策略,然后将用户的 IP 地址与边缘服务器对应,更新 DNS 服务器;2) DNS 本身不需要做任何修改,但它直接与
控制器联动,共同组成 FDN 的 Smart DNS 功能.
通过以上各个组件的协同工作,用户能够享受到便捷的计算服务,同时保证了用户的计算延迟.但是我们指
出,对于容器化技术,目前的容器编排器采用的是一些较为简单的编排策略(例如先来先服务、优先级等).这种编
排策略没有考虑到容器和网络流量等重要信息,会加大任务的计算延迟;同时,对于分布式的网络架构,现有的
编排器无法支持跨集群的资源调度,不能很好地支持边缘计算的系统架构.相比传统的单集群内部调度,跨集群
容器编排需要进行容器的迁移,需要考虑集群间的传播延迟;而单集群调度不需要考虑延迟,因为集群内部的传
播延迟约等于 0.我们指出:传统的容器编排方案(例如,使用 docker 和 kubernetes 分别作为容器引擎和编排器)
只支持单集群的容器编排,无法扩展到多集群容器编排.因此,本文为 FDN 设计了一种支持跨集群的容器编排
策略,支持在多个边缘计算集群间进行容器调度,发挥 FDN 控制器统一管理的优势,进一步优化容器化计算平
台的延迟.