周强 欧文吉斯
摘要:云计算作为近年来非常热门的技术,众多云平台应运而生,受到了广泛关注。目前,应用的增加不再仅仅局限于功能的简单增加,而是更加关注如何降低对基础设备的需求。容器的出现解决了这一问题,由于容器具有轻量级的优势,将应用放在容器中可以减少对基础设备的要求。在日常的教学和实训中,所需的资源也可以作为应用部署在容器中,因此基于云容器平台对教学实训具有重要意义。
关键词:云容器;基础设备;教学实训
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2024)14-0063-03 开放科学(资源服务)标识码(OSID) :
0 引言
近年来,随着移动互联网的快速发展,各种应用层出不穷。然而,许多应用对硬件的需求过大等问题导致行业出现退热趋势。但是,云容器的出现解决了这些问题。云容器[1]本身没有底层的操作系统,它将应用所需的环境和应用打包在一起,形成一个容器。由于云容器对底层硬件的需求较小,它有效地降低了应用对底层硬件的要求。云容器的轻量级优势[2]使其在商业、教育、科研等领域越来越受到重视和欢迎。
1 平台研究背景及意义
随着网络技术的发展,云计算[3]正在各行各业上得到应用,自“十二五”开始,云计算已成为国家重点发展的任务,到“十四五”时期,云计算已成为重点产业之一。市场上出现了各种云平台,其中最主要的技术包括KVM[4]、VMware、OpenStack[5]等,这些技术更加依赖底层的基础设施。虽然这些技术提供了标准化的管理,可以更加高效地管理计算、存储、网络等资源,但构建的过程相对复杂,所需的组件达到20多个,并且对底层硬件资源要求过高,成本也会相应地被放大。
容器技术(Docker) 是一种轻量级的沙盒技术[6],就像一个集装箱一样,将各种应用“装”起来打包在每个容器中,应用之间不会相互干扰。Docker技术是在2013年推出的[7],因其低成本、高性能的优点,近年来得到了众多开发者和用户的支持,目前该技术已经越来越成熟。Docker并没有操作系统,它直接打包应用所需的基础环境,容器可以共享同一台宿主机的内核。因此,与传统的虚拟机和主流的云平台相比,Docker在大小和启动速度等方面具有优势。
近年来,云计算发展迅速,市场对人才的需求仍然很大。许多高校看到了这个机遇,纷纷开设了云计算专业。云计算专业的核心课程包括OpenStack、Docker、Linux操作系统管理[8]等,这些课程旨在培养学生的动手能力。然而,很多高校的实训环境对设备要求过高,很难满足大量学生同时在真实环境中完成实训的需求,大部分实训都是通过虚拟机完成的。而云容器的出现,已经有很多企业将应用放在云容器中完成相关服务。因此,通过云容器完成教学实训具有重要意义。
2 该平台特点及优势
云容器技术是当今时代最先进的技术之一,其隔离和轻量化的优势使得教学平台具有以下特点。
2.1 课程资源集中灵活
将云计算专业课程资源部署在云容器中,可以快速更新课程内容,学生可以同步学习最新知识。
2.2 管理方便
该平台为教师提供方便的实训和学习管理工具。
2.3 提供可扩展的资源管理机制
学生可以根据需求快速创建、启动和销毁容器,提高实践能力和技术水平。
2.4 提高动手能力
平台提供符合市场需求的实训内容,帮助学生提前适应未来工作岗位的环境。
2.5 强大的兼容性
平台支持课程实训管理模块,可以添加新课程,并考虑加入思政课程,提高教学质量,丰富教学手段。
3 教学实训平台构建
集中采购的PC需要一次性支付大量的费用,无形中提高了成本。而且,PC的资源也不是一直被充分利用。相比之下,平台可以部署在租借服务器上,这样成本较低。以阿里云抢占式低配服务器为例,每小时每台服务器的资费在1元以内。采用租借形式,可以在不教学的情况下,释放资源,节约成本,以达到资源的最大利用。为了满足相关教学和实训,构建一套满足教学实训的平台部署在云端尤为重要,这样可以帮助学校以最小代价高质量地完成相关的实训。以下是基于云容器部署的一套教学实训平台部署和功能介绍。
3.1 基础环境部署
要部署平台的基础环境,可以按照以下步骤进行操作:
1) 选择操作系统:首先,选择适合需求的操作系统作为基础环境。常见的选择包括Ubuntu、CentOS和CoreOS等。确保选择的操作系统版本与使用的Ku?bernetes版本兼容。这里平台选用的是最小化安装的CentOS 7系统。
2) 安装Docker:Kubernetes使用Docker来容器化应用程序。因此,需要先安装Docker引擎。可以参考Docker 官方文档或操作系统的文档了解如何安装Docker。
3) 安装Kubernetes 工具:Kubernetes 提供了一些命令行工具,用于管理集群和部署应用程序。常用的工具包括kubectl、kubelet和kubeadm等。可以从Ku?bernetes官方文档或操作系统的包管理器中获取这些工具。
4) 配置Kubernetes集群:使用kubeadm工具来初始化和配置Kubernetes集群。包括在主节点上运行kubeadm init命令,按照输出的指示将工作节点加入集群。确保网络和DNS设置正确,并根据需求配置高可用性和安全性选项。
5) 部署网络插件:Kubernetes需要一个网络插件来实现容器之间的网络通信。常见的插件包括Calico、Flannel和Weave等。选择一个适合实际需求的网络插件,并按照其文档进行部署和配置。
图1展示了基础平台环境中三个节点的状态,它们的状态均为Ready,表示平台各个节点的运行状态正常。后期,如果平台资源不够,可以加入新的节点来扩展。图2展示了平台所需组件运行成的容器状态,这里可以看到各个组件的容器均运行成功,说明平台的基础环境搭建成功。
3.2 云容器平台功能介绍
针对云平台构建的问题,采用实验法进行研究。在实验过程中,可能会遇到各种报错,因此在构建之前,需要充分了解Docker和Kubernetes核心概念及组件的相关作用功能。可以线上查询相关部署文档,了解平台构建和部署的相关细节。最终,在服务器上完成每个模块的部署,并将所有模块调度起来,协同工作,测试平台的所有功能,并最终访问所有功能。该平台主要用于教学与实训,以下对3个平台各自的模块进行介绍。
3.2.1 教学平台
1) 资源监控和学情管理:可以监控包含在线的学生数量以及各个学生对服务器资源的利用等情况;同时可以管理所有学生实验、习题和考试等数据。
2) 课程管理:系统管理员可以统一管理所有的课程,可以对PPT、实验操作文档、章节练习等课程资源进行管理,并且可以随时对这些资源进行新增、修改和删除。
3) 用户管理:管理员账户可以统一创建教师和学生账号,并且可以修改账户的基础信息,包括账户的工号(学号)、姓名、所属专业等信息。
4) 练习与考试管理:教师账户可以创建练习和考试,发布给指定的学生或者班级,学生账户完成后,教师可以进行批改。
5) 试题库管理:提供专业课程配套考试试题库。
6) 试卷库管理:提供考试试卷库功能,具有发布考试、修改试卷等功能。
3.2.2 实训平台
1) 虚拟机模板管理:管理员通过设定虚拟机模板的CPU、内存等信息来控制发放给学生的实训虚拟机的规格,使得服务器的资源得到最大化利用。
2) 镜像仓库管理:平台提供Ubuntu、CentOS等主流的镜像,管理员账户可以统一管理镜像仓库中的镜像。
3) 虚拟机管理:管理员可以对每台虚拟机进行管理,随时监测虚拟机的状态;支持对虚拟机实例的启动、关闭、重启、挂起等操作;支持教师根据教学需求在线创建包含不同组件、不同规模的虚拟机环境,即可以支持单机虚拟机环境和多机虚拟机集群实验环境。
3.2.3 教学空间平台
1) 教师空间。教师可以在该平台进行备课,制定对应的教学计划。
①在线备课授课:教师可以在线进行备课和授课。
②课堂助手:提供教师在上课时查看当前授课班级学生实验进度和章节实验任务完成进度的功能,同时支持教师远程指导协助学生解决实验问题。
③在线报告及习题评分:教师可以直观地查看学生各个章节任务报告并进行评分,提交后可自动统计成绩。
④学情管理:教师可以查看学生个人学习实训数据,实时更新学习情况。
2) 学生空间。学生可以提前在平台上预习、复习课程,并进行相关练习。
①在线实验学习:学生可以查看计划相关课程的课程名称、课程大纲以及课程课时等信息。
②在线视频学习:支持学生观看课程配套实验指导视频进行学习。
③在线习题练习:支持学生在线完成教师配置的章节课后习题练习。
④我的学情:学生可以查看个人实验报告成绩、实验报告平均分和实验任务完成情况分析。
云容器平台相比传统方式的优势在于,它能够提供高效、安全、可靠的容器化应用程序部署和管理功能,同时可以在租借服务器上运行,节约成本,并能够最大程度地利用资源。此外,云容器平台还支持多种操作系统和应用程序类型,提供了灵活的选择和可扩展性,为用户提供了更好的灵活性和可靠性。
3.3 平台部署与实训环境
通过应用部署和前端界面设计,构建了3个平台的相关镜像,并将其生成云容器,发布在服务器上。管理员、教师和学生可以通过给定地址的网页登录账户,完成相关操作、教学和实训。学生实训需要实验资源,而实验资源是通过向服务器申请容器应用来完成的。当学生实训结束后,所有容器都会被释放,保证服务器的高可用性。
为了提高平台的高可用性和监控管理水平,部署了一些监控和日志工具,例如Prometheus、Grafana和ELK Stack等。这些工具可以帮助收集和分析集群中的指标和日志数据。学生可以通过监控和日志功能来了解应用程序的性能和行为,例如容器的资源使用情况、网络流量和日志输出等,从而更好地理解和调试应用程序。这对于学生来说是非常有价值的,因为他们可以通过实践了解如何优化和改进自己的应用程序。
整个平台为学生提供了一个协作和分享的平台。学生可以将制作的容器镜像分享给其他同学或老师,以便共享和交流实训成果。这种协作和分享的机制可以促进学生之间的合作学习和知识共享,加强他们的团队合作能力和沟通能力。此外,平台还可以提供一个虚拟的容器化环境,让学生能够在隔离的环境中进行实验和实践,而不会影响其他环境。这样,学生可以在不影响其他环境的情况下进行各种实训活动,包括应用开发、系统部署和集群管理等。
4 结束语
传统的实训方式通常在配置较高的虚拟机上进行相关课程的实训,这样容易导致资源消耗过大,同时也难以直观地了解学生实训的情况。而本文所研究的平台通过云容器的优势解决了资源消耗过大的问题,并且可以集中管理学生实训,从而更直观地了解学生实训的情况。通过本文的研究,可以有效地最大化利用硬件资源,提高学生的动手能力。此外,还可以考虑将其他专业课程加入平台中,例如思政课程,通过平台教学化的方式提高课程教学和实训效果,为国家培养更多符合企业用人标准的技能型人才。
参考文献:
[1] 张峰.应用SpringBoot改变web应用开发模式[J].科技创新与应用,2017(23):193-194.
[2] 王伶俐,张传国.基于NodeJS+Express框架的轻应用定制平台的设计与实现[J].计算机科学,2017,44(S2):596-599.
[3] 陈康,郑纬民.云计算:系统实例与研究现状[J].软件学报,2009,20(5):1337-1348.
[4] 崔泽永,赵会群.基于KVM的虚拟化研究及应用[J].计算机技术与发展,2011,21(6):108-111,115.
[5] 李小宁,李磊,金连文,等.基于OpenStack构建私有云计算平台[J].电信科学,2012,28(9):1-8.
[6] 吴金坛,陈路路,李智鑫.虚拟机和容器超融合试验研究[J].计算机应用与软件,2021,38(9):10-15,59.
[7] 王亚玲,李春阳,崔蔚,等.基于Docker的PaaS平台建设[J].计算机系统应用,2016,25(3):72-77.
[8] 王文.项目驱动的“Linux操作系统” 课程教学改革[J].计算机教育,2007(18):77-79.
【通联编辑:谢媛媛】