2020.07
1概述
目前,高校的云计算、大数据、人工智能、网络安
全的专业实训室建设如火如荼。学校在如何科学地建设和管理专业实训室,为学生提供符合市场人才需要的实训教学环境,是学校领导和教学实训工作人员的一项挑战。
随着高校智慧校园建设的逐步普及,基于云计算实训的教学大量地使用在学校各种应用场景。传统的虚拟机技术与Docker 比较,前者明显占用了较多的系统资源。Docker 在启动速度、信息隔离和资源消耗方面的优势十分明显[1]。Docker 与虚拟机(VM)和大多数其他云技术相比,Docker 的安全性较低[2]。
学校建立云实训平台,学生可以根据老师的教学计
划,创建集成多个组件组成的镜像,镜像可以一层层叠加,方便老师教学演示,方便学生进行实训,减少安装部署的时间,提升学习效率。2Docker 容器2.1简介
Docker 是基于go 语言实现的开源的容器引擎,诞生
于2013年,最初发起者是DOTCloud 公司[3]。具有启动速度快和资源占用少的优点。一台普通服务器能运行数百个容器[4]。
Docker 是一个软件开发、分发、运行而准备的,并
且在互联网行业广泛使用的开源平台,它通过分离应用如何搭建云平台
和基础设施,从而实现更快的交付软件的目标。Docker 作为应用容器引擎用来创建容器,它包含:镜像(Im⁃age),容器(Container),仓库(Repository)3大技术。2.2Docker 与传统虚拟机的区别
容器使用Linux 内核中的实现进程组之间的隔离,
它是一个共享内核的虚拟化技术。传统虚拟化(以VM
为代表)通过Hyervisor 层实现安装多个GuestOS,每个GuestOS 都有自己的内核,GuestOS 之间完全隔离。根据研究报告:
《An Updated Performance Comparison of
Virtual Machines and Linux Containers》中显示容器相对于物理机其计算能力几乎没有损耗,而传统虚拟机的计
算能力损耗在50%左右[5]。下面从3个方面比较两者的主要差别:2.2.1隔离与共享
传统虚拟机要和特定IP 或者宿主机绑定,可以多
台虚拟机(单独包含完整副本)在单台设备上运行。Docker 容器通过隔离的方式共享操作系统内核。2.2.2性能与损耗
将Docker 与传统虚拟化相比较,前者资源损耗相
对要要小很多,从而提高服务器的利用效率并降低许可成本。2.2.3安全性
要从传统虚拟机方式的系统寻漏洞并且攻击到宿
主机或其他虚拟机,必须先要突破隔离层,这样安全性较高。Docker 容器则将应用程序彼此隔离并从底层基础架构中分离出来,这样安全性较低。2.3容器云建立实训平台的优势
使用容器技术构建平台层,将利用容器技术的优势
大大提高大量学生并发进行实验室操作时的效率,并降低实验室硬件投入。容器虚拟化只是为运行提供的一个依赖的环境。没有GuestOS,容器的运行效率高而安全性较低。
基金项目:2018教育部科技发展中心高校产学研创新基金-“新一代信息技术创新项目”。作者简介:李小孟,高级工程师。
基于Docker 容器技术的云实训平台建设
李小孟
(广州科技贸易职业学院,广州511442)
要:要更好地建设和管理高校专业实训室,为学生实训提供良好实训环境,是教学与管理人员需要思考的问题。研究建立基于Docker 云实训平台建设进行了探索,并探讨了Docker 存在的一些安全性问题,对Docker 在实训中的作用进行了总结。关键词:Docker
容器技术;实训室建设;云安全
105
2020.07
图1Kubernetes+Docker 搭建的容器云平台部署实施Docker 容器云,可以充分发挥轻量、弹性伸缩、快速部署、可移植等优势。教师在实训课程授课中演示以及学生动手实际实操效率大幅提高。同时更容易实现可以达到一个平台,可以用来大数据、人工智能、网络安全、云计算等多种课程的实训需要,促进学院专业组建设。
3建立容器云实训平台
学校在建立容器云实训平台时,采用Docker+Ku⁃
bernetes 建立容器云,接着基于容器技术构建的实验平台,最后根据课程需要,建设教学资源平台。3.1采用Docker+Kubernetes 建立容器云
采用Docker+Kubernetes 容器技术搭建底层云平台,
通过少量的服务器硬件资源虚拟出大量的实验需要的资源,创建集成多个组件组成的镜像,镜像可以一层层叠加,供学生在学习过程中进行大数据、人工智能、网络安全相关实验。Docker 利用引擎容器化部署应用,Ku⁃bernetes 提供部署和协调容器。如图1所示。
在实训教学过程中,随着学生的增多、课程内容变化等因素,当原来的平台已无法满足教学时候,要求对资源进行需要扩容。用Kubernetes 去管理Docker 集,即将Docker 看成Kubernetes 内部使用的低级别组件,简化了对集的管理。这种架构应用在实训中,教师与学生专注于使用软件功能,同时部署不再是一个大型工程。
Kubernetes 集主要包括两个部分:主节点和计算
节点,其中主节点负责管理功能,计算节点是负责计算任务完成。如图2所示。
3.2基于容器技术构建的实验平台
在教学实验场景中,为了能够让每一位学生用于独
立的实验环境(如hadoop、spark、人工智能等),需要部署一套能够为所有学生承载专业课程的实验环境的云平台。对于资源消耗巨大的专业课程实验场景,使用容器技术来实现比依赖传统虚拟化技术更高效地实现云基础平台。如图3所示。
学生在进行实训学习的过程是具有循序渐进的、重复性、破坏性等特征;Docker 的基础镜像只读写,不保存,非常有利于学生在专业课程实训的快速重复性操作,并且节省时间。
学生可以根据老师的教学计划,创建集成多个组件
组成的镜像,镜像可以一层层叠加,方便老师教学演示,方便学生进行实训,减少安装部署的时间,提升学习效率。3.3资源层建设
利用容器云平台可以内置多种实训课程。根据学院
专业组的建设进度,实训教学人员可以定制化开发制作镜像内容,便于学校开展教学工作,这样实现一个平台多种实训课程建设。
以大数据专业实训教学为例,在教学过程中,可以按课程需要调用相关的镜像进程开展大数据教学及学习。容器云平台课程镜像根据学习需求对hadoop、habase、hive、spark 等大数据实训相关服务组件在一个容器中进行相应的集成,如hadoop+hbase+hive 等,并在spark 镜像中加入了flume、kafka 等工具。学生在Web 页面创
建相应的镜像,待启动完成后各服务即可正常工作,不需额外安装部署。图3
Cluster
容器云平台WbeUI Master
Api-server:6443
Kube-scheduler:10251
Kube-controller-man ager:10252
Etcd:2379Kubelet:10250
Healthz:10248
Kube-proxy
CRI CNI
iptables docker Calico
hadoop spark Yarn
其他大数据
组件
图2
Kubernetes 集
Node1
Node1Node1
Master
Token
Kubeadmjoin
Node4
新节点加入
Client
Web Kubectl
Yam1文件
Api server Scheduler Controller Kubelet Kube-proxy Kube-dns Calico …
Pod 分配算法选择
Node1Node2Node3Node4
实验程序A 实验程序B Bins/Libs
Bins/Libs
Docker Engine Host OS Server 容器
Guest OS
Guest OS
Hypervisor Host OS Server 虚拟机
实验程序A
实验程序B Bins/Libs Bins/Libs (下转第115页)
106
2020.07
由于篇幅限制,现将镜像举例说明如图4所示。
4容器的安全性探索
使用云计算技术,必须考虑系统安全。Docker 作为
一款来源于互联网开源应用在实现上存在代码缺陷。根据CVE 官方记录,Docker 历史版本共有超过20项漏洞,现在Docker 版本更迭非常快,使用最新的版本可以把已发现的漏洞提前打上补丁。由于Docker 使用者可以上传创建的镜像,以方便其他用户实现共享下载,从而快速搭建生产环境,这样的便利操作也带来了一些安全问题。入侵者常常利用被下载的镜像植入篡改文件系统。可以通过Docker 提供校验机制提前预防问题发生。
入侵者利用Docker 本身的架构通过控制了宿主机上的一些容器的,接着对宿主机或其他容器发起漏洞攻击,这样的情况也会发生。可以采用最新的版本对安全进行加固。使用如SELinux,AppArmor,GRSEC 等安全的内核、内核补丁,提前预防入侵事件的发生。
5在高校实训工作的优势
(1)有利于帮助用户快速获取应用,实现资源弹性管理。
基于Docker 技术的容器云实训平台,可以实现使
用一个云平台进行多种课程教学。在具体教学过程中,建立教学资源,完善动手操作,成为教师关注的焦点,而不是教学环境。
(2)容器云快速提供教学环境,教师授课更高效。学生关注实训课程的实际动手操作,不必过多关注后台资源;教师在教学过程中,只需要关注大数据、人工智能教学、网络安全等专业的教学质量与过程,保证教学计划的高效完成。(3)容器云实训平台可以使管理工作简化,提升工作效率。
采用Docker+Kubernetes 容器技术有利于扩展资源简单高效。云计算与其他专业如大数据、网络安全、人
工智能实训想结合,既提升管理效率,又方便管理。
6结语
实训教学是高职学校提高学生动手能力的方法和工
具,实训教学水平高低和现代化程度是学校教学和管理水平的重要衡量标准之一。利用容器技术,学校可以实现科学地安排实训课程,节省资源,提高管理效率。
参考文献
[1]李娜.Docker 容器技术的发展及应用研究[J].数
字技术与应用,2018,36(11):95-96.
[2]Shu,R.,Gu,X.and Enck,W.(2017)A Study of Se⁃
curity Vulnerabilities on Docker Hub.Proceedings of the Seventh ACM on Conference on Data and Applica⁃tion Security and Privacy,ACM,Scottsdale,269-280.[3]WIKIPEDIA.Docker (software)[EB/OL].[2018G01
G17].
[4]应毅,刘亚军,俞琰.利用Docker 容器技术构建大
数据实验室[J].实验室研究与探索,2018,37
(2):264G268.
[5]容器VS 虚拟机的计算资源利用对比.研究报告:
《An Updated Performance Comparison of Virtual Ma⁃chines and Linux
Containers》.
图4配图内置CentOS 容器镜像
tems,2003,16(1):186-197.[3]毕萍.基于分类器融合的人脸检测算法研究[D].
西安电子科技大学.
[4]齐永锋,火元莲.一种结合2DLPP 与2DPCA 的人
脸识别方法[J].西南交通大学学报,2011,46
(6):910-916.[5]李球球
,杨恢先,奉俊鹏,等.2DPCA+2DLDA 和
改进的LPP 相结合的人脸识别算法[J].计算机工程与应用,2015,51(21):199-204.
[6]赵峰,杨健.结合投影算子与小波变换的人脸识
别方法[J].计算机应用,2013,033(A01):230-
232.
(上接第106页)
115