一种实现云原生应用管理虚拟机的方法技术

技术编号:26504233 阅读:16 留言:0更新日期:2020-11-27 15:31
本发明专利技术公开了一种实现云原生应用管理虚拟机的方法,属于云计算技术领域,虚拟机使用现有容器运行时在Pod中运行;使用自定义的声明式API管理虚拟机,并通过虚拟机控制器、虚拟机处理程序和虚拟机启动程序实现虚拟机专用API和相应的工作负载控制器:虚拟机控制器实现自定义的Kubernetes Operator,用于处理集群中的虚拟化功能;虚拟机处理程序负责从虚拟机管理器调度过来请求,并执行必要的操作更改虚拟机以满足所需状态;创建的每个虚拟机对象都创建一个Pod,该pod运行就是虚拟机启动程序。本发明专利技术能够能够有效实现公有云,私有云,混合云厂商的客户对于传统虚拟机应用的诉求,改善用户满意度。

【技术实现步骤摘要】
一种实现云原生应用管理虚拟机的方法
本专利技术涉及云计算
,具体地说是一种实现云原生应用管理虚拟机的方法。
技术介绍
随着云计算及虚拟化在各个生产环境更大规模的广泛应用,以容器为代表的基于linuxnamespace+cgroup实现虚拟化技术与生俱来的安全问题日益突出。
技术实现思路
本专利技术的技术任务是针对以上不足之处,提供一种实现云原生应用管理虚拟机的方法,能够能够有效实现公有云,私有云,混合云厂商的客户对于传统虚拟机应用的诉求,同时也能保持容器化应用的快速启动速度,沿用容器编排的使用习惯,改善用户满意度。本专利技术解决其技术问题所采用的技术方案是:一种实现云原生应用管理虚拟机的方法,该方法中,虚拟机使用现有容器运行时在Pod中运行;使用自定义的声明式API管理虚拟机,并通过虚拟机控制器、虚拟机处理程序和虚拟机启动程序实现虚拟机专用API和相应的工作负载控制器:虚拟机控制器实现自定义的KubernetesOperator,用于处理集群中的虚拟化功能;虚拟机处理程序负责从虚拟机管理器调度过来请求,并执行必要的操作更改虚拟机以满足所需状态;创建的每个虚拟机对象都创建一个Pod,该pod运行就是虚拟机启动程序。该方法结合管理容器的技术管理传统的虚拟机,实现容器原生的虚拟化,将虚拟机带入容器化的工作流,能够解决很多两者单独解决不了的问题。优选的,通过PVC机制提供持久性存储来交付虚拟机磁盘。虚拟机需要永久性磁盘,用户应该能够停止虚拟机,启动虚拟机并保留数据。Kubernetes有一个称为PVC(持久卷声明)的存储抽象,它允许将持久存储附加到Pod,这意味着通过将虚拟机放置在Pod中,我们可以使用现有的PVC机制来提供持久性存储来交付我们的虚拟机磁盘。优选的,虚拟机需要访问群集网络,提供Pod网络接口,这些接口通过CNI直接绑定到Pod网络中。进一步的,使用Pod环境中已经存在的默认的CNI分配的网络接口,使在Pod中运行的虚拟机访问Pod网络。优选的,通过使用Pod规范上的资源请求/限制,将CPU和内存分配给虚拟机。用户需要能够将cpu和内存资源分配给虚拟机,我们可以使用Pod规范上的资源请求/限制将cpu和内存分配给Pod,这意味着通过使用容器资源请求/限制,我们也可以直接将资源分配给虚拟机。优选的,在创建新的虚拟机对象时,所述虚拟机控制器会创建供所述虚拟机在其中运行的Pod,将Pod安排到特定节点后,虚拟机控制器使用计划在其上的节点名称更新虚拟机对象,并将控制权移交给特定于节点的VM-launcher组件,该组件运行在虚拟机中的每个节点上。优选的,虚拟机处理程序在Pod中根据虚拟机描述文件创建相应的域,当Pod从其运行的节点上删除时,它也会删除域。优选的,所述虚拟机启动程序提供虚拟机进程所需的cgroup和名称空间,虚拟机处理程序将虚拟机的CRD传递给虚拟机启动程序,虚拟机启动程序在其容器中使用本地libvirtd实例启动时机的虚拟机。虚拟机启动程序密切关注虚拟机进程,并在虚拟机退出后终止。在某些情况下,Kubernetes运行时可能会在虚拟机进程退出之前尝试关闭虚拟机启动程序pod,发生这种情况时,虚拟机启动程序会将kill信号传递给虚拟机进程,并尝试推迟pod的终止,直到虚拟机进程正常关闭为止。本专利技术还要求一种实现云原生应用管理虚拟机的装置,包括:至少一个存储器和至少一个处理器;所述至少一个存储器,用于存储机器可读程序;所述至少一个处理器,用于调用所述机器可读程序,执行权利上述的方法。本专利技术还要求保护一种计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行上述的方法。本专利技术的一种实现云原生应用管理虚拟机的方法与现有技术相比,具有以下有益效果:该方法将容器管理技术kubernetes和虚拟机管理技术两者结合到一个管理平台,充分利用容器以及容器编排技术的简捷快速的特点,同时可以为设计运行在虚拟机上那些应用服务;能够有效实现公有云,私有云,混合云厂商的客户对于传统虚拟机应用的诉求,同时也能保持容器化应用的快速启动速度,沿用容器编排的使用习惯,改善用户满意度。附图说明图1是本专利技术一个实施例提供的实现云原生应用管理虚拟机的方法架构图。具体实施方式下面结合附图和具体实施例对本专利技术作进一步说明。本专利技术实施例提供一种实现云原生应用管理虚拟机的方法,本方法着眼于云计算场景下,如何将容器管理技术kubernetes和虚拟机管理技术两者结合到一个管理平台,充分利用容器以及容器编排技术的简捷快速的特点,同时可以为设计运行在虚拟机上那些应用服务,毕竟目前还有为数众多的应用是跑在虚拟机上的。该方法结合管理容器的技术管理传统的虚拟机,实现容器原生的虚拟化,将虚拟机带入容器化的工作流,能够解决很多两者单独解决不了的问题。虚拟机使用现有容器运行时在Pod中运行。这个决定是在其他Kubernetes虚拟化努力正在创建自己的虚拟化特定CRI运行时的时候做出的,Pod环境中运行虚拟机可以使用现有和将来的容器运行时最新的技术和能力。就Kubernetes而言,没有虚拟机,只有pod和容器,从根本上说,虚拟机与集群其余部分的任何其他容器化应用程序一样。所以将虚拟机作为pod来运行,在KubernetesPod中运行虚拟机的收益对我们来说是巨大的,如何为Pod提供对网络,存储,主机设备,CPU,内存等的访问权,整个生态系统在不断发展,这意味着每次将问题或功能添加到Pod时,本方案在pod中运行虚拟机都能受益。存储:通过PVC机制提供持久性存储来交付虚拟机磁盘。虚拟机需要永久性磁盘,用户应该能够停止虚拟机,启动虚拟机并保留数据。Kubernetes有一个称为PVC(持久卷声明)的存储抽象,它允许将持久存储附加到Pod,这意味着通过将虚拟机放置在Pod中,我们可以使用现有的PVC机制来提供持久性存储来交付我们的虚拟机磁盘。网络:虚拟机需要访问群集网络,提供Pod网络接口,这些接口通过CNI直接绑定到Pod网络中。使用Pod环境中已经存在的默认的CNI分配的网络接口,使在Pod中运行的虚拟机访问Pod网络。CPU/内存:用户需要能够将cpu和内存资源分配给虚拟机。我们可以使用Pod规范上的资源请求/限制将CPU和内存分配给Pod。这意味着通过使用容器资源请求/限制,我们也可以直接将资源分配给虚拟机。使用自定义的“类似Kubernetes”声明式API管理虚拟机,并通过虚拟机控制器、虚拟机处理程序和虚拟机启动程序实现虚拟机专用API和相应的工作负载控制器。以前,命令性API是其他平台如何管理虚拟机的事实上的标准。但是,为了使用现有Kubernetes工具(如kubectl)管理的真正云原生API的并享受其带来的好处,就必须完全遵守声本文档来自技高网...

