CN115033348B - 一种对虚拟机和容器统一管理方法、系统、设备及介质 - Google Patents
一种对虚拟机和容器统一管理方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN115033348B CN115033348B CN202210952795.0A CN202210952795A CN115033348B CN 115033348 B CN115033348 B CN 115033348B CN 202210952795 A CN202210952795 A CN 202210952795A CN 115033348 B CN115033348 B CN 115033348B
- Authority
- CN
- China
- Prior art keywords
- container
- virtual machine
- user
- network
- parameters
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
Abstract
本发明实施例公开了一种对虚拟机和容器统一管理方法、系统、设备及介质,将容器计算中的POD映射成为虚拟机,将其抽象成为相应计算单元,从而实现通过Kubernetes管理虚拟机,在单一的云计算管理平台(Kubernetes)中实现对虚拟机和容器的统一管理,在实际使用中,系统默认以容器为计算单元。如果用需要虚拟机,用户只需要对POD进行简单标注,系统将自动提供虚拟机计算单元。本发明实施例在几乎不改动用户使用习惯的前提下,将虚拟机管理平台移除,却能依然向用户提供虚拟机业务。用户不需要投入两套云计算管理平台,从而大大降低初期投入和长期维护成本。
Description
技术领域
本申请涉及云计算管理技术领域,具体涉及一种对虚拟机和容器统一管理方法、系统、设备及介质。
背景技术
云计算管理平台是云计算中核心组件,其管理和调度计算、存储和网络等资源,帮助用户高效而安全的使用相关资源。目前云计算技术正在从以虚拟机为中心过渡到以容器为中心,与之相适应的云计算管平台也从Cloudstack/OpenStack等过渡到了Kubernetes。尽管越来越多的业务转移到了容器计算,但虚拟机计算却依然拥有一些无可替代的优势,比如,更强的安全隔离能更好的保护用户的数据安全;完整的模拟物理机可以为用户构建更接近真实世界的研发环境。基于虚拟机的云计算的比例可能会越来越小,但因为这些优势,并不会消失。
虽然基于虚拟机的云计算不会消失,但传统的虚拟机运维管理平台则不一样,他们正在消失或者被更新换代。比如,Cloudstack因为商业运作的失败几近消失,OpenStack系统由于臃肿繁杂而难以维护而备受诟病。业界为了克服Openstack的缺点,发起了Kolla项目,其采用容器技术对OpenStack组件进行封装,然后将OpenStack部署在Kubernetes平台之上,这种分而治之的思路虽然改进了OpenStack的维护性,但是没有改变OpenStack软件的臃肿低效根本问题。业界进而发起了Kubevirt/Virtlet等项目,这些项目彻底抛弃了OpenStack既有实现代码,采用Kubernetes应用模式重新实现了整个虚拟机管理平台,其中Kubevirt最为成功,最有可能成为业界共同的选择。
Kubevirt一类的项目虽然重写了整个虚拟机管理平台,但是它们依然继承了OpenStack的设计理念,甚至部分具体实现还继续沿用了Libvirt虚拟机运行环境的接口实现,它的优点在于终端用户可以保持原用使用习惯,像使用OpenStack一样使用新的系统,无需新的学习成本,缺点是需要维护独立的虚拟机管理平台。
以此同时,容器计算阵营为了增强容器的安全,发起了类似Kata container的项目。这些采用虚拟机的Hypervisor来提供容器计算环境。这些新的技术对接容器运行接口(CRI)和Hypervisor,将业务实际运行在虚拟机内的事实从云管理平台角度屏蔽掉,让Kubernets无差别的管理这些计算资源。这个方案的优点在于终端用户可以按照原来的习惯使用Kubernetes,无需感知背后的差异,使得它们的业务和平台都得到了更好的安全保障,缺点是他们无法使用虚拟机业务。
发明内容
为此,本申请提供一种对虚拟机和容器统一管理方法、系统、设备及介质,以解决现有技术存在的无法在单一的云计算管理平台中实现对虚拟机和容器的统一管理,导致初期购置和运维成本高的问题。
为了实现上述目的,本申请提供如下技术方案:
根据本发明实施例的第一方面,本申请实施例提供了一种对虚拟机和容器统一管理方法,所述方法包括:
读取容器沙箱参数;
对用户请求进行第一业务类型判断,并根据第一业务类型判断结果对运行环境参数进行调整;
启动QEMU进程,创建虚拟机作为容器沙箱;
为所述容器沙箱创建网络空间;
通过热插拔的方式,将网卡接到所述容器沙箱的虚拟机;
对用户请求进行第二业务类型判断;
如果经第二业务类型判断用户请求类型为虚拟机业务,则向所述容器沙箱的网络空间引入网络分流器,对用户业务流量和虚拟机管理流量进行分流处理;
解析容器参数,获取存储信息;
对用户请求进行第三业务类型判断;
如果经第三业务类型判断用户请求类型为虚拟机业务,则注入参数,标注存储卷为可启动硬盘;
通过热插拔的方式,将标注后的存储卷作为硬盘,添加至所述容器沙箱的虚拟机。
进一步地,读取容器沙箱参数,包括:
读取用户向云计算管理平台提交的容器沙箱参数;
当用户无需虚拟机业务时,接收用户提交的POD定义参数,并利用所述POD定义参数得到容器沙箱参数;
当用户需要虚拟机业务时,接收用户提交的POD定义参数和对POD添加标注形成的额外参数,并利用所述POD定义参数得到容器沙箱参数;
其中,所述POD定义参数包括:容器镜像信息、CPU信息、内存信息、存储卷信息、网络信息、GPU信息。
进一步地,对用户请求进行第一业务类型判断,并根据第一业务类型判断结果对运行环境参数进行调整,具体包括:
通过检查所述容器沙箱参数中的标注,对用户请求进行第一业务类型判断;
如果经第一业务类型判断用户请求类型为虚拟机业务,则以虚拟硬盘的方式,由用户指定操作系统,激活VNC功能,允许用户访问虚拟机的控制台/图形桌面;
如果经第一业务类型判断用户请求类型为容器业务,则以预设公用固件方式指定操作系统。
进一步地,向所述容器沙箱的网络空间引入网络分流器,对用户业务流量和虚拟机管理流量进行分流处理,包括:
通过成对出现的虚拟网络设备接口在宿主机网络空间和容器网络空间之间建立链接,为容器网络提供外部连接;
将用户的虚拟机网络由虚拟机监视器进行封装,使所述虚拟机网络仅在虚拟机内部可见;
引入所述网络分流器,对管理信令数据流进行重定向或者分流处理。
进一步地,引入所述网络分流器,对管理信令数据流进行重定向或者分流处理,包括:
根据IP包报头的协议信息判断数据包是否为ARP协议数据包;
如果数据包为ARP协议数据包,则由所述网络分流器将该数据包同时向容器网络域和虚拟机网络域分发;
如果数据包不为ARP协议数据包,则根据数据包中的端口号判断数据包是否为VNC协议数据包;
如果数据包为VNC协议数据包,则由所述网络分流器将该数据包重定向或者分流至容器网络域;
如果数据包不为VNC协议数据包,则由所述网络分流器将该数据包一律重定向或者分流至至虚拟机网络域。
进一步地,所述方法还包括:
如果经第二业务类型判断用户请求类型为容器业务,则直接解析容器参数,获取存储信息。
进一步地,所述方法还包括:
如果经第三业务类型判断用户请求类型为容器业务,则通过热插拔的方式,直接将未经标注的存储卷作为硬盘,添加至所述容器沙箱的虚拟机。
第二方面,根据本发明实施例的第二方面,本申请实施例提供了一种对虚拟机和容器统一管理系统,所述系统包括:
读取模块,用于读取容器沙箱参数;
第一业务类型判断模块,用于对用户请求进行第一业务类型判断,并根据第一业务类型判断结果对运行环境参数进行调整;
容器沙箱创建模块,用于启动QEMU进程,创建虚拟机作为容器沙箱;
网络空间创建模块,用于为所述容器沙箱创建网络空间;
网卡接入模块,用于通过热插拔的方式,将网卡接到所述容器沙箱的虚拟机;
第二业务类型判断模块,用于对用户请求进行第二业务类型判断;
数据包分流模块,用于如果经第二业务类型判断用户请求类型为虚拟机业务,则向所述容器沙箱的网络空间引入网络分流器,对用户业务流量和虚拟机管理流量进行分流处理;
解析模块,用于解析容器参数,获取存储信息;
第三业务类型判断模块,用于对用户请求进行第三业务类型判断;
存储卷标注模块,用于如果经第三业务类型判断用户请求类型为虚拟机业务,则注入参数,标注存储卷为可启动硬盘;
硬盘添加模块,用于通过热插拔的方式,将标注后的存储卷作为硬盘,添加至所述容器沙箱的虚拟机。
进一步地,读取容器沙箱参数,包括:
读取用户向云计算管理平台提交的容器沙箱参数;
当用户无需虚拟机业务时,接收用户提交的POD定义参数,并利用所述POD定义参数得到容器沙箱参数;
当用户需要虚拟机业务时,接收用户提交的POD定义参数和对POD添加标注形成的额外参数,并利用所述POD定义参数得到容器沙箱参数;
其中,所述POD定义参数包括:容器镜像信息、CPU信息、内存信息、存储卷信息、网络信息、GPU信息。
进一步地,对用户请求进行第一业务类型判断,并根据第一业务类型判断结果对运行环境参数进行调整,具体包括:
通过检查所述容器沙箱参数中的标注,对用户请求进行第一业务类型判断;
如果经第一业务类型判断用户请求类型为虚拟机业务,则以虚拟硬盘的方式,由用户指定操作系统,激活VNC功能,允许用户访问虚拟机的控制台/图形桌面;
如果经第一业务类型判断用户请求类型为容器业务,则以预设公用固件方式指定操作系统。
进一步地,向所述容器沙箱的网络空间引入网络分流器,对用户业务流量和虚拟机管理流量进行分流处理,包括:
通过成对出现的虚拟网络设备接口在宿主机网络空间和容器网络空间之间建立链接,为容器网络提供外部连接;
将用户的虚拟机网络由虚拟机监视器进行封装,使所述虚拟机网络仅在虚拟机内部可见;
引入所述网络分流器,对管理信令数据流进行重定向或者分流处理。
进一步地,引入所述网络分流器,对管理信令数据流进行重定向或者分流处理,包括:
根据IP包报头的协议信息判断数据包是否为ARP协议数据包;
如果数据包为ARP协议数据包,则由所述网络分流器将该数据包同时向容器网络域和虚拟机网络域分发;
如果数据包不为ARP协议数据包,则根据数据包中的端口号判断数据包是否为VNC协议数据包;
如果数据包为VNC协议数据包,则由所述网络分流器将该数据包重定向或者分流至容器网络域;
如果数据包不为VNC协议数据包,则由所述网络分流器将该数据包一律重定向或者分流至至虚拟机网络域。
进一步地,所述解析模块还用于:
如果经第二业务类型判断用户请求类型为容器业务,则直接解析容器参数,获取存储信息。
进一步地,所述硬盘添加模块还用于:
如果经第三业务类型判断用户请求类型为容器业务,则通过热插拔的方式,直接将未经标注的存储卷作为硬盘,添加至所述容器沙箱的虚拟机。
根据本发明实施例的第三方面,提供了一种对虚拟机和容器统一管理方法,所述设备包括:处理器和存储器;
所述存储器用于存储一个或多个程序指令;
所述处理器,用于运行一个或多个程序指令,用以执行如上任一项所述的一种对虚拟机和容器统一管理方法的步骤。
根据本发明实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述的一种对虚拟机和容器统一管理方法的步骤。
相比现有技术,本申请至少具有以下有益效果:
本发明实施例提供的一种对虚拟机和容器统一管理方法、系统、设备及介质,将容器计算中的POD映射成为虚拟机,将其抽象成为相应计算单元,从而实现通过Kubernetes管理虚拟机,在单一的云计算管理平台(Kubernetes)中实现对虚拟机和容器的统一管理,在实际使用中,系统默认以容器为计算单元。如果用需要虚拟机,用户只需要对POD进行简单标注,系统将自动提供虚拟机计算单元。本发明实施例在几乎不改动用户使用习惯的前提下,将虚拟机管理平台移除,却能依然向用户提供虚拟机业务。用户不需要投入两套云计算管理平台,从而大大降低初期投入和长期维护成本。
附图说明
为了更直观地说明现有技术以及本申请,下面给出几个示例性的附图。应当理解,附图中所示的具体形状、构造,通常不应视为实现本申请时的限定条件;例如,本领域技术人员基于本申请揭示的技术构思和示例性的附图,有能力对某些单元(部件)的增/减/归属划分、具体形状、位置关系、连接方式、尺寸比例关系等容易作出常规的调整或进一步地优化。
图1为本发明实施例提供的一种对虚拟机和容器统一管理系统的逻辑结构示意图;
图2为本发明实施例提供的一种对虚拟机和容器统一管理方法的流程示意图;
图3为本发明实施例提供的通过引入网络分流器对用户业务流量和虚拟机管理流量进行分流处理的原理示意图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的目的在于:本发明实施例提供一种对虚拟机和容器统一管理方法、系统、设备及介质,分别对现有Kata container容器运行环境(Container runtime)的计算、网络和存储模块进行了改进,使其同时兼顾容器业务和虚拟机业务。
参考图1,本申请实施例提供了一种对虚拟机和容器统一管理系统,其具体包括:读取模块1、第一业务类型判断模块2、容器沙箱创建模块3、网络空间创建模块4、网卡接入模块5、第二业务类型判断模块6、数据包分流模块7、解析模块8、第三业务类型判断模块9、存储卷标注模块10、硬盘添加模块11。
具体地,读取模块1用于读取容器沙箱参数;第一业务类型判断模块2用于对用户请求进行第一业务类型判断,并根据第一业务类型判断结果对运行环境参数进行调整;容器沙箱创建模块3用于启动QEMU进程,创建虚拟机作为容器沙箱;网络空间创建模块4用于为所述容器沙箱创建网络空间;网卡接入模块5用于通过热插拔的方式,将网卡接到所述容器沙箱的虚拟机;第二业务类型判断模块6用于对用户请求进行第二业务类型判断;数据包分流模块7用于如果经第二业务类型判断用户请求类型为虚拟机业务,则向所述容器沙箱的网络空间引入网络分流器,对用户业务流量和虚拟机管理流量进行分流处理;解析模块8用于解析容器参数,获取存储信息;第三业务类型判断模块9用于对用户请求进行第三业务类型判断;存储卷标注模块10用于如果经第三业务类型判断用户请求类型为虚拟机业务,则注入参数,标注存储卷为可启动硬盘;硬盘添加模块11用于通过热插拔的方式,将标注后的存储卷作为硬盘,添加至所述容器沙箱的虚拟机。
与现有技术相比,本申请实施例提供的一种分布式集群节点管理系统,将容器计算中的POD映射成为虚拟机,将其抽象成为相应计算单元,从而实现通过Kubernetes管理虚拟机,在单一的云计算管理平台(Kubernetes)中实现对虚拟机和容器的统一管理,在实际使用中,系统默认以容器为计算单元。如果用需要虚拟机,用户只需要对POD进行简单标注,系统将自动提供虚拟机计算单元。本发明实施例在几乎不改动用户使用习惯的前提下,将虚拟机管理平台移除,却能依然向用户提供虚拟机业务。用户不需要投入两套云计算管理平台,从而大大降低初期投入和长期维护成本。
与上述公开的一种对虚拟机和容器统一管理系统相对应,本发明实施例还公开了一种对虚拟机和容器统一管理方法。以下结合上述描述的一种对虚拟机和容器统一管理系统详细介绍本发明实施例中公开的一种对虚拟机和容器统一管理方法。
如图2所示,以下对本申请实施例提供的一种对虚拟机和容器统一管理方法具体步骤进行详细描述。
在本发明实施例中,由Kubernetes云计算管理平台实现对虚拟机和容器统一管理,Kubernetes云计算管理平台具有三种接口,三种接口分别为容器运行接口CRI、容器存储接口CSI、网络通信接口CNI。其中,容器运行接口CRI用于实现与计算/容器运行环境进行对接,容器存储接口CSI用于实现存储,网络通信接口CNI用于实现网络通信。
通过读取模块1读取容器沙箱参数。
上述这些容器沙箱参数来自用户向Kubernetes云计算管理平台提交的POD定义参数,其具体包括:容器镜像信息、CPU信息、内存信息、存储卷信息、网络信息、GPU信息等其他可选设备信息。这些参数都是Kubernetes平台的标准参数,所以在本发明实施例总用户习惯没有受到影响。如果用户需要得到虚拟机业务,需要提供一个额外参数,即添加一个标注,指明期望得到虚拟机。
进一步地,在本发明实施例中,上述步骤具体包括:由运行环境读取用户向云计算管理平台提交的容器沙箱参数;当用户无需虚拟机业务时,接收用户提交的POD定义参数,并利用所述POD定义参数得到容器沙箱参数;当用户需要虚拟机业务时,接收用户提交的POD定义参数和对POD添加标注形成的额外参数,并利用所述POD定义参数得到容器沙箱参数。
本发明实施例的关键点在于将虚拟机抽象成为容器计算中的Pod,使之适配Kubernetes云计算管理平台的容器运行接口CRI,同时提供相关方法,将容器计算平台中的计算、网络和存储等资源适配给虚拟机计算环境,从而实现通过容器管理接口管理虚拟机,达到虚拟机和容器资源在单一平台中调度的目的。
通过第一业务类型判断模块2对用户请求进行第一业务类型判断,并根据第一业务类型判断结果对运行环境参数进行调整。
进一步地,在本发明实施例中,上述步骤具体包括:由运行环境通过检查所述容器沙箱参数中的标注,对用户请求进行第一业务类型判断;如果经第一业务类型判断用户请求类型为虚拟机业务,则以虚拟硬盘的方式,由用户指定操作系统,激活VNC功能,允许用户访问虚拟机的控制台/图形桌面;如果经第一业务类型判断用户请求类型为容器业务,则以预设公用固件方式指定操作系统。以预设公用固件方式指定操作系统通常是一个极其轻量的操作系统。
通过容器沙箱创建模块3启动QEMU进程,创建虚拟机作为容器沙箱。
参数调整就绪之后,运行环境启动Hypervisor进程,创建虚拟机作为容器沙箱。本发明实施例中以最常见的QEMU-KVM Hypervisor为例进行详细说明。QEMU是一款开源的模拟器及虚拟机监管器(Virtual Machine Monitor,VMM)。QEMU主要提供两种功能给用户使用。一是作为用户态模拟器,利用动态代码翻译机制来执行不同于主机架构的代码。二是作为虚拟机监管器,模拟全系统,利用其他VMM(Xen,KVM,etc)来使用硬件提供的虚拟化支持,创建接近于主机性能的虚拟机。
Hypervisor,又称虚拟机监视器(Virtual Machine Monitor,VMM),是用来建立与执行虚拟机器的软件、固件或硬件。被Hypervisor用来执行一个或多个虚拟机器的电脑称为主体机器(host machine),这些虚拟机器则称为客体机器(guest machine)。hypervisor提供虚拟的作业平台来执行客体操作系统(guest operating systems),负责管理其他客体操作系统的执行阶段;这些客体操作系统,共同分享虚拟化后的硬件资源。
运行环境通过网络空间创建模块4为容器沙箱创建网络空间。
进一步地,在本发明实施例中,在自己的网络空间中,容器/虚拟机可以拥有独立的网卡、路由、防火墙等网络元素。
由网卡接入模块5通过热插拔的方式,将网卡接到所述容器沙箱的虚拟机。
在计算部分,本发明实施例的重要特点是将Kata container(项目,现有的运行环境)中实现的容器沙箱虚拟机作为业务承载单元,直接返回给Kubernetes云计算管理平台,提供给最终用户使用。在实现中,本发明实施例充分利用设备热插拔技术来增减虚拟机的设备。在虚拟机启动早期阶段,运行环境只定义了虚拟机的最小配置,比如虚拟机模拟硬件型号,主板固件类型。在随后的操作中,运行环境不断获取更多的来自云平台的参数输入,依次通过热插拔的技术添加虚拟机的CPU、内存和网卡、硬盘、GPU等,其中系统盘也是在这个阶段实现。这样的实现不仅适配了Kubernetes云计算管理平台定义的CRI接口,同时也给虚拟机配置带来了更大的灵活性。
通过第二业务类型判断模块6对用户请求进行第二业务类型判断。
具体地,通过检查当前容器沙箱参数中的标注,对用户请求进行第二业务类型判断;如果经第二业务类型判断用户请求类型为虚拟机业务,则运行环境注入相应的TC规则,实现虚拟机的VNC访问。具体地,如果经第二业务类型判断用户请求类型为虚拟机业务,则通过数据包分流模块7向容器沙箱的网络空间引入网络分流器,对用户业务流量和虚拟机管理流量进行分流处理。
进一步地,参考图3,在本发明实施例中,上述步骤具体包括:运行环境通过成对出现的虚拟网络设备接口veth pair(可认为是虚拟网线)在宿主机网络空间12和容器网络空间13之间建立链接,为容器网络提供外部连接;将用户的虚拟机网络由虚拟机监视器16进行封装,使虚拟机网络仅在虚拟机15内部可见;引入网络分流器14,对管理信令数据流进行重定向或者分流处理。
veth pair是成对出现的一种虚拟网络设备接口,一端连着网络协议栈,一端彼此相连。常常被用于构建虚拟网络拓扑。例如连接两个不同的网络命名空间(netns),连接docker容器,连接网桥(Bridge)等。
更具体地,在本发明实施例中,引入所述网络分流器,对管理信令数据流进行重定向或者分流处理,包括以下步骤:根据IP包报头的协议信息判断数据包是否为ARP协议数据包;如果数据包为ARP协议数据包,则由所述网络分流器将该数据包同时向容器网络域和虚拟机网络域分发;如果数据包不为ARP协议数据包,则根据数据包中的端口号判断数据包是否为VNC协议数据包;如果数据包为VNC协议数据包,则由所述网络分流器将该数据包重定向或者分流至容器网络域;如果数据包不为VNC协议数据包,则由所述网络分流器将该数据包一律重定向或者分流至至虚拟机网络域。
ARP(Address Resolution Protocol,地址解析协议),是根据IP地址获取物理地址的一个TCP/IP协议,VNC(Virtual Network Console,虚拟网络控制台),是在基于 UNIX和 Linux 操作系统的免费的开源软件,远程控制能力强大,高效实用。如上所述,判断数据包是否为VNC协议数据包,可以通过数据包中的端口号判定,默认的VNC端口号为5900。
在网络部分,本发明实施例的主要创新在于利用TC(Linux traffic controll)技术,对用户业务流量和虚拟机的管理流量进行分流,在容器网络中同时承载两种流量,实现带内管理既满足了Kubernetes云计算关联平台中对CNI(Container Network Interface)的要求,又满足了虚拟机用户访问VNC的要求。
当经第二业务类型判断用户请求类型为虚拟机业务,对用户业务流量和虚拟机管理流量进行分流处理后,运行环境通过解析模块8解析容器参数,获取存储信息。
另外,如果经第二业务类型判断用户请求类型为容器业务,运行环境则通过解析模块8直接解析容器参数,获取存储信息。
第三业务类型判断模块9对用户请求进行第三业务类型判断。
在容器计算中,实际实现计算是通过容器来实现,云计算管理平台在创建容器沙箱时并没有输入全部的参数给运行环境。比如,存储卷信息在创建容器的时候才传入,因此,此时运行环境通过第三业务类型判断模块9,具体地,通过检查当前容器沙箱参数中的标注,再一次判断用户请求的业务类型。
如果经第三业务类型判断用户请求类型为虚拟机业务,则通过存储卷标注模块10注入参数,标注存储卷为可启动硬盘。因为这些标注的存储卷包含用户指定的操作系统。
由硬盘添加模块11通过热插拔的方式,将标注后的存储卷作为硬盘,添加至所述容器沙箱的虚拟机。
另外,如果经第三业务类型判断用户请求类型为容器业务,则由硬盘添加模块11通过热插拔的方式,直接将未经标注的存储卷作为硬盘,添加至所述容器沙箱的虚拟机。
在存储部分,本发明实施例容器计算中的持久卷(persistent volume)映射到虚拟机中的硬盘(Disk)。为了克服Kata container中存储性能低效的问题,本发明实施例优先使用块设备直透的模式。块设备直透带来了接近裸金属的性能,但是块设备在支持快照、复制、基础镜像等方面的支持不是很好。幸运的是,现在的技术中,已有即成方案很好的解决了这些问题,比如longhorn (www.github.com/longhorn) 和zvol(www.github.com/openzfs)。本发明实施例通过选用相应技术的CSI(Container Storage Ingerface)驱动来实现,从而很好的适配了Kubernets云计算管理平台的适配。
综上所述,本发明实施例通过Kubernetes云计算管理平台管理虚拟机,实现单一平台调度虚拟机和容器计算,给云平台提供商和最终用户都带来重大效益。一方面,由于云计算管理平台是一个庞大而复杂的系统,不仅购置成本高,而且运维成本也很高。剔除一个平台,合二为一后可大大降低云平台提供商的成本。另一方面,在没有修改用户接口的情况下实现容器和虚拟机云计算,最终用户无需学习两套不同的云计算平台,可以降低用户的学习成本。
与现有技术相比,本申请实施例提供的一种对虚拟机和容器统一管理方法,将容器计算中的POD映射成为虚拟机,将其抽象成为相应计算单元,从而实现通过Kubernetes管理虚拟机,在单一的云计算管理平台(Kubernetes)中实现对虚拟机和容器的统一管理,在实际使用中,系统默认以容器为计算单元。如果用需要虚拟机,用户只需要对POD进行简单标注,系统将自动提供虚拟机计算单元。本发明实施例在几乎不改动用户使用习惯的前提下,将虚拟机管理平台移除,却能依然向用户提供虚拟机业务。用户不需要投入两套云计算管理平台,从而大大降低初期投入和长期维护成本。
另外,本发明实施例还提供了一种对虚拟机和容器统一管理设备,所述设备包括:处理器和存储器;所述存储器用于存储一个或多个程序指令;所述处理器,用于运行一个或多个程序指令,用以执行如上任一项所述的一种对虚拟机和容器统一管理方法的步骤。
另外,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述一种对虚拟机和容器统一管理方法的步骤。
在本发明实施例中,处理器可以是一种集成电路芯片,具有信号的处理能力。处理器可以是通用处理器、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific工ntegrated Circuit,简称ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。处理器读取存储介质中的信息,结合其硬件完成上述方法的步骤。
存储介质可以是存储器,例如可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。
其中,非易失性存储器可以是只读存储器(Read-Only Memory,简称ROM)、可编程只读存储器(Programmable ROM,简称PROM)、可擦除可编程只读存储器(Erasable PROM,简称EPROM)、电可擦除可编程只读存储器(Electrically EPROM,简称EEPROM)或闪存。
易失性存储器可以是随机存取存储器(Random Access Memory,简称RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,简称SRAM)、动态随机存取存储器(Dynamic RAM,简称DRAM)、同步动态随机存取存储器(Synchronous DRAM,简称SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,简称DDRSDRAM)、增强型同步动态随机存取存储器(EnhancedSDRAM,简称ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,简称SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,简称DRRAM)。
本发明实施例描述的存储介质旨在包括但不限于这些和任意其它适合类型的存储器。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件与软件组合来实现。当应用软件时,可以将相应功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
上文中通过一般性说明及具体实施例对本申请作了较为具体和详细的描述。应当理解,基于本申请的技术构思,还可以对这些具体实施例作出若干常规的调整或进一步地创新;但只要未脱离本申请的技术构思,这些常规的调整或进一步地创新得到的技术方案也同样落入本申请的权利要求保护范围。
Claims (9)
1.一种对虚拟机和容器统一管理方法,其特征在于,所述方法包括:
读取容器沙箱参数;
对用户请求进行第一业务类型判断,并根据第一业务类型判断结果对运行环境参数进行调整;
启动QEMU进程,创建虚拟机作为容器沙箱;
为所述容器沙箱创建网络空间;
通过热插拔的方式,将网卡接到所述容器沙箱的虚拟机;
对用户请求进行第二业务类型判断;
如果经第二业务类型判断用户请求类型为虚拟机业务,则向所述容器沙箱的网络空间引入网络分流器,对用户业务流量和虚拟机管理流量进行分流处理;
解析容器参数,获取存储信息;
对用户请求进行第三业务类型判断;
如果经第三业务类型判断用户请求类型为虚拟机业务,则注入参数,标注存储卷为可启动硬盘;
通过热插拔的方式,将标注后的存储卷作为硬盘,添加至所述容器沙箱的虚拟机;
读取容器沙箱参数,包括:
读取用户向云计算管理平台提交的容器沙箱参数;
当用户无需虚拟机业务时,接收用户提交的POD定义参数,并利用所述POD定义参数得到容器沙箱参数;
当用户需要虚拟机业务时,接收用户提交的POD定义参数和对POD添加标注形成的额外参数,并利用所述POD定义参数得到容器沙箱参数;
其中,所述POD定义参数包括:容器镜像信息、CPU信息、内存信息、存储卷信息、网络信息、GPU信息。
2.根据权利要求1所述的一种对虚拟机和容器统一管理方法,其特征在于,对用户请求进行第一业务类型判断,并根据第一业务类型判断结果对运行环境参数进行调整,具体包括:
通过检查所述容器沙箱参数中的标注,对用户请求进行第一业务类型判断;
如果经第一业务类型判断用户请求类型为虚拟机业务,则以虚拟硬盘的方式,由用户指定操作系统,激活VNC功能,允许用户访问虚拟机的控制台/图形桌面;
如果经第一业务类型判断用户请求类型为容器业务,则以预设公用固件方式指定操作系统。
3.根据权利要求2所述的一种对虚拟机和容器统一管理方法,其特征在于,向所述容器沙箱的网络空间引入网络分流器,对用户业务流量和虚拟机管理流量进行分流处理,包括:
通过成对出现的虚拟网络设备接口在宿主机网络空间和容器网络空间之间建立链接,为容器网络提供外部连接;
将用户的虚拟机网络由虚拟机监视器进行封装,使所述虚拟机网络仅在虚拟机内部可见;
引入所述网络分流器,对管理信令数据流进行重定向或者分流处理。
4.根据权利要求3所述的一种对虚拟机和容器统一管理方法,其特征在于,引入所述网络分流器,对管理信令数据流进行重定向或者分流处理,包括:
根据IP包报头的协议信息判断数据包是否为ARP协议数据包;
如果数据包为ARP协议数据包,则由所述网络分流器将该数据包同时向容器网络域和虚拟机网络域分发;
如果数据包不为ARP协议数据包,则根据数据包中的端口号判断数据包是否为VNC协议数据包;
如果数据包为VNC协议数据包,则由所述网络分流器将该数据包重定向或者分流至容器网络域;
如果数据包不为VNC协议数据包,则由所述网络分流器将该数据包一律重定向或者分流至虚拟机网络域。
5.根据权利要求4所述的一种对虚拟机和容器统一管理方法,其特征在于,所述方法还包括:
如果经第二业务类型判断用户请求类型为容器业务,则直接解析容器参数,获取存储信息。
6.根据权利要求5所述的一种对虚拟机和容器统一管理方法,其特征在于,所述方法还包括:
如果经第三业务类型判断用户请求类型为容器业务,则通过热插拔的方式,直接将未经标注的存储卷作为硬盘,添加至所述容器沙箱的虚拟机。
7.一种对虚拟机和容器统一管理系统,其特征在于,所述系统包括:
读取模块,用于读取容器沙箱参数;
第一业务类型判断模块,用于对用户请求进行第一业务类型判断,并根据第一业务类型判断结果对运行环境参数进行调整;
容器沙箱创建模块,用于启动QEMU进程,创建虚拟机作为容器沙箱;
网络空间创建模块,用于为所述容器沙箱创建网络空间;
网卡接入模块,用于通过热插拔的方式,将网卡接到所述容器沙箱的虚拟机;
第二业务类型判断模块,用于对用户请求进行第二业务类型判断;
数据包分流模块,用于如果经第二业务类型判断用户请求类型为虚拟机业务,则向所述容器沙箱的网络空间引入网络分流器,对用户业务流量和虚拟机管理流量进行分流处理;
解析模块,用于解析容器参数,获取存储信息;
第三业务类型判断模块,用于对用户请求进行第三业务类型判断;
存储卷标注模块,用于如果经第三业务类型判断用户请求类型为虚拟机业务,则注入参数,标注存储卷为可启动硬盘;
硬盘添加模块,用于通过热插拔的方式,将标注后的存储卷作为硬盘,添加至所述容器沙箱的虚拟机;
读取容器沙箱参数,包括:
读取用户向云计算管理平台提交的容器沙箱参数;
当用户无需虚拟机业务时,接收用户提交的POD定义参数,并利用所述POD定义参数得到容器沙箱参数;
当用户需要虚拟机业务时,接收用户提交的POD定义参数和对POD添加标注形成的额外参数,并利用所述POD定义参数得到容器沙箱参数;
其中,所述POD定义参数包括:容器镜像信息、CPU信息、内存信息、存储卷信息、网络信息、GPU信息。
8.一种对虚拟机和容器统一管理设备,其特征在于,所述设备包括:存储器和处理器,
所述存储器用于存储一个或多个程序指令;
所述处理器,用于运行一个或多个程序指令,用以执行如权利要求1至6中任一项所述的一种对虚拟机和容器统一管理方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的一种对虚拟机和容器统一管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210952795.0A CN115033348B (zh) | 2022-08-10 | 2022-08-10 | 一种对虚拟机和容器统一管理方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210952795.0A CN115033348B (zh) | 2022-08-10 | 2022-08-10 | 一种对虚拟机和容器统一管理方法、系统、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115033348A CN115033348A (zh) | 2022-09-09 |
CN115033348B true CN115033348B (zh) | 2022-10-25 |
Family
ID=83130521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210952795.0A Active CN115033348B (zh) | 2022-08-10 | 2022-08-10 | 一种对虚拟机和容器统一管理方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115033348B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116719605A (zh) * | 2023-06-09 | 2023-09-08 | 摩尔线程智能科技(北京)有限责任公司 | 一种gpu负载部署方法及云计算平台、电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111966462A (zh) * | 2020-08-14 | 2020-11-20 | 苏州浪潮智能科技有限公司 | 一种混合云管理系统 |
CN112000439A (zh) * | 2020-08-24 | 2020-11-27 | 浪潮云信息技术股份公司 | 一种实现云原生应用管理虚拟机的方法 |
CN114816665A (zh) * | 2022-04-22 | 2022-07-29 | 北京志凌海纳科技有限公司 | 混合编排系统及超融合架构下虚拟机容器资源混合编排方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10282171B2 (en) * | 2015-03-30 | 2019-05-07 | Hewlett Packard Enterprise Development Lp | Application analyzer for cloud computing |
CN109885377B (zh) * | 2018-11-23 | 2023-04-28 | 中国银联股份有限公司 | 统一资源调度协调器及其创建虚拟机和/或容器的方法、统一资源调度系统 |
US11182196B2 (en) * | 2019-11-13 | 2021-11-23 | Vmware, Inc. | Unified resource management for containers and virtual machines |
US11687379B2 (en) * | 2020-05-27 | 2023-06-27 | Red Hat, Inc. | Management of containerized clusters by virtualization systems |
-
2022
- 2022-08-10 CN CN202210952795.0A patent/CN115033348B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111966462A (zh) * | 2020-08-14 | 2020-11-20 | 苏州浪潮智能科技有限公司 | 一种混合云管理系统 |
CN112000439A (zh) * | 2020-08-24 | 2020-11-27 | 浪潮云信息技术股份公司 | 一种实现云原生应用管理虚拟机的方法 |
CN114816665A (zh) * | 2022-04-22 | 2022-07-29 | 北京志凌海纳科技有限公司 | 混合编排系统及超融合架构下虚拟机容器资源混合编排方法 |
Non-Patent Citations (1)
Title |
---|
虚拟机与容器的混合管理实践;OPPO互联网技术官方账号;《CSDN博客》;https://blog.csdn.net/weixin_59152315/article/details/121273984?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166237104616782428666391%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=166237104616782428666391&bi;20211111;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115033348A (zh) | 2022-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8438360B2 (en) | Distributed storage through a volume device architecture | |
US20160378530A1 (en) | Remote-direct-memory-access-based virtual machine live migration | |
US9712538B1 (en) | Secure packet management for bare metal access | |
CN103368807B (zh) | 用于在网络环境中迁移应用虚拟机的系统和方法 | |
US10176007B2 (en) | Guest code emulation by virtual machine function | |
Macdonell | Shared-memory optimizations for virtual machines | |
US10037224B2 (en) | System and method for nested hypervisors and layer 2 interconnection | |
JP7379517B2 (ja) | セキュア・インターフェース制御セキュア・ストレージ・ハードウェアのタグ付け方法、システム、プログラム | |
US20170005878A1 (en) | Method and system for testing and analyzing management servers | |
EP3935546B1 (en) | Host virtual address space for secure interface control storage | |
US20230262111A1 (en) | Peripheral device enabling virtualized computing service extensions | |
JP7350868B2 (ja) | 複数のセキュリティ・ドメインにわたるセキュア・メモリの共用 | |
WO2020183283A1 (en) | Storage sharing between a secure domain and a non-secure entity | |
CN115033348B (zh) | 一种对虚拟机和容器统一管理方法、系统、设备及介质 | |
US11785054B2 (en) | Deriving system architecture from security group relationships | |
AU2020237597B2 (en) | Secure interface control high-level instruction interception for interruption enablement | |
Tarafdar et al. | Building the infrastructure for deploying FPGAs in the cloud | |
JP2022522664A (ja) | ページ変更検出によるセキュアなページング | |
JP2022523522A (ja) | セキュア・インターフェイス制御の高レベルのページ管理 | |
JP2015170887A (ja) | パケット処理方法及びシステム | |
CA3132753A1 (en) | Communication interface of a secure interface control | |
Cochak et al. | RunC and Kata runtime using Docker: A network perspective comparison | |
US20230171189A1 (en) | Virtual network interfaces for managed layer-2 connectivity at computing service extension locations | |
CN113220423B (zh) | 一种基于容器的多芯片管理方法和装置 | |
Yang et al. | Isolation guarantee for efficient virtualized network i/o on cloud platform |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |