基于k3s的融合主机应用管控平台在线仿真系统研究
扫描二维码
随时随地手机看文章
0引言
随着城市轨道交通系统的迅猛发展,智能化、自动化水平的不断提升对城轨列车的监测和管理提出了更高的要求。现代城轨列车中各类监测子系统的数量不断增加,其中包括但不限于智能调度系统[1—2]、故障诊断系统等[3—5]。这些子系统之间需要高效的协作与协调,以确保列车运行的安全性和稳定性。因此,车载设备的高度标准化和统一化成为当前城轨列车发展的必然趋势。近年来,城轨列车主机融合技术[6]的研究逐步取得了一定进展,通过集成多个子系统的功能,融合主机能够实现对各类监测任务的合理调度、资源分配和管理,从而提升整个系统的整体性能和可维护性。
然而,尽管相关技术已取得初步进展,车载系统的调试工作依然面临诸多挑战。由于资源限制,传统的调测工作仍然依赖于调测人员现场跟随车辆进行操作,这不仅增加了现场调试的复杂性,也大大提高了调试成本和工作强度。此外,由于不同调测人员之间需要协调,在紧张的工作环境下,调试工作的效率常常受到影响,进而影响系统的开发进度和最终交付。因此,如何提高调试效率、降低调测人员的现场工作负担,成为当前亟待解决的重要问题。
针对上述问题,越来越多的研究者开始关注如何通过虚拟化和容器(如Docker[7])化技术提升车载系统的调试效率。容器技术作为一种轻量级的虚拟化解决方案,在软件测试和调试过程中展现出极大的潜力[8]。容器化技术能够提供高效、可扩展的仿真环境,避免了传统虚拟化技术的资源开销,支持更高效的远程调试和资源调度。同时,容器技术还具备良好的隔离性和可移植性,为多租户[9]的并行开发和测试提供了有力保障。
本文提出并实现了一种基于容器技术的融合主机应用管控平台在线仿真系统,通过k3s集群技术,提供对车载系统的应用管控、远程调试和仿真支持。系统支持多租户特性,可为不同用户提供独立的测试环境和操作权限,确保各子系统调试数据的安全性和隔离性。通过该系统,调测人员能在仿真环境中进行调试和测试,有效减轻现场调试的工作量,提高调试效率。此外,系统还实现了数据的持久化存储功能,可为后续的分析和优化提供数据支持。
1 背景知识
1.1 kubernetes简介
kubernetes[10] (简称k8s)是一个开源的容器编排平台,旨在自动化容器化应用的部署、扩展和管理。它最初由Google开发,现由CloudNativeComputingFoundation(CNCF)维护,已成为现代云原生应用和微服务架构的核心组成部分。
k8s旨在简化多容器应用程序的管理和部署。使用k8s,运维人员可以精确地为每个容器分配资源,并将多个容器组合在同一个pod中,k8s会自动处理容器的部署、维护,并确保所有组件保持同步,确保应用的高可用性与稳定性。
一个k8s集群通常由至少一个主节点和多个工作节点组成。主节点组成的控制平面是k8s的管理层,负责集群的全局管理。控制平面包含一个k8sApI服务器,它提供k8s的主要ApI。所有k8s组件之间的通信都通过ApI服务器进行,所有集群资源都以ApI对象的形式呈现。控制平面的另一个重要部分是kube— controller—manager,它包含多个子控制器,负责监控不同类型的资源对象(如pod、服务等)。控制器不断监测资源对象的当前状态,并将其与期望状态进行对比,尽力将当前状态调整到所需的目标状态。k8s中的“状态”是指资源对象的时间性属性。最后,控制平面还包括一个调度器,负责将应用程序的pod调度到适当的工作节点。
然而,在物联网环境中,由于设备资源的有限性,无法直接在这些设备上部署传统的k8s。这使得原生k8s在这些场景下并不适用,迫切需要对其进行简化和优化,以适应资源受限的设备和边缘计算需求。
1.2K3s简介
k3s[11]是由RancherLabs开发的一个高可用、经过认证的轻量级k8s发行版,旨在解决传统k8s在资源受限环境中的部署难题。k3s简化了k8s的一些核心组件,更加适合运行在低功耗设备、物联网或嵌入式系统等场景下。
k3s的最大特点是轻量化,它大大减少了k8s的内存和存储需求,优化了二进制文件的大小,使得部署更加高效。虽然进行了简化,但k3s依然保留了k8s的核心功能,包括容器编排、自动化部署、负载均衡等,确保用户可以继续使用k8s提供的强大功能。
此外,k3s还特别注重易用性和快速部署,提供了简化的安装流程和配置方式,减少了运维人员的操作复杂度。用户可以通过简单的命令快速启动k3s集群,并在多个节点之间轻松扩展。
k3s架构[12]如图1所示。对于k3s主节点,ApIServer负责验证和管理集群的组件,如pod、复制控制器和服务。controller Manager负责监控并共享集群的状态,并根据需要调整集群的状态以达到期望状态。Scheduler根据约束和可用资源找到已创建且未调度的pod,并将其分配到节点。k3s支持许多数据库,如etcd3、MySQL、postgres和SQLite3。图1中的SQLite是k3s的嵌入式数据库,是一种低内存占用且比传统数据库更易于操作的数据库。Tunnelproxy负责集群内部的通信,来自k3s主节点的命令被发送到k3s工作节点,k3s工作节点的状态也通过Tunnelproxy报告给k3s主节点。
对于工作节点,kubeproxy是一个网络代理,负责在节点上维护网络规则,其作用是负载均衡。Flannel是一个非常简单的覆盖网络,支持集群中的容器间、pod间、pod与服务间 以及外部与服务间的通信。Tunnelproxy负责与k3s主节点进行通信。kubelet是一个在集群中每个节点上运行的代理,它由主节点的ApIServer指挥,负责管理容器。
2 系统设计方案
该系统采用了三层架构设计,如图2所示,从下到上依次分为资源层、服务层和应用层,每一层都有明确的功能定位和职责。
2.1 资源层
资源层是系统运行的基础,主要包括硬件和基础软件资源。具体而言,资源层包含物理服务器、网络设备、orin主机和操作系统。物理服务器和网络设备为系统提供了必要的计算、存储和通信能力,而Orin主机组成K3S集群,提供算力支持。
2.2 服务层
服务层是系统功能的中间支撑层,提供各种核心服务和数据支撑。服务层的组件包括K3SAPI、MYSQL数据库、文件系统和缓存服务。容器编排和管理通过K3SAPI来完成。MYSQL数据库用于存储和管理系统的结构化数据,例如用户信息、操作记录等。文件系统主要存储非结构化数据,如上传的文件、配置文件和 日志等。缓存服务则用于加速数据访问,减少对数据库的直接请求,提高系统的响应速度。该层提供稳定、高效的服务接口,支持应用层的各项功能。
2.3 应用层
应用层是直接面向用户的系统功能模块,提供一系列具体的业务功能。应用层包括用户管理、多租户管理、镜像管理、容器实例管理和 日志管理等模块。用户管理模块实现用户的注册、登录、权限分配等功能;多租户管理模块支持不同租户的资源隔离和权限控制;镜像管理模块用于管理容器镜像的上传、存储和构建;容器实例管理模块则负责创建、启动、监控和销毁;日志管理模块用于收集和展示系统及应用运行日志,便于用户进行问题排查和性能分析。
2.3.1用户管理
用户管理功能模块负责用户的创建、登录、认证、授权以及权限管理。在该系统中,不支持用户自注册,所有用户均由管理员创建并管理。这种设计更适合企业级或多租户环境,可以确保用户的权限分配和操作更加规范,同时减少因 自注册可能带来的安全风险。
在用户创建时,管理员可以通过后台管理界面对用户进行新增、编辑、删除等操作。新增用户时,管理员需要填写用户的基本信息,例如用户名、初始密码、隶属机构等,其中密码必须包含字母、数字和特殊字符以确保安全性。用户登录与认证模块采用了基于JWT(JSONWebToken)的身份认证机制,结合HTTPS协议对数据进行加密传输,从而保证用户登录会话的安全性。在认证通过后,系统生成的令牌会附带用户的角色和权限信息,以便于后续的权限校验。
在权限管理方面,该模块基于角色的访问控制模型实现灵活的权限分配。管理员可以为用户分配不同的角色,每个角色对应一组特定的权限。权限的范围和粒度可以根据实际需求进行配置,例如限制用户仅能管理自己的资源或容器实例,而管理员则拥有全局管理权限。
2.3.2多租户管理
该系统通过可视化界面,支持管理员创建和管理多个租户,为每个租户分配独立的资源,设置权限,确保租户之间的隔离性和安全性。不同于传统的多租户管理方式,基于K3S的系统简化了这一过程,使得管理者能在无须深入了解复杂配置的情况下,快速部署和管理租户。
在多租户环境中,为了确保每个租户的资源不会互相干扰,系统为每个租户提供了独立的CPU、内存和存储配额管理。这些配额的设置可以防止某个租户过度占用资源,从而影响到其他租户的运行。管理员可以根据租户的需求动态调整这些配额,确保资源的合理分配和最大化利用。
此外,系统为不同用户分配了细粒度的权限控制。管理员、普通用户等不同角色具有不同的访问权限,确保每个用户只能访问和操作他们有权限的资源。通过这种角色区分和权限管理,系统防止了权限滥用和不必要的访问风险。例如,普通用户只能访问自己所属租户内的资源,但无法访问其他租户的资源。这种权限管理方式不仅增强了系统的安全性,也确保了不同租户之间的完全独立性。
2.3.3镜像和容器实例管理
普通用户能够通过这两个功能完成从镜像创建到容器实例管理的全流程操作。用户可以选择系统提供的基础镜像,根据特定需求进行个性化定制,生成新的镜像。创建完成后,系统会为每个镜像提供清晰的元数据信息,包括镜像名称、大小、创建时间等,便于用户对资源的精细化管理。此外,用户可以随时查询当前的镜像列表,快速定位所需资源并查看其详细状态。对于不再需要的镜像,系统允许用户自行删除以释放存储空间。同时,容器实例管理功能进一步提升了系统的灵活性,用户可以实时查看运行中的容器实例状态,并在必要时对特定实例进行删除操作,从而在保证资源有效利用的同时,减少了资源浪费,降低了冗余管理的复杂性。
管理员不仅可以使用普通用户的所有功能,还具备独立的审批与监控能力。用户提交的镜像创建申请需要经过管理员的审核,以确保镜像内容的合法性与合规性,防止安全隐患的产生。同时,管理员可以根据实际需求对用户的资源使用进行动态调整,例如为不同用户设置镜像大小的上限,从而实现对系统存储资源的科学分配。此外,该模块还赋予管理员全面的监控能力,包括实时查看所有用户的镜像和容器实例的状态,及时发现潜在问题并采取相应措施。
2.3.4日志管理
日志管理功能能够帮助开发人员、运维人员以及测试人员实时监控和分析系统的运行状态。系统不仅能够实时收集平台的运行日志,还能够集中管理和展示容器中各个应用的运行日志,确保整个调试过程的可追溯性和可操作性。通过这种可视化观测,用户可以直观地看到系统在运行过程中发生的各种事件和状态变化,从而更快速地定位和解决问题。尤其是在复杂的分布式环境中,容器化应用可能会产生大量的日志数据,这些日志不仅是调试过程中的关键信息,还是监控系统健康、评估性能瓶颈、检查资源使用情况的重要依据。通过集成日志管理和可视化分析工具,系统能够将不同来源的日志集中汇聚,方便用户从多个维度对系统进行全方位的分析。
平台的 日志系统不仅限于记录简单的运行事件,还能够提供深入的调试信息,包括容器中应用的详细运行日志、请求响应的时间戳、错误信息、异常堆栈、服务之间的调用链路等。
为了提升日志管理的效率和可用性,系统在提供日志可视化功能的同时,还确保了日志的访问、读取和删除具有严格的权限控制。每个日志文件都关联着特定的用户和租户,系统依据角色和权限对日志文件的访问进行管理。例如,管理员可以访问整个系统的所有日志文件,查看集群中各个节点、容器的运行情况,获取关于系统健康状态的全面信息。普通用户则只能访问和操作自己所在租户的日志,确保数据隔离性和安全性。而针对不同的租户,系统通过精细化的访问控制来保障数据隐私和操作安全。每个租户的日志文件会进行权限标记,确保租户只能在授权范围内查看、读取、删除日志。这种权限控制不仅满足了多租户环境中的安全需求,还能够帮助管理员有效管理不同租户之间的资源和数据使用,避免未经授权的访问和操作。通过细粒度的权限控制,平台能够有效防止日志数据的泄露或滥用,同时保持系统调试过程的高效性和安全性。
3 实验与应用
3.1 实验环境
实验环境由三台NRU—222S通过交换机联网组成,其中一台为主节点,两台作为从节点。NRU—222S实物图如图3所示,其硬件配置如表1所示。
本文开发的系统以及集群运行所依赖的软件环境如表2所示。
3.2 系统应用
该系统总的工作流程如图4所示。流程从管理员创建组织机构和用户开始,用户登录系统后,创建镜像并填写镜像名称及版本号。接着,用户需要上传与打包镜像相关的tar包文件或对现有文件进行修改,用于打包镜像。完成后,用户可以推送镜像并验证打包是否成功。
如果打包失败,用户可以查看错误信息并进行修正,直至打包成功为止。在打包成功后,流程进入管理员审核环节,管理员需要审核用户提交的镜像是否符合要求。若审核通过,用户可以选择基于镜像创建容器实例。用户既可以创建单个镜像实例,也可以创建多个镜像实例,并为实例填写P0d名称。最后,系统支持用户查看和下载软件日志及容器日志,以便跟踪和维护。
4 结束语
本文设计实现了一个融合主机应用管控平台在线仿真系统,具备用户管理、多租户管理、镜像与容器实例管理以及日志管理等核心功能,支持调测人员在仿真环境中远程进行调试,解决了跟车调测任务重、效率低等问题。通过在实际环境中进行部署与验证,证明了系统的可用性和稳定性,能够满足企业级环境下多用户和高性能的业务需求。
[参考文献]
[1] 肖婧.轨道交通线网运营智能调度系统的设计与实现[J].绿色建造与智能建筑,2024(10):150—154.
[2]何世伟,宋瑞,张威,等.面向易行的高速铁路智能平行调度系统构架及关键技术[J].中国铁路,2024(7):164—171.
[3]戎志立,于苡健.城市轨道交通主动障碍物检测预警防护系统研究[J].工程建设与设计,2022(10):113—115.
[4]邬春晖,夏志成,高一凡,等.城轨列车走行部地面检测系统研究与设计[J].都市快轨交通,2021,34(4):69—74.
[5]茅迫,高琦,梁师嵩.城轨列车智能综合检测系统的研究与应用[J].机车车辆工艺,2023(1):12—16.
[6] 陈志,吕红强.城市轨道交通列车融合检测主机系统研究[J].城市轨道交通研究,2025,28(1):297—300.
[7] 蔡永健,牛家宝,何栓康,等.Docker技术在提升软件研发效能中的研究与应用 [J].计算机应用文摘,2025,41(2):167—169.
[8]何昆霖,周国强,张超.基于容器云技术的信号集中监测系统架构研究[J].铁道通信信号,2024,60(11):15—20.
[9]王海波.4A模式下应用系统多租户技术研究[J].软件,2024,45(10):139—141.
[10] kubernetes官网.kubernetes概述[EB/0L].(2024—09—16)[2025—05—27].https://kubernetes.io/zh—cn/docs/concepts/overview.
[11] Rancher.k3s—轻量级kubernetes[EB/0L]. (2021—04—14)[2025—05—27].https://docs.rancher.cn/docs/k3s/-index.
[12] Rancher.k3s架构[EB/0L]. (2024—11—05)[2025—05—27].https://docs.k3s.com.cn/architecture.
《机电信息》2025年第17期第6篇





