1、I边缘云原生虚拟化研究报告2024 年 1 月可信边缘计算推进计划II目次前言.III1 技术与需求概述.11.1 虚拟机和容器.11.2 OpenStack 与 Kubernetes.11.3 融合管理的演进:K8s 环境下运行虚拟机.31.4 开源项目简介.42 技术实践.92.1 生命周期管理.92.2 镜像管理.102.3 存储管理.132.4 网络能力.15III前言参与单位(排名不分先后):中国联合网络通信有限公司研究院,中国联合网络通信有限公司智网创新中心、可信边缘计算推进计划编写人:黄蓉 庞博 黄倩 陈丹 肖羽 蔡超 侯迎龙 隗英英 高沛 李晓旭 隋佳良 王蕴婷 李昂11技术与
2、需求概述随着网络技术和云技术的发展,边缘计算得到了广泛的应用。边缘计算可以解决高可靠低延迟的设备接入和海量数据的实时计算问题,云技术有力的保障和推动了边缘计算的应用。1.1虚拟机和容器虚拟机和容器是云计算中最常用到的应用部署和运行方式。虚拟机是伴随着虚拟化的技术出现的,容器则云原生技术的典型特征之一,他们的架构对比如下图所示:图 1:虚拟机与容器架构对比图如上图所示,虚拟化技术一般通过虚拟化层(hypervisor)来实现,通过虚拟化技术,虚拟机可以共享物理机的 CPU、内存、IO 等硬件资源,并在逻辑上实现相互隔离。每一个虚拟机都拥有独立的操作系统(客户机操作系统),所以虚拟机不依赖于宿主机
3、操作系统,其安全性和隔离性更强。但是虚拟机占用的资源较多,而且由于要模拟硬件,虚拟化层本身也会占用部分资源,对宿主机性能有一定的消耗。比较而言,容器则是使用宿主机的内核系统加上自身的文件系统。运行容器时是在使用宿主机的内核情况下加载文件系统,一般可以将容器看作是在内核上运行的独立进程。而精简的文件系统可以小到100MB 以内,因此容器比虚拟机占用资源的更少、启动速度更快。容器缺点是隔离性不如虚拟机,而且由于依赖宿主机内核,所以容器的操作系统选择一般会受到限制。两种技术的特点对比如下表:表 1:虚拟机与容器技术特点对比对比项虚拟机技术容器技术安全隔离性强,操作系统级别弱,进程级别对宿主机操作系统
4、依赖无有,需要相同操作系统内核启动时间慢,分钟级快,秒级磁盘占用大(GB)小(MB)虚拟化性能损耗大1小1.2OpenStack 与 Kubernetes从运行和管理平台来看,OpenStack2与 Kubernetes(K8s)3分别是对虚拟机和容器进行运行和管理的典型开源项目。OpenStack 是开源的云计算平台,利用虚拟化技术和底层存储服务,提供了可扩展、灵活、适应性2强的云计算服务。OpenStack 的服务分为核心功能和非核心功能。核心功能是指运行 OpenStack 系统必须的功能的组件,包括:Keystone(身份识别服务)、Glance(镜像服务)、Nova(计算机服务)、N
5、eutron(网络服务)、Cinder(块存储服务)、Swift(对象存储服务)、Horizon(控制面板服务)。非核心功能指的是实现附加功能的组件,如 Ceilometer(测量功能)、Heat(部署编排)、Trove(数据库服务)等。OpenStack 的各个组件(服务)之间使用标准的 API 接口调用,减少了服务之间的依赖。下图是 OpenStack 的逻辑架构图。图 2:OpenStack 逻辑架构图Kubernetes 是容器管理编排引擎,可以自动完成容器的部署、管理和扩展等操作,部署 Kubernetes的设备环境通常被成为 Kubernetes 集群。Kubernetes 集群逻
6、辑上可以分为两个部分:控制平面与计算设备(或称为节点)。控制平面的包含:kube-apiserver(接口程序,用于处理内部和外部请求)、kube-scheduler(调度程序)、kube-controller-manager(集群控制管理程序)、etcd(数据库)。计算设备包含容器运行时引擎、kubelet(节点代理程序)、kube-proxy(网络代理程序)。Kubernetes 的设计原则包括:安全、易于使用和可扩展。Kubernetes 同样遵循标准化 API 接口,而且 Kubernetes 实现了 CNI(容器网络接口)、CRI(容器运行时接口)、CSI(容器存储接口)等接口和 C