CN118093071A - 云桌面部署方法、装置、云桌面服务器及存储介质 - Google Patents
云桌面部署方法、装置、云桌面服务器及存储介质 Download PDFInfo
- Publication number
- CN118093071A CN118093071A CN202211506466.XA CN202211506466A CN118093071A CN 118093071 A CN118093071 A CN 118093071A CN 202211506466 A CN202211506466 A CN 202211506466A CN 118093071 A CN118093071 A CN 118093071A
- Authority
- CN
- China
- Prior art keywords
- cloud desktop
- container
- virtual
- virtual machine
- interface
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 97
- 238000003860 storage Methods 0.000 title claims abstract description 33
- 230000008569 process Effects 0.000 claims abstract description 43
- 230000006854 communication Effects 0.000 claims description 34
- 238000004891 communication Methods 0.000 claims description 32
- 238000004590 computer program Methods 0.000 claims description 9
- 238000005096 rolling process Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 10
- 238000007726 management method Methods 0.000 description 63
- 235000013599 spices Nutrition 0.000 description 55
- 238000010586 diagram Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 13
- 230000009286 beneficial effect Effects 0.000 description 8
- 238000012423 maintenance Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000004519 manufacturing process Methods 0.000 description 7
- 235000006990 Pimenta dioica Nutrition 0.000 description 3
- 240000008474 Pimenta dioica Species 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000004806 packaging method and process Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种云桌面部署方法、装置、云桌面服务器及存储介质,其包括:获取第一容器镜像,第一容器镜像用于记录虚拟机、虚拟机管理组件以及虚拟机管理组件的依赖,虚拟机管理组件用于管理虚拟机,虚拟机用于运行云桌面的虚拟操作系统;根据第一容器镜像在云桌面服务器中部署多个第一容器,多个第一容器共用第一容器镜像;启动各第一容器,并在所述第一容器中运行虚拟机管理组件以及基于虚拟机管理组件创建的虚拟机,虚拟机运行所述虚拟操作系统;将虚拟操作系统运行过程中生成的云桌面的运行界面发送至云桌面客户端,以供云桌面客户端显示所述运行界面。采用上述方法可以解决相关技术中服务器端云桌面部署速度慢的技术问题。
Description
技术领域
本申请实施例涉及云桌面技术领域,尤其涉及一种云桌面部署方法、装置、云桌面服务器及存储介质。
背景技术
云桌面又称桌面虚拟化、云电脑,是替代传统电脑的一种新模式,其利用虚拟技术,对各种物理设备进行虚拟化处理,从而使资源的利用率得到有效提升,以此节约成本、提高应用质量。
虚拟桌面基础架构(Virtual Desktop Infrastructure,VDI)是一种常见的云桌面架构。VDI架构下,由服务器端托管整个云桌面,包括云桌面的操作系统和应用程序。其中,通过虚拟化技术,可以在服务器端创建多个虚拟机,并将服务器端的资源分配给虚拟机,以在虚拟机中运行云桌面。并且,通过远程桌面协议可以将虚拟机的云桌面传输到终端设备,以实现远程的终端设备通过网络访问自己的虚拟机。
VDI架构下,需要由上层管理程序管理虚拟机的运行,如通过hypervisor创建、删除、监控虚拟机。一般而言,上层管理程序直接运行在服务器端的物理操作系统上,且与物理操作系统深度耦合,这样并不利于上层管理程序的快速部署,进而不利于云桌面的快速部署。
发明内容
本申请一个实施例提供了一种云桌面部署方法、装置、云桌面服务器及存储介质,以解决相关技术中服务器端云桌面部署速度慢的技术问题。
第一方面,本申请一个实施例提供了一种云桌面部署方法,应用于云桌面服务器,包括:
获取第一容器镜像,所述第一容器镜像用于记录虚拟机、虚拟机管理组件以及虚拟机管理组件的依赖,所述虚拟机管理组件用于管理所述虚拟机,所述虚拟机用于运行云桌面的虚拟操作系统;
根据所述第一容器镜像在所述云桌面服务器中部署多个第一容器,所述多个第一容器共用所述第一容器镜像;
启动各所述第一容器,并在所述第一容器中运行所述虚拟机管理组件以及基于所述虚拟机管理组件创建的虚拟机,所述虚拟机运行所述虚拟操作系统;
将所述虚拟操作系统运行过程中生成的所述云桌面的运行界面发送至云桌面客户端,以供所述云桌面客户端显示所述运行界面。
第二方面,本申请一个实施例还提供了一种云桌面部署装置,应用于云桌面服务器,包括:
第一获取单元,用于获取第一容器镜像,所述第一容器镜像用于记录虚拟机、虚拟机管理组件以及虚拟机管理组件的依赖,所述虚拟机管理组件用于管理所述虚拟机,所述虚拟机用于运行云桌面的虚拟操作系统;
第一部署单元,用于根据所述第一容器镜像在所述云桌面服务器中部署多个第一容器,所述多个第一容器共用所述第一容器镜像;
第一启动单元,用于启动各所述第一容器,并在所述第一容器中运行所述虚拟机管理组件以及基于所述虚拟机管理组件创建的虚拟机,所述虚拟机运行所述虚拟操作系统;
第一发送单元,用于将所述虚拟操作系统运行过程中生成的所述云桌面的运行界面发送至云桌面客户端,以供所述云桌面客户端显示所述运行界面。
第三方面,本申请一个实施例还提供了一种云桌面服务器,包括:
通信模块,用于实现数据通信;
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的云桌面部署方法。
第四方面,本申请一个实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的云桌面部署方法。
在本申请一个实施例中,通过获取用于记录虚拟机、虚拟机管理组件以及虚拟机管理组件的依赖的第一容器镜像,并基于第一容器镜像部署多个第一容器,之后,启动第一容器,在第一容器中运行虚拟机管理组件以及基于虚拟机管理组件创建的虚拟机,该虚拟机中运行有云桌面的虚拟操作系统,之后,将虚拟操作系统运行过程中生成的云桌面的运行界面发送至云桌面客户端,以供云桌面客户端显示运行界面的技术手段,解决了相关技术中云桌面部署速度慢的技术问题,通过容器化技术,将虚拟机管理组件和虚拟机打包在容器中运行,可以基于容器的快速部署技术,实现对虚拟机的快速部署,进而实现对云桌面的快速部署。并且,将虚拟机管理组件和物理操作系统解耦,使得虚拟机管理组件只跟其运行的容器环境有关,而容器环境包括虚拟操作系统和虚拟机管理组件的版本以及依赖包仅由容器镜像对应的开发人员定义,保证了容器的开发环境和生产环境(即应用部署过程)一致,无需考虑物理操作系统,便于后期的运营维护,并且,可以使虚拟操作系统和物理操作系统使用不一致的版本,扩大了虚拟操作系统的选择灵活性。
附图说明
图1为相关技术中一种VDI架构下云桌面的系统框架图;
图2为相关技术中服务器端与终端设备的客户端之间的网络架构图;
图3为本申请一个实施例提供的一种云桌面部署方法的流程图;
图4为本申请一个实施例提供的一种云桌面部署方法的流程图;
图5为本申请一个实施例提供的一种云桌面容器化架构图;
图6为本申请一个实施例提供的一种云桌面部署方法的流程图;
图7为本申请一个实施例提供的一种云桌面网络架构图;
图8为本申请一个实施例提供的一种第一容器网络架构图;
图9为本申请一个实施例提供的一种云桌面部署装置的结构示意图;
图10为本申请一个实施例提供的一种云桌面服务器的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
图1为相关技术中一种VDI架构下云桌面的系统框架图。图1示出了VDI框架下云桌面运行过程中所需的部分基本组件,其中,组件是对数据和方法的简单封装。
参考图1,Thin Client为云桌面的用户使用的终端设备,其集成有使用远程桌面协议的客户端。其中,远程桌面协议是指供云桌面的服务器端和客户端进行通信的通信协议。图1中,以远程桌面协议为RDP或SPICE为例。其中,RDP(远程桌面协议)是一个多通道的协议,RDP可以让使用者(当前是指云桌面用户使用的客户端)连上提供微软终端机服务器的计算机(当前指云桌面的服务器端)。SPICE(开源虚拟化桌面传输协议)是具有自适应能力的远程提交协议,能够提供与物理桌面完全相同的用户体验。
Host OS是服务器端的物理机上安装的操作系统,该操作系统为服务器端所使用的操作系统,其可以认为是服务器中真实安装且存在的物理操作系统,该物理操作系统可以是Linux、Windows或Android等操作系统。
Hypervisor(虚拟机监视器)用于负责管理虚拟机,如负责建立与执行虚拟机的软件或硬件、删除虚拟机以及监控虚拟机的运行。
VM(虚拟机)是利用虚拟机技术模拟的具有完整硬件系统的、运行在一个完全隔离环境中的完整计算机系统,VM是Hypervisor创建的进程。当前,服务器端的VM的数量为多个,图1中以4个VM为例进行描述。VM中安装并运行有云桌面的操作系统,该操作系统记为虚拟操作系统(也可记为Guest OS)。Guest OS可以是Linux、Windows或Android等操作系统。
Network Service用于负责VM的网络环境的创建,例如,负责为VM分配IP地址、为虚拟机创建虚拟网卡以及删除虚拟机的虚拟网卡等。
Image Service用于负责VM中操作系统(即虚拟操作系统)的镜像文件的准确。
VDI Gateway用于负责远程桌面协议请求鉴权以及远程桌面协议流量转发,其可理解为VDI架构下的网关,是远程桌面协议的流量的统一入口,其接收终端设备与云桌面有关的请求后,将请求发送至远程桌面协议,以使远程桌面协议进行后续处理。终端设备的客户端连接VDI Gateway后,可以通过远程桌面协议访问服务器端的云桌面,即实现客户端与云桌面的虚拟操作系统的通信。
Management Platform是向服务器端管理员提供的管理平台(也可记为操作平台),管理员通过Management Platform具备管理能力,可以对服务器端所在的物理设备的计算、存储和网络等资源进行管理。
基于图1所示的架构,以远程桌面协议为SPICE为例,此时,服务器端与终端设备的客户端的网络架构如图2所示。参考图2,VM中运行Guest OS。Guest OS使用SPICE,且基于VDI Gateway与终端设备的客户端进行通信。此时,客户端获取到远程桌面协议的通信地址后,便可以向VDI Gateway发出请求。该请求是终端设备的用户对云桌面发出的请求。VDIGateway接收到请求后,将请求转发给远程桌面协议,基于远程桌面协议使得云桌面的虚拟操作系统获取该请求并进行响应。其中,SPICE server是指SPICE服务,其用于实现SPICE协议。
需要说明,除了图1所示的Hypervisor、Network Service、Image Service、VDIGateway以及Management Platform外,VDI框架下还可以存在其他的组件,如日志组件、审计组件、监控组件、计费组件以及云盘组件等,当前对此不另做说明。云桌面客户端所在的终端设备与云桌面服务器的物理操作系统进行通信(如与Management Platform进行通信)时,可采用HTTP或HTTPS进行通信。
基于图1所示的架构,Hypervisor等组件直接运行在Host OS上,且与Host OS深度耦合,这样并不利于Hypervisor的部署和运营维护,进而不利于云桌面的部署和运营维护。
因此,相关技术中,为了简化部署难度,可以将Hypervisor等组件的安装包和HostOS集成在ISO镜像中。其中,ISO镜像可理解为后缀为.iso命名的镜像文件。基于镜像文件可以实现Hypervisor等组件的快速部署。但是,Hypervisor的运营维护难度仍然较大,如果Hypervisor出现安全漏洞,很难被修复,这样并不利于虚拟机中云桌面的运行。
基于此,本申请一个实施例提供了一种云桌面部署方法、装置、云桌面服务器及存储介质,以利用容器技术对应用程序及其环境的打包能力,将虚拟机和Hypervisor等组件都容器化,以部署容器的方式,对虚拟机和Hypervisor进行快速部署,进而实现云桌面的快速部署,并简化Hypervisor的运营维护难度。
本申请一个实施例提供了一种云桌面部署方法,该云桌面部署方法可以由云桌面部署设备执行。云桌面部署设备可以通过软件和/或硬件的方式实现,云桌面部署设备可以是两个或多个物理实体构成,也可以是一个物理实体构成。
当前,以云桌面部署设备为云桌面服务器为例,示例性描述云桌面部署方法。其中,云桌面服务器可理解为服务器端所在的物理设备,其用于为终端设备提供云桌面服务。云桌面服务器可以是计算机等具有数据计算、处理能力的设备。
云桌面服务器提供云桌面服务时,需要在Host OS中基于虚拟化技术部署多个虚拟机,且每个虚拟机中运行一个Guest OS,运行Guest OS后可以为对应的终端设备提供云桌面服务。一个实施例中,以云桌面服务器的Host OS为Linux系统,远程桌面协议为SPICE为例,描述云桌面部署方法。
图3为本申请一个实施例提供的一种云桌面部署方法的流程图,参考图3,云桌面服务器对云桌面进行部署时,包括如下步骤:
步骤110、获取第一容器镜像,第一容器镜像用于记录虚拟机、虚拟机管理组件以及虚拟机管理组件的依赖,虚拟机管理组件用于管理虚拟机,虚拟机用于运行云桌面的虚拟操作系统。
容器镜像是指将应用程序及其依赖分层打包的技术。其中,依赖也可记为软件依赖、依赖关系等,依赖可理解为应用程序安装及运行时所依赖的其他的代码(其他的代码也可理解为非应用程序的第三方代码)。需说明,应用程序所依赖的代码可以与硬件、操作系统和/或其他的应用程序有关。可选的,依赖可通过依赖包的形式打包在容器镜像中。一般而言,容器镜像制作完成后不能被修改,当需要修改容器镜像时,可以基于容器镜像制作新的容器镜像,新制作的容器镜像便是满足修改需求的容器镜像。基于容器镜像可以生成容器,容器中运行容器镜像记录的应用程序。
一个实施例中,将虚拟机和虚拟机管理组件一同打包制作成容器镜像,并将该容器镜像记为第一容器镜像,以保证一个容器中的虚拟机可由同一容器中的虚拟机管理组件进行管理。
其中,虚拟机管理组件是指可以创建、删除以及监控虚拟机的Hypervisor。在第一容器镜像中记录Hypervisor时一同记录Hypervisor的依赖。同时,Hypervisor创建的虚拟机也一同记录在第一容器镜像中。可选的,记录虚拟机是指记录虚拟机的操作系统、设备驱动、应用程序以及用户数据等。虚拟机的操作系统是指云桌面的虚拟操作系统。
当前,第一容器镜像中记录的虚拟机运行的虚拟操作系统和云桌面服务器所安装的物理操作系统可以为不同类型的操作系统,也可以为同一类型不同版本的操作系统,还可以是同一类型以及同一版本的操作系统,实施例对此不作限定。
第一容器镜像还可记录运行环境(即Hypervisor和虚拟机的运行环境)以及相关配置等,以基于第一容器镜像中的记录,保证Hypervisor和虚拟机的正常运行。
第一容器镜像的制作过程当前不作限定,实施例中仅获取制作完成的第一容器镜像。
可选的,云桌面服务器接收到第一容器镜像获取指示时,获取第一容器镜像,其中,第一容器镜像获取指示可以是人为发出的指示。第一容器镜像的获取方式当前不作限定,例如,云桌面服务器通过网络从其他的设备中下载第一容器镜像,再如,将第一容器镜像存储在USB闪存盘(即U盘)或移动硬盘等移动存储设备中,云桌面服务器通过接入的移动存储设备读取第一容器镜像。
步骤120、根据第一容器镜像在云桌面服务器中部署多个第一容器,多个第一容器共用第一容器镜像。
示例性的,将容器镜像中记录的应用程序在物理操作系统创建的独立namespace环境中运行,运行应用程序时生成的进程以及运行应用程序时的运行环境便可理解为基于容器镜像生成容器。其中,在Linux系统中,namespace是Linux内核用来隔离内核资源的方式,其可以使一组进程只看到与该进程相关的资源,另一组进程也只能看到与其相关的资源。常见的namespace包括但不限定于mount(即mount namespace)、pid(即pid namespace)和Network(即Network namespace)。实施例中,基于namespace实现将各容器间的资源隔离开来。
示例性的,基于第一容器镜像记录的内容,在云桌面服务器的物理操作系统中部署相应的容器,以在容器中运行第一容器镜像记录的Hypervisor和虚拟机。当前,将基于第一容器镜像部署的容器记为第一容器。
可选的,部署第一容器时,第一容器在namespace环境中运行具体是指在Networknamespace环境中运行。
通常,云桌面服务器提供云桌面服务时,会运行多个虚拟机,每个虚拟机均运行对应的虚拟操作系统并连接对应的云桌面客户端,以实现为当前连接的多个云桌面客户端提供云桌面服务。基于此,实施例中,基于第一容器镜像可部署多个第一容器,以在多个第一容器中分别运行对应的虚拟机。其中,第一容器的数量可根据当前需要云桌面服务的云桌面客户端决定。
可选的,云桌面服务器接收到云桌面服务请求时,基于第一容器镜像部署第一容器。需说明,当前所述的“在云桌面服务器部署多个第一容器”,并非限定同时部署多个第一容器,而是用于说明云桌面服务器根据第一容器镜像部署可多个第一容器,至于每个第一容器的部署时间,则根据接收对应的云桌面服务请求的时间确定。还可选的,云桌面服务器接收到云桌面服务请求时,确定接收到第一容器镜像获取指示,之后,获取第一容器镜像并部署对应的第一容器。
可选的,云桌面服务器获取第一容器镜像后,可以在本地保存第一容器镜像。当再次需要部署第一容器时,无需获取第一容器镜像,直接根据本次保存的第一容器镜像部署第一容器。
云桌面服务器部署第一容器时的部署方式当前不作限定,如使用Docker或kubernetes部署第一容器。一个实施例中,以使用kubernetes部署第一容器为例进行描述,此时,本步骤可具体为:根据第一容器镜像,基于kubernetes在云桌面服务器中部署多个第一容器。
其中,kubernetes也可简称为“k8s”,其是开源的、用于管理云平台中多个主机上的容器化的应用,也可理解为容器编排引擎,支持容器的自动化部署。示例性的,在云桌面服务器的物理操作系统中部署kubernetes平台,其中,kubernetes平台可以仅集成在云桌面服务器中,也可集成在多个物理设备(包括云桌面服务器)中。kubernetes平台部署完毕后,可以在kubernetes平台中部署容器。一般而言,kubernetes平台部署容器时,可以将容器分类组成容器集(也可记为pod),以便于对容器的集中管理。需说明,实施例中利用kubernetes现有的容器部署能力部署第一容器,具体的部署过程当前不作限定。
可理解,各第一容器均基于第一容器镜像部署时,各第一容器中运行的Hypervisor以及Hypervisor创建的虚拟机均为相同的版本。
步骤130、启动各第一容器,并在第一容器中运行虚拟机管理组件以及基于虚拟机管理组件创建的虚拟机,虚拟机运行虚拟操作系统。
示例性的,第一容器部署后,云桌面服务器便可启动第一容器。第一容器启动后在Network namespace中运行。第一容器运行过程中,基于Hypervisor可创建对应的虚拟机,并在虚拟机中运行云桌面的虚拟操作系统。
步骤140、将虚拟操作系统运行过程中生成的云桌面的运行界面发送至云桌面客户端,以供云桌面客户端显示运行界面。
虚拟操作系统运后便可与对应的云桌面客户端进行通信,以实现向云桌面客户端提供云桌面服务。其中,虚拟操作系统运行过程中,将云桌面当前的运行界面发送至云桌面客户端。当前的运行界面可以是云桌面的桌面界面,也可以是云桌面所在的虚拟操作系统安装的某个应用程序运行过程中的应用界面。通过运行界面可以体现云桌面当前的运行内容。云桌面客户端接收到运行界面后,显示运行界面,以使云桌面客户端的用户观看运行界面。之后,云桌面客户端的用户可以对运行界面进行操作,云桌面客户端将用户的操作上报给虚拟操作系统,由虚拟操作系统识别该操作并响应该操作,之后,虚拟操作系统更新运行界面,并将更新后的运行界面发送至云桌面客户端进行显示。
上述,通过获取用于记录虚拟机、虚拟机管理组件以及虚拟机管理组件的依赖的第一容器镜像,并基于第一容器镜像部署多个第一容器,之后,启动第一容器,在第一容器中运行虚拟机管理组件以及基于虚拟机管理组件创建的虚拟机,该虚拟机中运行有云桌面的虚拟操作系统,之后,将虚拟操作系统运行过程中生成的云桌面的运行界面发送至云桌面客户端,以供云桌面客户端显示运行界面的技术手段,解决了相关技术中云桌面部署速度慢的技术问题,通过容器化技术,将虚拟机管理组件和虚拟机打包在容器中运行,可以基于容器的快速部署技术,实现对虚拟机的快速部署,进而实现对云桌面的快速部署。并且,将虚拟机管理组件和物理操作系统解耦,使得虚拟机管理组件只跟其运行的容器环境有关,而容器环境包括虚拟操作系统和虚拟机管理组件的版本以及依赖包仅由容器镜像对应的开发人员定义,保证了容器的开发环境和生产环境(即应用部署过程)一致,无需考虑物理操作系统,便于后期的运营维护,并且,可以使虚拟操作系统和物理操作系统使用不一致的版本,扩大了虚拟操作系统的选择灵活性。
本申请一个实施例中,第一容器中记载的虚拟机和/或虚拟机管理组件还可以进行升级。此时,根据所述第一容器镜像,基于kubernetes在云桌面服务器中部署多个第一容器之后,还可以包括:获取第三容器镜像,第三容器镜像是对第一容器中运行的虚拟机管理组件和/或虚拟机进行升级后得到的容器镜像;根据第三容器镜像,基于kubernetes对各第一容器进行滚动更新。
示例性的,由于容器镜像制作完成后不能被修改,因此,当存在对容器镜像中的应用程序进行升级的需求时,可以基于升级后的应用程序重新制作容器镜像。其中,升级也可理解为版本升级,即将应用程序升级为新的版本。
当前,存在对第一容器中运行的虚拟机和/或Hypervisor进行版本升级的需求时,可获取重新制作的容器镜像。其中,重新制作的容器镜像可被记为第三容器镜像。可理解,第三容器镜像也记录有虚拟机、虚拟机管理组件以及虚拟机管理组件的依赖关系,第三容器镜像和第一容器镜像的区别在于,第三容器镜像是对第一容器镜像记录的虚拟机和/或Hypervisor版本升级后重新制作成的容器镜像。第三容器镜像的制作过程以及获取方式可参照第一容器镜像的制作过程以及获取方式,当前不做赘述。
获取第三容器镜像后,基于第三容器镜像对第一容器进行更新,以实现对第一容器中运行的虚拟机和/或Hypervisor进行版本升级。一个实施例中,基于kubernetes部署第一容器后,可以利用kubernetes的滚动更新能力进行版本升级。滚动更新(rolling-update)可理解为一次仅更新一个第一容器,以实现对各第一容器的逐个更新。
上述,当存在升级需求时,只需要生成新的容器镜像,再基于新的容器镜像对容器进行更新即可,简化了虚拟机和/或Hypervisor的运营维护过程。并且,基于kubernetes的滚动更新能力,可以实现对虚拟机和/或Hypervisor的快速更新,同时,一个容器的更新过程中,不影响其他容器的运行。
图4为本申请一个实施例提供的一种云桌面部署方法的流程图,该云桌面部署方法是在上述云桌面部署方法的基础上,对云桌面运行过程中所需的其他组件的部署进行示例性描述。
参考图4,该云桌面部署方法包括如下步骤:
步骤210、获取多个第二容器镜像,每个第二容器镜像用于记录对应的云桌面运行组件以及云桌面运行组件的依赖,云桌面运行组件用于支持虚拟机的运行。
示例性的,云桌面运行组件可理解为虚拟机运行过程中,保证虚拟机正常运行所需的组件,即云桌面运行组件用于支持虚拟机的运行。一个实施例中,云桌面运行组件包括:服务器管理平台组件、虚拟机镜像文件服务组件、虚拟机网络服务组件、云桌面网关组件中的至少一种。当前,以云桌面运行组件包括服务器管理平台组件、虚拟机镜像文件服务组件、虚拟机网络服务组件和云桌面网关组件为例进行描述。
其中,服务器管理平台组件是指Management Platform,虚拟机镜像文件服务组件是指Image Service、虚拟机网络服务组件是指Network Service,云桌面网关组件是指VDIGateway。当前,各云桌面运行组件的功能均为其原有功能,实施例中并未对云桌面运行组件的功能进行改进。
示例性的,每个云桌面运行组件均被打包制作成对应的容器镜像,当前,将云桌面运行组件对应的容器镜像记为第二容器镜像。每个云桌面运行组件对应一个第二容器镜像。第二容器镜像中记录有对应的云桌面运行组件以及云桌面运行组件的依赖。第二容器镜像的制作过程当前不作限定。实施例中仅获取制作完成的第二容器镜像。第二容器镜像的获取方式可参照第一容器镜像的获取方式,当前不做赘述。
需要说明,实际应用中,可以结合实际需求选择容器化的云桌面运行组件,其他未容器化的云桌面运行组件可按照现有的方式安装在云桌面服务器的物理操作系统中。
可选的,云桌面服务器接收到第二容器镜像获取指示时,获取第二容器镜像,其中,第二容器镜像获取指示可以是人为发出的指示,第二容器镜像获取指示和第一容器镜像获取指示可以为同一指示或为不同指示。当第二容器镜像获取指示和第一容器镜像获取指示为同一指示时,第一容器镜像和第二容器镜像一同被获取。当第二容器镜像获取指示和第一容器镜像获取指示为不同指示时,第一容器镜像和第二容器镜像可以不同时被获取,其具体的获取时间根据对应获取指示的接收时间确定。
步骤220、根据多个第二容器镜像在云桌面服务器中部署多个第二容器,每个第二容器对应一个云桌面运行组件。
示例性的,将基于第二容器镜像部署的容器记为第二容器,其中,第二容器和第一容器的部署方式相同,当前不做赘述。
获取第二容器镜像后,便可部署第二容器。此时,每个云桌面运行组件均在对应的第二容器中运行。
一个实施例中,云桌面网关组件对应的第二容器在mount namespace环境中运行,服务器管理平台组件、虚拟机镜像文件服务组件以及虚拟机网络服务组件对应的第二容器在network namespace环境中运行。
VDI Gateway运行过程中,需要与物理操作系统中所有的SPICE server进行通信,以实现云桌面客户端与虚拟机中云桌面的通信。其中,对于SPICE而言,其可包括协议、客户端侧、服务端侧和虚拟机端侧。协议是指客户端侧、服务端侧和虚拟机端侧通信时所遵循的准则。客户端侧当前也可以理解为云桌面客户端,其用于基于SPICE与运行云桌面的虚拟机侧进行通信。服务端侧可以理解为集成在虚拟机对应的Hypervisor内部的用户侧组件,以使Hypervisor支持SPICE,也可理解为SPICE server。虚拟机侧是指部署在虚拟机中的必要组件,用于使SPICE server与虚拟机进行通信,进而实现云桌面客户端与虚拟机基于SPICE进行通信。当前,物理操作系统中所有的SPICE server可理解为各Hyperviso内部的SPICEserver。
可理解,Network namespace侧重于隔离网络设备、网络栈、端口等,mountnamespace侧重于隔离文件系统,因此,实施例中,为了缩短VDI Gateway和SPICE server通信时的访问路径,将VDI Gateway对应的第二容器隔离在mount namespace环境中运行,其他的第二容器在network namespace环境中运行。
一个实施例中,基于kubernetes在云桌面服务器中部署多个第二容器。
步骤230、启动各第二容器,并在第二容器中运行云桌面运行组件。
示例性的,第二容器部署后,云桌面服务器便可启动第二容器。第二容器启动后,便可在对应的namespace中运行。第二容器运行过程中,可支持各第一容器中虚拟机的运行。
需要说明,第二容器和第一容器之间的部署顺序当前不作限定,一般而言,第二容器在获取第二容器镜像后直接部署,第一容器在存在云桌面服务需求时进行部署。
第二容器中记载的云桌面运行组件还可以进行升级。其中,第二容器的升级方式和第一容器的升级方式相同,当前不做赘述。
可理解,图5为本申请一个实施例提供的一种云桌面容器化架构图。参考图5,对云桌面运行组件、虚拟机管理组件以及虚拟机进行容器化部署后,可实现在云桌面服务器1中部署多个第一容器11和第二容器12。需说明,图5中仅以四个第一容器11进行示例性表示,并非是对第一容器的数量的限定。
上述,通过获取记录云桌面运行组件及其依赖的第二容器镜像,并基于第二容器镜像部署第二容器,在第二容器中运行云桌面运行组件的技术手段,可以实现云桌面运行组件的快速部署,通过容器化的方式将云桌面运行组件部署在云桌面服务器中,可以实现云桌面运行组件和物理操作系统的解耦,便于对云桌面运行组件的运营维护。
图6为本申请一个实施例提供的一种云桌面部署方法的流程图,该云桌面部署方法是在上述云桌面部署方法的基础上,对云桌面运行过程中的网络实现过程进行示例性描述。
一个实施例中,图7为本申请一个实施例提供的一种云桌面网络架构图,参考图7,远程桌面协议采用SPICE时,远程桌面协议服务为SPICE server。其中,云桌面的远程桌面协议服务运行在所述第一容器的network namespace环境中。具体来说,由于SPICE server属于Hypervisor内部的用户侧组件,因此,SPICE server运行在Hyperviso所属的第一容器11所在的Network namespace中。并且,当第一容器11启动时,SPICE server一同启动。
各第一容器11与云桌面客户端通过VDI Gateway进行通信。VDI Gateway所在的第二容器在mount namespace环境中运行。
此时,基于第一容器镜像部署各第一容器时,为每个第一容器分配一个IP地址,该IP地址可被透传给第一容器中虚拟机所运行的虚拟操作系统,以使虚拟操作系统中安装的应用程序使用该IP地址访问外网。这时,Hypervisor中的SPICE server无法监听该IP地址,即通过该IP地址所在接口的网络流量完全透传到Guest OS,无法被SPICE server获取,而与云桌面客户端的通信需要使用SPICE server。基于此,为了保证云桌面客户端和SPICEserver的通信,一个实施例中,第一容器配置有第一虚拟接口和第二虚拟接口,物理操作系统配置有第三虚拟接口和第四虚拟接口,第一虚拟接口和第三虚拟接口组成第一虚拟接口对,第一虚拟接口对供虚拟机使用,第二虚拟接口和第四虚拟接口组成第二虚拟接口对,第二虚拟接口对供远程桌面协议服务使用。
示例性的,为每个第一容器设置两个虚拟接口,当前,虚拟接口可理解为通过后台的应用程序实现的类似于进入网址的接入端口。将第一容器使用的两个虚拟接口分别记为第一虚拟机接口和第二虚拟接口,第一虚拟接口供虚拟机使用,也可以理解为供虚拟机中的虚拟操作系统使用,第二虚拟接口供SPICE server使用。并且,在云桌面服务器的物理操作系统中设置两个虚拟接口,当前,将物理操作系统使用的两个虚拟接口分别记为第三虚拟接口和第四虚拟接口,其中,第三虚拟接口和第四虚拟接口可理解为运行在物理操作系统的虚拟接口。物理操作系统还有配置有物理网卡接口,物理网卡接口也可记为物理接口,其为实际存在的接口,物理网卡接口接收的流量由物理网卡处理。其中,物理网卡可理解为真实存在的网卡,而VDI Gateway可理解为供云桌面使用的虚拟网关。
第一虚拟接口和第三虚拟接口组成一个虚拟接口对,当前记为第一虚拟接口对。第二虚拟接口和第四虚拟接口组成另一个虚拟接口对,当前记为第二虚拟接口对。虚拟接口对(veth-pair)用于打通对应的两个Network namespace,实施例中,通过虚拟接口对实现不同Network namespace的通信。
第一虚拟接口对供虚拟机使用,以实现虚拟机中运行的虚拟操作系统与外网的通信。其中,与外网的通信可以是与其他第一容器中的虚拟操作系统的通信,还可以是与Internet的通信。通信过程中,通过第一虚拟接口对使虚拟机中的虚拟操作系统和云桌面服务器的物理操作系统之间进行流量的收发,之后,再由物理操作系统和外网进行流量的收发。举例而言,虚拟操作系统与Internet通信时,可以先通过第一虚拟接口对与物理操作系统通信,再基于物理操作系统的物理网卡接口与Internet通信。
第二虚拟接口对供SPICE server使用,以实现SPICE server与云桌面客户端的通信。其中,SPICE server通过VDI Gateway与云桌面客户端进行通信。具体来说,SPICEserver通过第二虚拟接口对实现与VDI Gateway之间的流量的收发,之后,VDI Gateway通过物理网卡接口实现与云桌面客户端的通信。
需说明,第一容器中的SPICE server和虚拟操作系统之间进行通信,如SPICEserver获取虚拟操作系统生成的运行界面,再如,SPICE server将云桌面客户端发送的控制操作发送给虚拟操作系统。SPICE server和虚拟操作系统的通信属于第一容器内部的通信,实施例中不另做说明。
一个实施例中,第二虚拟接口和第四虚拟接口关联于同一linux bridge中,即该linux bridge为第二虚拟接口对所属。其中,linux bridge属于vSwitch的一种实现方式,vSwitch为Linux的虚拟交换机,将多个虚拟接口或物理网卡接口加入vSwitch后,vSwitch中的所有接口之间可进行数据的转发,较为常用的vSwitch包括linux bridge和openvSwitch。一个实施例中,关联过程可以是将第四虚拟接口关联到一个linux bridge中,并且,为linux bridge配置一个与第二虚拟接口的IP地址相同网段的IP地址,以实现第二虚拟接口和第四虚拟接口关联于同一linux bridge,进而实现第二虚拟接口流入第四虚拟接口的流量可以达到VDI Gateway。并且,降低了物理操作系统维护IP地址的复杂度。
可理解,各第一容器中配置的第二虚拟接口所对应的第四虚拟接口均关联于同一linux bridge,以保证各第一容器中SPICE server的流量均可通过第二虚拟接口对达到VDI Gateway,以及各第一容器中SPICE server通过第二虚拟接口对接收到VDI Gateway发送的流量。
可理解,当前,为第一容器分配了两个不同的IP地址,一个IP地址供第一虚拟接口使用,另一个IP地址供第二虚拟接口使用,并且,为linux bridge配置一个与第二虚拟接口的IP地址相同网段的IP地址,以实现第一容器中的虚拟操作系统与云桌面客户端以及外网的通信,即保证了虚拟操作系统的正常通信。
参考图6,该云桌面部署方法可包括如下步骤:
步骤310、获取第一容器镜像,第一容器镜像用于记录虚拟机、虚拟机管理组件以及虚拟机管理组件的依赖,虚拟机管理组件用于管理虚拟机,虚拟机用于运行云桌面的虚拟操作系统;
步骤320、根据第一容器镜像在云桌面服务器中部署多个第一容器,多个第一容器共用第一容器镜像;
步骤330、启动各第一容器,并在第一容器中运行虚拟机管理组件以及基于虚拟机管理组件创建的虚拟机,虚拟机运行虚拟操作系统;
步骤340、将虚拟操作系统运行过程中生成的云桌面的运行界面发送至云桌面客户端,以供云桌面客户端显示运行界面。
其中,虚拟操作系统生成的运行界面可被第一容器中运行的SPICE server捕捉,之后,SPICE serve对运行界面进行封装后,通过第二虚拟接口对发送至VDI Gateway(即由VDI Gateway访问SPICE server,以得到运行界面),之后,VDI Gateway通过物理网卡接口将运行界面发送至云桌面客户端。
可理解,需要基于SPICE向云桌面客户端发送其他的数据时,发送过程也可基于上述方式实现。
步骤350、接收云桌面访问数据指令。云桌面访问指令访问第一虚拟接口时,执行步骤360。云桌面访问指令访问第二虚拟接口时,执行步骤370。
示例性的,虚拟操作系统运行后,可以与外界进行通信,当前所说的外界包括但不限定于其他第一容器中的虚拟操作系统、Internet以及云桌面客户端。一个实施例中,以虚拟操作系统被外界访问为例,描述与外界的通信过程。云桌面访问指令可理解为访问云桌面的流量,如供云桌面响应的指令、获取云桌面中数据的指令以及供云桌面接收的数据等均可认为是云桌面访问指令。云桌面访问指令可以由云桌面客户端生成,也可以由Internet中其他的终端生成,还可以由其他第一容器中的虚拟操作系统生成。
可选的,云桌面访问指令包含的内容当前不作限定。
举例而言,以云桌面客户端生成云桌面访问指令为例,云桌面客户端显示运行界面后,云桌面客户端的用户基于运行界面可对云桌面进行控制。其中,用户通过云桌面客户端所在的终端设备对运行界面进行操作,以实现对云桌面的控制。可理解,由于云桌面由云桌面服务器进行响应,终端设备只负责显示云桌面的运行界面。因此,终端设备检测到用户在运行界面中进行操作后,只能确定用户针对云桌面进行了操作,但是无法确定该操作所对应的控制内容,此时,终端设备只需将采集的操作发送给云桌面服务器,由云桌面服务器识别该操作并进行响应。可选的,终端设备向云桌面服务器上报用户的操作时,所上报供云桌面服务器响应的操作便可理解为云桌面访问指令,此时,云桌面访问指令可包括操作的形式、时间和操作的位置等。
一般而言,云桌面服务器通过物理网卡接口接收云桌面访问指令。需说明,当云桌面服务器内部各第一容器间发送云桌面访问指令时,无需通过物理网卡接口接收云桌面访问指令,其他处理过程相同。
一个实施例中,云桌面服务器接收云桌面访问指令后,可以确定其访问的是虚拟机还是VDI Gateway。例如,云桌面访问指令包含第一虚拟接口的IP地址时,确定云桌面访问指令访问虚拟机。再如,云桌面访问指令包含VDI Gateway监听的端口号时,确定云桌面服务器访问VDI Gateway。其中,每个SPICE Server对应一个端口号,VDI Gateway可对全部端口号(即全部SPICE Server对应的端口号)和物理网卡接口的IP地址进行监听,云桌面客户端可以明确VDI Gateway监听的端口号,并写入云桌面访问指令中。
示例性的,云桌面服务器确定访问虚拟机时,也可理解为确定访问第一虚拟接口,之后,执行步骤360。云桌面服务器确定访问VDI Gateway时,也可理解为确定访问第二虚拟接口,之后,执行步骤370。
步骤360、云桌面访问指令访问第一虚拟接口时,将云桌面访问指令发送至第三虚拟接口,以供虚拟机接收。
示例性的,由于第一虚拟接口和第三虚拟接口组成了第一虚拟接口对,因此,云桌面服务器的物理操作系统确定云桌面访问指令访问第一虚拟接口时,将当前接收的云桌面访问指令发送至第三虚拟接口,以使云桌面访问指令从第三虚拟接口流入第一虚拟接口,进而使得使用第一虚拟接口的虚拟机接收云桌面访问指令。
可理解,发送过程与接收过程相似,如虚拟机通过第一虚拟接口向Internet发送指令(也可发送数据)时,由第一虚拟接口接收该指令并流入第三虚拟接口,之后,物理操作系统将第三虚拟接口流入的指令发送至物理网卡接口,以使物理网卡接口向外发送。虚拟机通过第一虚拟接口向其他第一容器中的虚拟机发送指令(也可发送数据)时,由第一虚拟接口接收该指令并流入第三虚拟接口,物理操作系统将第三虚拟接口流入的指令发送至其他第一容器使用的第三虚拟接口,之后,其他第一容器的第一虚拟接口中流入该指令,以供其他第一容器中的虚拟机获取该指令。
步骤370、云桌面访问指令访问第二虚拟接口时,将云桌面访问指令通过云桌面网关组件发送至第四虚拟接口,以供远程桌面协议服务接收。
示例性的,由于第二虚拟接口和第四虚拟接口组成了第二虚拟接口对,因此,云桌面服务器的物理操作系统确定云桌面访问指令访问第二虚拟接口时,将云桌面访问指令发送至VDI Gateway。VDI Gateway接收到云桌面访问指令时,可以基于云桌面访问指令中的端口号匹配到对应的第二虚拟接口对,进而通过第二虚拟接口对,将云桌面访问指令发送至对应的SPICE Server。其中,VDI Gateway匹配到对应的第二虚拟接口对后,将云桌面访问指令发送至第二虚拟接口对中的第四虚拟接口,以使SPICE server通过第二虚拟接口获取到云桌面访问指令,并进行响应。
需说明,发送过程与接收过程相似,如SPICE server通过第二虚拟接口向云桌面客户端发送指令(也可发送数据)时,也通过Linux Bridge使VDI Gateway通过第四虚拟接口获取该指令,并通过物理网卡接口发送至云桌面客户端。
需要说明,云桌面服务器接收云桌面访问指令后,也可以进行进一步处理再发送至对应的虚拟接口,例如,云桌面客户端发送云桌面访问指令后,由VDI Gateway接收云桌面访问指令后,进行鉴权,并在鉴权通过后匹配转发规则(即确定端口号对应的第二虚拟接口对),最终经由相应的第二虚拟接口对转发给对应的第二虚拟接口,以由SPICE server做出响应。
需要说明,第一虚拟接口对可理解为第一容器原生的虚拟接口对,即部署第一容器时,本就该分配的虚拟接口对。第二虚拟接口对可理解为额外为第一容器分配的虚拟接口对,不属于原生的虚拟接口对,此时,为了保证第二虚拟接口发送的数据可以经由第四虚拟接口到达VDI Gateway,将所有第一容器对应的第四虚拟接口关联于同一linux bridge中,且为linux bridge配置与第二虚拟接口的IP地址具有相同的网段的IP地址,以实现第二虚拟接口和VDI Gateway的通信。
为了便于理解,对第一虚拟接口对和第二虚拟接口对进行举例,其中,图8为本申请一个实施例提供的一种第一容器网络架构图,参考图8,以一个第一容器为例,其中,第一容器中运行虚拟机和SPICE serve。etch0@if5017为第一虚拟接口,位于第一容器的Network namespace,xxx@if5017为第三虚拟接口,位于物理操作系统的Networknamespace,etch0@if5017和xxx@if5017为第一虚拟接口对,且etch0@if5017的IP地址供虚拟操作系统直接使用。net1@if1752为第二虚拟接口,位于第一容器的Network namespace,net1@if1752为SPICE serve的监听IP地址。xxx@if1752为第四虚拟接口,位于物理操作系统的Network namespace,net1@if1752和xxx@if5017为第二虚拟接口对。物理操作系统中的xxx@if1752被关联到一个linux bridge中,同时,为该linux bridge配置一个IP地址,该IP地址与net1@if1752的IP地址具有相同的网段,以实现VDI Gateway访问SPICE serve。etch0为物理网卡接口。其中,物理网卡接口接收的云桌面访问指令访问etch0@if5017时,物理操作系统将云桌面访问指令发送至xxx@if5017,以使云桌面访问指令从xxx@if5017流入etch0@if5017,进而供虚拟操作系统使用。云桌面访问指令访问net1@if1752时,物理操作系统将云桌面访问指令发送至VDI Gateway,由VDI Gateway将云桌面访问指令发送至xxx@if1752,以使云桌面访问指令从xxx@if1752流入net1@if1752,进而供SPICE server处理。
上述,通过将SPICE server和Hypervisor一同打包进第一容器镜像,可以实现在第一容器启动时,启动SPICE server,进而实现虚拟机和云桌面客户端的通信。并且,为第一容器分配供SPICE server使用的第二虚拟接口,为物理操作系统分配与第二虚拟接口组成虚拟接口对的第四虚拟接口,可以实现暴露SPICE server,以使第一容器外的其他组件或进程访问SPICE server,即实现了云桌面客户端和SPICE server的通信。
图9为本申请一个实施例提供的一种云桌面部署装置的结构示意图。该云桌面部署装置应用于云桌面服务器,参考图9,该云桌面部署装置包括:第一获取单元401、第一部署单元402、第一启动单元403和第一发送单元404。
其中,第一获取单元401,用于获取第一容器镜像,所述第一容器镜像用于记录虚拟机、虚拟机管理组件以及虚拟机管理组件的依赖,所述虚拟机管理组件用于管理所述虚拟机,所述虚拟机用于运行云桌面的虚拟操作系统;第一部署单元402,用于根据所述第一容器镜像在所述云桌面服务器中部署多个第一容器,所述多个第一容器共用所述第一容器镜像;第一启动单元403,用于启动各所述第一容器,并在所述第一容器中运行所述虚拟机管理组件以及基于所述虚拟机管理组件创建的虚拟机,所述虚拟机运行所述虚拟操作系统;第一发送单元404,用于将所述虚拟操作系统运行过程中生成的所述云桌面的运行界面发送至云桌面客户端,以供所述云桌面客户端显示所述运行界面。
本申请一个实施例中,还包括:第二获取单元,用于获取多个第二容器镜像,每个所述第二容器镜像用于记录对应的云桌面运行组件以及云桌面运行组件的依赖,所述云桌面运行组件用于支持所述虚拟机的运行;第二部署单元,用于根据多个所述第二容器镜像在所述云桌面服务器中部署多个第二容器,每个所述第二容器对应一个云桌面运行组件;第二启动单元,用于启动各所述第二容器,并在所述第二容器中运行所述云桌面运行组件。
本申请一个实施例中,所述云桌面运行组件包括:服务器管理平台组件、虚拟机镜像文件服务组件、虚拟机网络服务组件、云桌面网关组件中的至少一种。
本申请一个实施例中,所述云桌面的远程桌面协议服务运行在所述第一容器的network namespace环境中。
本申请一个实施例中,所述第一容器配置有第一虚拟接口和第二虚拟接口,所述物理操作系统配置有第三虚拟接口和第四虚拟接口,所述第一虚拟接口和所述第三虚拟接口组成第一虚拟接口对,所述第一虚拟接口对供虚拟机使用,所述第二虚拟接口和所述第四虚拟接口组成第二虚拟接口对,所述第二虚拟接口对供远程桌面协议服务使用。
本申请一个实施例中,还包括:第一接收单元,用于将所述虚拟操作系统运行过程中生成的所述云桌面的运行界面发送至云桌面客户端之后,接收云桌面访问指令;第二发送单元,用于云桌面访问指令访问所述第一虚拟接口时,将所述云桌面访问指令发送至所述第三虚拟接口,以供所述虚拟机接收;第三发送单元,用于云桌面访问指令访问所述第二虚拟接口时,将所述云桌面访问指令通过云桌面网关组件发送至所述第四虚拟接口,以供所述远程桌面协议服务接收。
本申请一个实施例中,所述第二虚拟接口和所述第四虚拟接口关联于同一linuxbridge中。
本申请一个实施例中,所述云桌面网关组件对应的所述第二容器在mountnamespace环境中运行,所述服务器管理平台组件、所述虚拟机镜像文件服务组件以及所述虚拟机网络服务组件对应的所述第二容器在network namespace环境中运行。
本申请一个实施例中,第一部署单元402具体包括:根据所述第一容器镜像,基于kubernetes在所述云桌面服务器中部署多个所述第一容器。
本申请一个实施例中,还包括:第三获取单元,用于根据所述第一容器镜像,基于kubernetes在所述云桌面服务器中部署多个所述第一容器之后,获取第三容器镜像,所述第三容器镜像是对所述第一容器中运行的所述虚拟机管理组件和/或所述虚拟机进行升级后得到的容器镜像;更新单元,用于根据所述第三容器镜像,基于所述kubernetes对各所述第一容器进行滚动更新。
上述提供的云桌面部署装置可用于执行上述任意实施例提供的云桌面部署方法,具备相应的功能和有益效果。
值得注意的是,上述云桌面部署装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。
图10为本申请一个实施例提供的一种云桌面服务器的结构示意图。该云桌面服务器为云桌面部署设备。如图10所示,该云桌面服务器包括处理器50、存储器51和通信模块52;处理器50的数量可以是一个或多个,图10中以一个处理器50为例。云桌面服务器中处理器50、存储器51和通信模块52可以通过总线或其他方式连接,图10中以通过总线连接为例。
存储器51作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请实施例中的云桌面部署方法对应的程序指令/模块(例如,云桌面部署装置中的第一获取单元401、第一部署单元402、第一启动单元403和第一发送单元404)。处理器50通过运行存储在存储器51中的软件程序、指令以及模块,从而执行云桌面服务器的各种功能应用以及数据处理,即实现上述的云桌面部署方法。
存储器51可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据云桌面服务器的使用所创建的数据等。此外,存储器51可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器51可进一步包括相对于处理器50远程设置的存储器,这些远程存储器可以通过网络连接至云桌面服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
通信装置52(如物理网卡接口)用于根据处理器的指示实现数据通信,如与云桌面客户端进行数据通信。云桌面服务器还可以包括输入装置和输出装置,输入装置可用于接收输入的数字或字符信息,以及产生与云桌面服务器的用户设置以及功能控制有关的键信号输入,还可以包括麦克风等音频输入设备。输出装置可包括显示屏、扬声器等设备。
上述云桌面服务器包含对应的云桌面部署装置,可以用于执行任意实施例提供的对应的云桌面部署方法,具备相应的功能和有益效果。
此外,本申请一个实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行本申请任意实施例所提供的云桌面部署方法中的相关操作,且具备相应的功能和有益效果。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。
因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。
Claims (13)
1.一种云桌面部署方法,应用于云桌面服务器,其特征在于,包括:
获取第一容器镜像,所述第一容器镜像用于记录虚拟机、虚拟机管理组件以及虚拟机管理组件的依赖,所述虚拟机管理组件用于管理所述虚拟机,所述虚拟机用于运行云桌面的虚拟操作系统;
根据所述第一容器镜像在所述云桌面服务器中部署多个第一容器,所述多个第一容器共用所述第一容器镜像;
启动各所述第一容器,并在所述第一容器中运行所述虚拟机管理组件以及基于所述虚拟机管理组件创建的虚拟机,所述虚拟机运行所述虚拟操作系统;
将所述虚拟操作系统运行过程中生成的所述云桌面的运行界面发送至云桌面客户端,以供所述云桌面客户端显示所述运行界面。
2.根据权利要求1所述的云桌面部署方法,其特征在于,还包括:
获取多个第二容器镜像,每个所述第二容器镜像用于记录对应的云桌面运行组件以及云桌面运行组件的依赖,所述云桌面运行组件用于支持所述虚拟机的运行;
根据多个所述第二容器镜像在所述云桌面服务器中部署多个第二容器,每个所述第二容器对应一个云桌面运行组件;
启动各所述第二容器,并在所述第二容器中运行所述云桌面运行组件。
3.根据权利要求2所述的云桌面部署方法,其特征在于,所述云桌面运行组件包括:服务器管理平台组件、虚拟机镜像文件服务组件、虚拟机网络服务组件、云桌面网关组件中的至少一种。
4.根据权利要求1所述的云桌面部署方法,其特征在于,所述云桌面的远程桌面协议服务运行在所述第一容器的network namespace环境中。
5.根据权利要求1或4所述的云桌面部署方法,其特征在于,所述第一容器配置有第一虚拟接口和第二虚拟接口,所述物理操作系统配置有第三虚拟接口和第四虚拟接口,所述第一虚拟接口和所述第三虚拟接口组成第一虚拟接口对,所述第一虚拟接口对供所述虚拟机使用,所述第二虚拟接口和所述第四虚拟接口组成第二虚拟接口对,所述第二虚拟接口对供远程桌面协议服务使用。
6.根据权利要求5所述的云桌面部署方法,其特征在于,所述将所述虚拟操作系统运行过程中生成的所述云桌面的运行界面发送至云桌面客户端之后,还包括:
接收云桌面访问指令;
所述云桌面访问指令访问所述第一虚拟接口时,将所述云桌面访问指令发送至所述第三虚拟接口,以供所述虚拟机接收;
所述云桌面访问指令访问所述第二虚拟接口时,将所述云桌面访问指令通过云桌面网关组件发送至所述第四虚拟接口,以供所述远程桌面协议服务接收。
7.根据权利要求5所述的云桌面部署方法,其特征在于,所述第二虚拟接口和所述第四虚拟接口关联于同一linux bridge中。
8.根据权利要求3所述的云桌面部署方法,其特征在于,所述云桌面网关组件对应的所述第二容器在mount namespace环境中运行,所述服务器管理平台组件、所述虚拟机镜像文件服务组件以及所述虚拟机网络服务组件对应的所述第二容器在network namespace环境中运行。
9.根据权利要求1所述的云桌面部署方法,其特征在于,所述根据所述第一容器镜像在所述云桌面服务器中部署多个第一容器,包括:
根据所述第一容器镜像,基于kubernetes在所述云桌面服务器中部署多个所述第一容器。
10.根据权利要求9所述的云桌面部署方法,其特征在于,所述根据所述第一容器镜像,基于kubernetes在所述云桌面服务器中部署多个所述第一容器之后,还包括:
获取第三容器镜像,所述第三容器镜像是对所述第一容器中运行的所述虚拟机管理组件和/或所述虚拟机进行升级后得到的容器镜像;
根据所述第三容器镜像,基于所述kubernetes对各所述第一容器进行滚动更新。
11.一种云桌面部署装置,应用于云桌面服务器,其特征在于,包括:
第一获取单元,用于获取第一容器镜像,所述第一容器镜像用于记录虚拟机、虚拟机管理组件以及虚拟机管理组件的依赖,所述虚拟机管理组件用于管理所述虚拟机,所述虚拟机用于运行云桌面的虚拟操作系统;
第一部署单元,用于根据所述第一容器镜像在所述云桌面服务器中部署多个第一容器,所述多个第一容器共用所述第一容器镜像;
第一启动单元,用于启动各所述第一容器,并在所述第一容器中运行所述虚拟机管理组件以及基于所述虚拟机管理组件创建的虚拟机,所述虚拟机运行所述虚拟操作系统;
第一发送单元,用于将所述虚拟操作系统运行过程中生成的所述云桌面的运行界面发送至云桌面客户端,以供所述云桌面客户端显示所述运行界面。
12.一种云桌面服务器,其特征在于,包括:
通信模块,用于实现数据通信;
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-10中任一所述的云桌面部署方法。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-10中任一所述的云桌面部署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211506466.XA CN118093071A (zh) | 2022-11-28 | 2022-11-28 | 云桌面部署方法、装置、云桌面服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211506466.XA CN118093071A (zh) | 2022-11-28 | 2022-11-28 | 云桌面部署方法、装置、云桌面服务器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118093071A true CN118093071A (zh) | 2024-05-28 |
Family
ID=91160575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211506466.XA Pending CN118093071A (zh) | 2022-11-28 | 2022-11-28 | 云桌面部署方法、装置、云桌面服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118093071A (zh) |
-
2022
- 2022-11-28 CN CN202211506466.XA patent/CN118093071A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10719367B1 (en) | Management of workers executing program code functions | |
US9720668B2 (en) | Creating and maintaining multi-tenant applications in a platform-as-a-service (PaaS) environment of a cloud computing system | |
US11625281B2 (en) | Serverless platform request routing | |
US10452372B2 (en) | Method and deployment module for managing a container to be deployed on a software platform | |
US11321130B2 (en) | Container orchestration in decentralized network computing environments | |
US10091055B2 (en) | Configuration service for configuring instances | |
US9634948B2 (en) | Management of addresses in virtual machines | |
US9116735B2 (en) | Offline provisioning of virtual machines | |
US8762986B2 (en) | Advanced packaging and deployment of virtual appliances | |
US11030025B2 (en) | Managing inter-process communications in a containerized application environment | |
CN108322490B (zh) | 虚拟机配置及部署分布式云服务系统的方法、装置和服务器 | |
US9542174B2 (en) | Deployment of software images with distinct configuration logic | |
JP2021518018A (ja) | 関数チェックポイントを使用したサービスハブのための関数移植性 | |
US9712376B2 (en) | Connector configuration for external service provider | |
CN102207859A (zh) | 解决方案部署方法、设备和系统 | |
US9021478B1 (en) | Provisioning virtual machines from template by splitting and building index for locating content portions via content-centric network | |
US11762644B2 (en) | Agentless installation for building deployments | |
US20150188778A1 (en) | Normalized management network | |
US11997170B2 (en) | Automated migration of monolithic applications to container platforms | |
US10817280B1 (en) | Overriding shared service interfaces | |
CN117112122A (zh) | 一种集群部署方法和装置 | |
US20230023945A1 (en) | Orchestrating and Automating Product Deployment Flow and Lifecycle Management | |
CN118093071A (zh) | 云桌面部署方法、装置、云桌面服务器及存储介质 | |
US11550608B2 (en) | Guest-to-host virtual networking | |
CN110719303B (zh) | 一种容器化nrf的方法及系统 |
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 |