【技术保护点】
1.一种实现云原生应用管理虚拟机的方法,其特征在于,/n虚拟机使用现有容器运行时在Pod中运行;/n使用自定义的声明式API管理虚拟机,并通过虚拟机控制器、虚拟机处理程序和虚拟机启动程序实现虚拟机专用API和相应的工作负载控制器:/n虚拟机控制器实现自定义的Kubernetes Operator,用于处理集群中的虚拟化功能;虚拟机处理程序负责从虚拟机管理器调度过来请求,并执行必要的操作更改虚拟机以满足所需状态;创建的每个虚拟机对象都创建一个Pod,该pod运行就是虚拟机启动程序。/n

【技术特征摘要】
1.一种实现云原生应用管理虚拟机的方法,其特征在于,
虚拟机使用现有容器运行时在Pod中运行;
使用自定义的声明式API管理虚拟机,并通过虚拟机控制器、虚拟机处理程序和虚拟机启动程序实现虚拟机专用API和相应的工作负载控制器:
虚拟机控制器实现自定义的KubernetesOperator,用于处理集群中的虚拟化功能;虚拟机处理程序负责从虚拟机管理器调度过来请求,并执行必要的操作更改虚拟机以满足所需状态;创建的每个虚拟机对象都创建一个Pod,该pod运行就是虚拟机启动程序。


2.根据权利要求1所述的一种实现云原生应用管理虚拟机的方法,其特征在于,通过PVC机制提供持久性存储来交付虚拟机磁盘。


3.根据权利要求1或2所述的一种实现云原生应用管理虚拟机的方法,其特征在于,提供Pod网络接口,这些接口通过CNI直接绑定到Pod网络中。


4.根据权利要求3所述的一种实现云原生应用管理虚拟机的方法,其特征在于,使用Pod环境中已经存在的默认的CNI分配的网络接口,使在Pod中运行的虚拟机访问Pod网络。


5.根据权利要求1或2所述的一种实现云原生应用管理虚拟机的方法,其特征在于,通过使用Pod规范上的资源请求/限制,将CPU和内存分配给虚拟机。


...

【专利技术属性】
技术研发人员:张勇高传集孙思清蔡卫卫石光银
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1