本文是一篇计算机论文,本文针对工业环境下的适应于工业应用的云原生架构中容器化资源在批量部署与编排方面所遇问题进行分析研究。
第1章 绪 论
1.1 课题研究的背景
目前容器虚拟化技术正在成为云时代的技术新标准,海量服务正从基于虚拟机的单体架构转向基于虚拟化容器技术的云原生架构[1],容器技术的目标与传统虚拟机类似都是模拟一套供程序运行的环境,不同点是容器更加轻量不需要安装Hypervisor虚拟化软件[2]。容器基于操作系统内核Namespace机制实现独立运行环境,利用Cgroups实现资源限制与使用Chroot机制以拥有独立文件系统[3]。与传统虚拟机技术相比容器技术拥有快速启动、简化部署分发以及资源利用率相对较高的优势。
在工业场景中应用程序部署在边缘设备上提供服务。由于工业场景的复杂性,各种工厂的任务请求也具备多种类型,并且还存在设备资源有限的缺点[4]。而操作系统,如Linux可以支持丰富的硬件,但它略显臃肿有启动慢、耗电和资源消耗大等缺点,导致逐渐远离工业领域[5]。而对于RTOS,FreeRTOS在国外的应用更为广泛,其中作为初始嵌入式操作系统占比最多的是各大半导体大厂,如ST、TI等[6]。而QNX、RTX等嵌入式操作系统的应用也逐渐扩大。而随着工业级应用的日益发展逐渐复杂化与多样化,现如今的RTOS没有扩展与可插拔设计,会难以满足对于网络、需求与安全等多种需求[7]。而鸿蒙轻量级内核LiteOS-A是华为面向轻量级物联网的操作系统,并支持内存管理单元与空间隔离,华为为了让LiteOS-A支持更多开源软件还支持了可移植操作系统接口,让LiteOS-A的生态更为丰富[8]。近几年工业应用迭代速度加快,导致传统项目的部署方式无法适应,这会造成开发周期变长以及部署相对复杂等问题。在工业物联网场景下的物理设备呈现出不断增加的趋势对于网络带宽的性能带来新的挑战[9],同时现阶段流行的分布式方案与虚拟化容器应用程序对工业设备的运算性能、时延和安全性等方面都提出了更高的要求。
1.2 国内外发展现状
在国外,2010年开源的云计算管理平台项目OpenStack逐渐兴起,并支持Hyper-V、QEMU以及ESX等虚拟化方式,现如今流行的容器云平台根据OpenStack而来[13]。随着虚拟化技术的高速发展,渐渐得到云平台架构的青睐。但是,对批量部署,节省资源和减少部署复杂度的等需求又引起了虚拟化容器技术的崛起[14]。从基础设施 即服务 到平台 即服务的技术革命由Docker引发[15]。从而改变了当前应用的部署方式,为厂商减少了资源浪费,但是Docker只提供虚拟化服务的功能,而对于集群或容器云的构建能力依然缺失[16]。所以,后来谷歌公司推出了Kubernetes[17]容器编排技术,容器化应用或服务在Kubernetes中进行自动化托管与高可靠运行。现阶段大多企业是使用Docker对项目进行虚拟化,Kubernetes提供的批量部署、健康监测以及自动化运维等容器化管理机制进行集群化管理[18],使用Kubernetes作为虚拟化容器应用的编排和管理平台,可以彻底丢弃传统运维的繁杂且重复的工作。Rodriguez [19]等人针对固定资源大小的容器云中在无法自动缩放集群大小的场景下没有考虑特定于公共云环境功能的问题。通过将应用程序整合到更少的节点中运行与根据集群的工作负载在运行时自动调整资源数量提出的资源管理方法来降低成本支出。Guerrero [20]提出了在多云架构中使用的一种基于微服务的容器化应用优化方法,提高可靠度与降低云服务成本。
在国内,徐敏贤[21]等人针对云工作负载和多样化特征增加编排机制的复杂性,提出基于机器学习的容器编排策略,通过行为建模和多维性能指标的预测提高编排效率。如今各大互联网公司对云平台的重视程度逐渐提高。阿里云根据不同任务需求对容器化应用进行自动托管和智能运维[22]。可以更加便捷的开发与部署,支持多种主流开发语言与中间件,降低应用部署时复杂环境的配置,增加项目开发效率,相比国内其他厂商也是相对较强的云计算平台。阿里云会对接公司的其他业务进行资源整合,并基于多种容器引擎提供对多种资源的批量部署服务、滚动更新服务以及弹性伸缩等服务[23]。随着全行业逐步上云的趋势,企业对云化转型的速度也在稳步提升,提升企业中项目的生产与上线效率,对降低企业试错成本有着明显的效果。
第2章 相关技术概述
2.1 容器虚拟化技术
虚拟化技术旨在基于一个设备物理环境,将多个模拟设备虚拟化。随着计算机技术和互联网技术的飞速发展,虚拟化已经成为一种趋势[27]。在计算机的发展中,各个运营商服务器资源利用率低的现象充分暴露,多数服务器运营商仅能实现单一的应用与任务,不支持混用造成了大量服务器资源浪费,显着增加云平台运营商维护成本[28]。因此,如何实现服务器的多机群运行以及如何提高服务器资源使用率成为了一个重要研究内容。利用虚拟化技术可以解决上述问题,在同一台服务器中模拟不同生产环境,使服务器资源的高效利用成为可能,减少运营商的成本[29]。一个虚拟机建立时Hypervisor将配置相应的物理资源,同时加载操作系统。保证虚拟机运行在正确的环境中,提高系统稳定性与可靠性,避免因为虚拟机故障而造成整个网络瘫痪,为用户带来极大便利[30]。当然,虚拟化技术仍有许多需要解决的问题。例如,在虚拟网络中需要部署大量的虚拟机,一旦某个虚拟机出现问题,其它虚拟机也将面临同样问题[31]。虚拟机间数据一般互相共享,并可进行交互,若通讯不安全,会造成一系列的安全隐患。所以,为了保证虚拟机间数据安全传输,必须要有一套完善的管理制度来规范其操作行为[32]。虚拟化时若Hypervisor有单点故障管理程序,管理程序不再运作,然后整个体系就受影响了。
容器技术是一种轻量级的应用程序虚拟化技术,增强安全性同时确保灵活调用资源。随着虚拟化技术的快速兴起,虚拟机成为了众多厂商开发虚拟机系统的首选[33]。Docker是基于LXC开发的,在2013年由dotCloud公司发布了这一开源项目,与传统虚拟化技术相比较,具有更加优秀的可移植性和灵活性、安全性,可拓展性等特征,它以其优异的特性,近年来得到广泛的应用[34]。Docker架构图如2-1所示。Image包含程序运行环境参数与依赖,容器是通过Image建立的,用户可按需使用对应的命令,打造定制化容器。容器中保存有大量的应用程序信息和其他重要数据,需要管理这些资源时只需打开对应容器即可,因此具有良好的可扩展性[35-37]。Docker采用CS架构,用户可通过Docker Client以命令行形式向服务端传送数据,服务端通过Docker守护进程Docker daemon来接受指令,Docker daemon在按照指令执行对应分发调度后,执行容器、镜像以及服务器资源的运行。
2.2 云原生技术
云原生提高了云上资源利用率,提升应用交付效率等。云原生在语义上蕴含着一系列云计算技术与管理方法,就是公共云中的云用户、在私有云与混合云之间部署可缩放服务工具集。云原生架构如图2-3所示,包含了以Kubernetes为代表的云原生基础设施,以及构建于基础设施之上的云原生应用和架构[45]。
云原生基础设施包括硬件、操作系统和分布式云环境,对于普通用户来说是不可见的,只有平台管理员有访问和控制权限。云原生基础设施包括自动化运维、弹性伸缩、自我修复、持续交付和微服务等特性,能够快速响应变化,满足不断变化的业务需求。虽然对于普通用户来说不可见,但它是构建强大云服务系统的核心所在,能够提供高可用性、高性能、高效率的服务。
随着互联网高速发展,各种应用发展迅速包括工业应用。这导致了全面采用云计算的趋势。但随着规模增长,云平台底层技术面临着越来越大的挑战[46]。为了应对这些挑战,应用程序正在从单体应用向分布式微服务转变,从虚拟机向轻量级容器转变,以实现全面的云原生化转型。
第3章 轻量级容器化资源组合策略研究 ............... 10
3.1 轻量云环境中进程管理与整体编排问题分析 ............................ 10
3.1.1 轻量云环境中容器进程管理问题分析 .................................. 10
3.1.2 轻量云环境中容器整体调度问题分析 .................................. 12
第4章 强依赖容器组编排策略研究 ............................ 23
4.1 轻量化容器云环境中服务跨节点调用开销问题描述 ................ 23
4.2 强依赖容器组编排策略......................... 24
第5章 面向工业物联网的轻量化容器编排技术研究 ........................ 37
5.1 工业物联网容器云中的问题与描述 .............................. 37
5.2 基于LiteOS-A的轻量化容器编排技术 ............................ 38
第5章 面向工业物联网的轻量化容器编排技术研究
5.1 工业物联网容器云中的问题与描述
工业物联网技术已经在家用电器、农业机械以及煤矿机械等诸多生产领域进行应用,提升产品生产过程中规范化、自动化水平,同时对实时性与精准性方面也有所提升。实现了工业生产设备与产品互联。状态监测、实时数据捕获和能耗监测等功能。而当前工业发展迅速,工业生产系统逐渐复杂,对于工业物联网在资源调度,资源多样化和设备互通等方面都存在问题。现阶段工业物联网仍然面临着问题,如表5-1所示。
工业物联网领域的边缘节点只有一定的计算能力、存储能力以及网络带宽,然而随着日益发展,工业应用的复杂度与资源需求逐渐增加,导致工业边缘节点出现由资源不足而导致的计算过载的现象。
在工业场景下对于不同的场景也会有不同的任务需求与不同的资源配额。比如大量部署CPU密集型任务时就需要选择CPU运算性能强劲的多个节点进行部署,而对于网络资源要求较高的任务则需要有较高的实时性,需要及时反馈信息。在传统工业中,容器云平台尽管拥有大量计算资源,但是仍然有较大的传输时延,资源利用率不高,负载不均衡等特点,很难满足不同情景对资源的要求。
结论
本文针对工业环境下的适应于工业应用的云原生架构中容器化资源在批量部署与编排方面所遇问题进行分析研究,面对工业环境中应用对低时延、低消耗和可靠性的需求,提出了一种融合工业设备、边缘以及云端的框架基于LiteOS-A的轻量级容器化资源编排与管理技术解决相关问题。
(1)针对工业场景下容器云集群中进程管理与整体编排问题,提出轻量级容器化资源组合管理策略,该策略实现对工业物联网场景下容器云集群中具有超紧密关系的容器化进程进行排列组合为容器组作为整体编排单位,以提高容器云环境中对应用服务的编排效率与可靠性。
(2)针对工业场景中轻量级容器云内部服务在不同节点调用时的网路大量占用问题,提出了强依赖容器组优化策略。该策略会将工业微服务应用按照服务状态信息、服务资源需求和服务调用次数进行分组,从而能够有效地减少现阶段轻量级容器云调度策略在优化过程中忽略服务之间调用依赖关系所产生的大量网络占用问题。
(3)针对工业场景中物联网容器云中计算资源不足、计算资源多样化、数据传输实时性以及任务分布不均匀的问题。提出基于鸿蒙微内核LiteOS-A的轻量化容器编排架构。该架构包括云上资源管理层、虚拟化设备抽象层以及物联网设备层三部分,利用本文提出的强依赖容器组优化策略结合鸿蒙轻量级物联网操作系统LiteOS-A以及RPC远程过程调用技术使该架构拥有消耗资源更少、网络带宽压力更小与集群负载相对更加均衡的特点有效的适应工业物联网领域。
参考文献(略)