CN113485786A - 一种基于云物理机实现pod挂载cinder卷的方法及系统 - Google Patents
一种基于云物理机实现pod挂载cinder卷的方法及系统 Download PDFInfo
- Publication number
- CN113485786A CN113485786A CN202110728815.1A CN202110728815A CN113485786A CN 113485786 A CN113485786 A CN 113485786A CN 202110728815 A CN202110728815 A CN 202110728815A CN 113485786 A CN113485786 A CN 113485786A
- Authority
- CN
- China
- Prior art keywords
- volume
- physical machine
- path information
- cluster
- storage device
- 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.)
- Granted
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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- 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/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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/45562—Creating, deleting, cloning virtual machine instances
-
- 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/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种基于云物理机实现pod挂载c inder卷的方法及系统,均能:在Openstack上创建云物理机,在云物理机上部署k8s集群;在k8s集群中安装c inder cs i插件;在k8s集群部署云物理机的agent;向k8s集群发送为目标pod挂载持久化卷的请求;k8s集群接收到请求后,创建c inder卷和创建块存储设备并完成其二者的绑定;Openstack向目标agent下发挂卷请求;目标agent接收该请求后将对应卷挂载至本地,并将相关块存储设备路径信息及卷标识记录到本地;k8s集群可发送对块存储设备路径信息的查询请求;目标agent可在查找到对应存储设备路径信息后,将其返回给cs i插件;cs i插件接收到返回的块存储设备路径信息后,在k8s集群上完成对应c inder卷的挂载。本发明用于使用Openstack c inder提供的云硬盘服务为集群中的pod提供持久化卷。
Description
技术领域
本发明涉及服务器领域,具体涉及一种基于云物理机实现pod挂载cinder卷的方法及系统。
背景技术
云物理机是用户在云平台中创建出的一个落在真实物理服务器上的主机实例,独占一台物理服务器,没有虚拟化性能开销以及特性损失,具有虚拟机无法比拟的计算性能,常用在如核心数据库等业务场景。
Openstack(开源云计算系统)环境中建立的云物理机,又称为Openstack云物理机,是Openstack计算服务Nova、Openstack网络服务Neutron、Openstack镜像服务Glance以及Openstack裸机部署服务项目Ironic等集成实现的。一台云物理机创建的过程实际就是调度一台裸机并对其进行装机的过程。
Kubernetes(简称k8s)是Google开源的容器集群管理系统,其在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。
k8s管理调度的基本单位是pod,可以理解为若干共享网络的container的组合,在k8s的调度理念中,pod是一种可以在节点间漂移、根据集群负载动态删除、创建的资源,如果需要实现pod中数据的持久化存储,就需要创建持久化卷挂载给pod使用。
k8s在Openstack环境中的部署方式,从计算资源的角度来看主要分为两种,一种是k8s部署在Openstack提供的虚拟机中,另一种是k8s部署在Openstack提供的云物理机中;如果用户对k8s集群的性能要求较高,那么一般就会选择在云物理机上创建k8s集群。无论是虚拟机或者云物理机,在Openstack环境中一般都会对接cinder(即Openstack卷服务)提供的云硬盘服务,以实现数据的持久化远端存储保存。k8s的cinder csi插件就提供了这样的能力,cinder csi插件分为运行在k8s master节点上的controller plugin和运行在node节点上的nodeplugin,可以通过调用Openstack接口创建cinder云硬盘,再将cinder云硬盘挂载给k8s所在的虚拟机操作系统内的特定目录,再将这个目录映射给pod的容器进程,以实现Openstack虚拟机环境中的k8s pod使用cinder云硬盘的效果。
Openstack虚拟机可以通过宿主机上的libvirt(是一套用于管理硬件虚拟化的开源API、守护进程与管理工具)实现挂载远程的云硬盘。云物理机挂载cinder提供的云硬盘一般需要安装代理程序,通过代理模拟libvirt扫盘的行为,实现在云物理机中发现远端存储卷和连接远端卷。这对于需要使用云物理机部署k8s集群又需要使用cinder进行统一的存储资源管理的用户,则存在以下三方面问题:
1、目前开源社区的cinder csi插件(即对接cinder实现容器卷服务的插件)只能支持Openstack中的虚拟机挂载cinder云硬盘,还不能支持Openstack云物理机挂载cinder云硬盘,根本原因就是在csi插件中需要根据cinder id寻找本地对应的块设备路径信息,以完成挂载操作。而在Openstack虚拟机中,nova会根据存储驱动类型创建对应的块设备,attach到虚拟机进程上,块设备在操作系统中的/dev/disk/by-id路径下发现的设备id即包括cinder卷的id,原生cinder csi node plugin就是根据这个规则寻找要挂载的块设备路径信息,而对于云物理机是直接在裸金属服务器上安装操作系统,没有nova相关进程,也没有虚拟化相关程序,因此需要依赖额外的agent代理程序完成块设备的发现和连接,这类块设备是cinder在存储后端上创建后直接通过agent发现并连接给云物理机,在/dev/disk/by-id路径下生成的设备信息中不会带有cinder id相关的内容,因此原生cindercsi插件中根据volume id判断的逻辑则行不通。这对于需要使用云物理机部署k8s集群,又需要使用cinder进行统一的存储资源管理的用户造成了很大的不便。
2、云物理机中运行的代理程序需要提前安装在操作系统镜像之中,除了代理程序本身之外一般还需要很多的依赖包,这样就需要用户使用特定的操作系统镜像才能创建可挂卷的云物理机,或者在云物理机部署完成后手动安装代理程序,并且解决代理程序需要的依赖包环境,并且在用户对k8s集群进行增加节点操作后,还需要手动进行agent程序的安装配置,易用性不好,自动化程度不高。
3、代理程序作为云物理机操作系统中的一个进程在后台运行,由于种种原因,发生异常退出时,这种情况下就无法再为云物理机挂载cinder卷,需要用户手动重启代理程序,健壮性不好。
为此,本发明提供一种基于云物理机实现pod挂载cinder卷的方法及系统,用于解决上述问题。
发明内容
针对现有技术的不足,本发明提供一种基于云物理机实现pod挂载cinder卷的方法及系统,用于解决解决部署在Openstack云物理机之上的k8s集群使用cinder-csi插件为pod挂载cinder云硬盘的难题,使得此类集群可以统一使用Openstack cinder提供的云硬盘服务为集群中的pod提供持久化卷。
本发明提供一种基于云物理机实现pod挂载cinder卷的方法,包括步骤:
在Openstack环境中创建云物理机,在所述云物理机上部署k8s集群;
在k8s集群中安装cinder csi插件,并配置所述cinder csi插件能够访问Openstack环境;
在k8s集群部署云物理机的agent代理程序;
向k8s集群发送为目标pod挂载持久化卷的请求,并声明所要挂载的卷的卷类型为cinder;目标pod为预先指定好的k8s集群中的任意一个pod;
k8s集群接收到所述请求后,获取目标物理机的信息,创建cinder卷,在对应的存储后端上创建块存储设备,并完成目标物理机与所述块存储设备的绑定;目标物理机为目标pod当前所在的云物理机;
Openstack在上述绑定完成后,向目标agent下发挂卷请求,该挂卷请求包括所述存储后端的连接信息和所要挂载的cinder卷的卷标识;目标agent为目标物理机上的agent代理程序;
目标agent接收上述挂卷请求,并在接收到该挂卷请求后将云硬盘列表中的对应卷挂载至本地,并将本次挂载所形成的块存储设备路径信息与上述接收到的挂卷请求中的卷标识建立一一对应关系并记录到本地;
k8s集群调用本地预设接口,使用上述卷标识向目标agent发送对上述块存储设备路径信息的查询请求;
所述目标agent,在监听到上述查询请求后,在本地查找是否存在所要查找的存储设备路径信息,若存在,则读取该块存储设备路径信息并返回给cindercsi插件;
cinder csi插件接收到返回的块存储设备路径信息后,根据k8s集群的原生逻辑,在k8s集群上完成对应cinder卷的挂载。
进一步地,将本次挂载所形成的块存储设备路径信息与上述接收到的挂卷请求中的卷标识建立一一对应关系并记录到本地的实现方法为:
以文件的形式,将本次挂载所形成的块存储设备路径信息以及上述接收到的挂卷请求中的卷标识记录到本地,其中,文件名称为卷标识,文件内容为块存储设备路径信息。
进一步地,在本地查找是否存在所要查找的存储设备路径信息,若存在,则读取该块存储设备路径信息并返回给cinder csi插件,其具体实现方法为:
寻找本地是否存在文件名为上述卷标识的文件,若存在,则读取文件内容中的块存储设备路径信息并返回给cinder csi插件。
进一步地,在k8s集群部署云物理机的agent代理程序的方法为:
以daemonset的形式,在k8s集群部署云物理机的agent代理程序。
进一步地,配置所述cinder csi插件能够访问Openstack环境的实现方法为:
为cinder csi插件配置访问Openstack环境所需的账号及密码。
第二方面,本发明提供一种基于云物理机实现pod挂载cinder卷的系统,包括云物理机创建单元、插件安装单元、agent部署单元、挂载请求单元和本地预设接口,其中:
所述云物理机创建单元,用于在Openstack环境中创建云物理机,在所述云物理机上部署k8s集群;
所述插件安装单元,用于在k8s集群中安装cinder csi插件,并配置所述cindercsi插件能够访问Openstack环境;
所述agent部署单元,用于在k8s集群部署云物理机的agent代理程序;
所述挂载请求单元,用于向k8s集群发送为目标pod挂载持久化卷的请求,并声明所要挂载的卷的卷类型为cinder;目标pod为预先指定好的k8s集群中的任意一个pod;
所述k8s集群,用于在接收到所述请求后,获取目标物理机的信息,创建cinder卷,在对应的存储后端上创建块存储设备,并完成目标物理机与所述块存储设备的绑定;目标物理机为目标pod当前所在的云物理机;
所述Openstack环境,用于在上述绑定完成后,向目标agent下发挂卷请求,该挂卷请求包括所述存储后端的连接信息和所要挂载的cinder卷的卷标识;目标agent为目标物理机上的agent代理程序;
所述目标agent,用于接收上述挂卷请求,并用于在接收到该挂卷请求后,将云硬盘列表中的对应卷挂载至本地,并将本次挂载所形成的块存储设备路径信息与上述接收到的挂卷请求中的卷标识建立一一对应关系并记录到本地;
所述k8s集群,还用于调用所述本地预设接口,使用上述卷标识向目标agent发送对上述块存储设备路径信息的查询请求;
所述目标agent,还用于在监听到上述查询请求后,在本地查找是否存在所要查找的存储设备路径信息,若存在,则读取该块存储设备路径信息并返回给cinder csi插件;
所述csi插件,用于在接收到目标agent返回的块存储设备路径信息后,根据k8s集群的原生逻辑,在k8s集群上完成对应cinder卷的挂载。
进一步地,上述将本次挂载所形成的块存储设备路径信息与上述接收到的挂卷请求中的卷标识建立一一对应关系并记录到本地的实现方法为:
以文件的形式,将本次挂载所形成的块存储设备路径信息以及上述接收到的挂卷请求中的卷标识记录到本地,其中,文件名称为卷标识,文件内容为块存储设备路径信息。
进一步地,上述在本地查找是否存在所要查找的存储设备路径信息,若存在,则读取该块存储设备路径信息并返回给cinder csi插件,其具体实现方法为:
寻找本地是否存在文件名为上述卷标识的文件,若存在,则读取文件内容中的块存储设备路径信息并返回给cinder csi插件。
进一步地,agent部署单元在k8s集群部署云物理机的agent代理程序的方法为:
以daemonset的形式,在k8s集群部署云物理机的agent代理程序。
进一步地,插件安装单元配置所述cinder csi插件能够访问Openstack环境的方法为:为cinder csi插件配置访问Openstack环境所需的账号及密码。
本发明的有益效果在于,
(1)本发明提供的基于云物理机实现pod挂载cinder卷的方法及系统,均能够基于Openstack云物理机的k8s集群实现pod挂载cinder卷,用于解决部署在Openstack云物理机之上的k8s集群使用cinder csi插件为pod挂载cinder云硬盘的难题,使得此类集群可以统一使用Openstack cinder提供的云硬盘服务为集群中的pod提供持久化卷,屏蔽底层存储细节。
(2)本发明提供的基于云物理机实现pod挂载cinder卷的方法及系统,操作简单、易用,既无需用户使用特定的操作系统镜像创建可挂卷的云物理机,也无需用户在云物理机部署完成后手动安装代理程序,且避免了为代理程序创造依赖包环境,且均以daemonset的形式在k8s集群部署云物理机的agent代理程序,使得用户在对k8s集群进行节点增加操作后,无需对新增节点手动进行agent代理程序的安装,自动化程度相对较高。
(3)本发明以daemonset的形式在k8s集群部署云物理机的agent代理程序,还有助于在agent代理程序发生异常退出现象时自动重新拉起agent代理程序,而无需用户手动重启代理程序,这在一定程度上有助于云物理机中agent代理程序的自动部署和存活保障,健壮性相对较强。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的方法的示意性流程图。
图2是本发明一个实施例的系统的示意性框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
图1是本发明一个实施例的方法的示意性流程图。
如图1所示,该方法100包括:
步骤101、在Openstack环境中创建云物理机,在所述云物理机上部署k8s集群;
步骤102、在k8s集群中安装cinder csi插件,并配置所述cinder csi插件能够访问Openstack环境;
步骤103、在k8s集群部署云物理机的agent代理程序;
步骤104、向k8s集群发送为目标pod挂载持久化卷的请求,并声明所要挂载的卷的卷类型为cinder;目标pod为预先指定好的k8s集群中的任意一个pod;
步骤105、k8s集群接收到所述请求后,获取目标物理机的信息,创建cinder卷,在对应的存储后端上创建块存储设备,并完成目标物理机与所述块存储设备的绑定;目标物理机为目标pod当前所在的云物理机;
步骤106、Openstack在上述绑定完成后,向目标agent下发挂卷请求,该挂卷请求包括所述存储后端的连接信息和所要挂载的cinder卷的卷标识;目标agent为目标物理机上的agent代理程序;
步骤107、目标agent接收上述挂卷请求,并在接收到该挂卷请求后将云硬盘列表中的对应卷挂载至本地,并将本次挂载所形成的块存储设备路径信息与上述接收到的挂卷请求中的卷标识建立一一对应关系并记录到本地;
步骤108、k8s集群调用本地预设接口,使用上述卷标识向目标agent发送对上述块存储设备路径信息的查询请求;
步骤109、所述目标agent,在监听到上述查询请求后,在本地查找是否存在所要查找的存储设备路径信息,若存在,则读取该块存储设备路径信息并返回给cinder csi插件;
步骤110、cinder csi插件接收到返回的块存储设备路径信息后,根据k8s集群的原生逻辑,在k8s集群上完成对应cinder卷的挂载。
作为本发明的一个示意性实施例,步骤107中将本次挂载所形成的块存储设备路径信息与上述接收到的挂卷请求中的卷标识建立一一对应关系并记录到本地的实现方法为:以文件的形式,将本次挂载所形成的块存储设备路径信息以及上述接收到的挂卷请求中的卷标识记录到本地,其中,文件名称为卷标识,文件内容为块存储设备路径信息。
作为本发明的一个示意性实施例,在步骤109中,所述的在本地查找是否存在所要查找的存储设备路径信息,若存在,则读取该块存储设备路径信息并返回给cinder csi插件,具体实现方法为:寻找本地是否存在文件名为上述卷标识的文件,若存在,则读取文件内容中的块存储设备路径信息并返回给cinder csi插件。
作为本发明的一个示意性实施例,步骤103的实现方法为:以daemonset的形式,在k8s集群部署云物理机的agent代理程序。
作为本发明的一个示意性实施例,步骤102中配置所述cinder csi插件能够访问Openstack环境的实现方法为:为cinder csi插件配置访问Openstack环境所需的账号及密码。
为了便于对本发明的理解,下面以本发明基于云物理机实现pod挂载cinder卷的方法的原理,结合实施例中对cinder卷进行挂载的过程,对本发明提供的基于云物理机实现pod挂载cinder卷的方法做进一步地描述。
具体的,该基于云物理机实现pod挂载cinder卷的方法包括:
步骤Q1:在Openstack环境中创建云物理机,在所述云物理机上部署k8s集群。
具体地,用户在Openstack环境中创建云物理机并在云物理机上部署k8s集群。
步骤Q2:在k8s集群中安装cinder csi插件,并配置所述cinder csi插件能够访问Openstack环境。
具体地,该步骤Q2的实现方法为:用户在k8s集群中安装cinder csi插件并为所安装的cinder csi件配置访问Openstack环境所需的账号和密码。
步骤Q3:在k8s集群部署云物理机的agent代理程序。
具体地,以k8s daemonset的形式,在k8s集群中部署云物理机的agent代理程序。
其中,以daemonset的形式在k8s集群中部署云物理机的agent代理程序,有助于确保在k8s集群的每个节点上都有一个agent代理程序副本存活,且有助于在k8s集群的节点发生增加时,能够相应地在新增的节点上自动部署与运行上述agent代理程序,还有助于在agent代理程序退出时,自动重新拉起agent代理程序,一定程度上有助于保障agent代理程序的自动化伸缩和稳定运行。
步骤Q4:向k8s集群发送为目标pod挂载持久化卷的请求,并声明所要挂载的卷的卷类型为cinder。
所述的目标pod,为预先指定好的k8s集群中的任意一个pod。
步骤Q5:k8s集群接收到所述请求后,获取目标物理机的信息,创建cinder卷,在对应的存储后端上创建块存储设备,并完成目标物理机与所述块存储设备的绑定;目标物理机为目标pod当前所在的云物理机。
具体地,k8s集群通过其cinder csi controller plugin(即控制插件)收到请求,获取目标物理机的信息,之后调用Openstack接口,创建cinder volume(即上述cinder卷),并在对应的存储后端上创建块存储设备,完成目标物理机与所述块存储设备的绑定。
步骤Q6:Openstack在上述绑定完成后,向目标agent下发挂卷请求,该挂卷请求包括所述存储后端的连接信息和所要挂载的cinder卷的卷标识;目标agent为目标物理机上的agent代理程序。
具体地,在步骤Q5中的绑定完成后,Openstack通过其nova根据步骤Q5中获取到的目标物理机的信息,向目标物理机上的agent代理程序(即上述目标agent)提供的rest接口向目标agent下发挂卷请求,请求中携带对应存储后端的connector信息(即连接信息)和所要挂载的cinder卷的volumeid(即卷标识)。
步骤Q7:目标agent接收上述挂卷请求,并在接收到该挂卷请求后将云硬盘列表中的对应卷挂载至本地,并将本次挂载所形成的块存储设备路径信息与上述接收到的挂卷请求中的卷标识建立一一对应关系并记录到本地。
在本实施例中,为k8s集群各节点上所部署的每一个agent代理程序,均实现了一个rest接口,该rest接口可接收nova(Openstack的计算管理模块)下发的挂载命令,实现各自所在节点对云硬盘的扫描、连接操作,并且将本次挂卷请求传入的cinder id和本次挂载所形成的块存储设备路径信息之间的对应关系以文件的形式保存在指定目录下。
其中,将本次挂载所形成的块存储设备路径信息与上述接收到的挂卷请求中的卷标识建立一一对应关系并记录到本地的实现方法为:以文件的形式,将本次挂载所形成的块存储设备路径信息以及上述接收到的挂卷请求中的卷标识记录到本地,其中,文件名称为卷标识,文件内容为块存储设备路径信息。
相对应地,该步骤Q7的实现步骤具体可以为:
目标agent接收到所述挂卷请求后,根据该接收到的挂卷请求中的connector信息,执行扫描挂载操作,将云硬盘列表中的对应卷挂载至本地,同时在本地的预先指定好的目录中,以文件的形式,将本次挂载所形成的device path信息(即上述块存储设备路径信息)以及上述接收到的挂卷请求中的volume id记录到本地,其中,文件名称为所述volumeid,文件内容为所述device path信息,之后返回在Openstack上挂卷操作成功的提示信息。
步骤Q8:k8s集群调用本地预设接口,使用上述卷标识向目标agent发送对上述块存储设备路径信息的查询请求。
本实施例中的本地预设接口为一个本地unix socket接口,该本地unix socket接口可接收cinder id,并依据查找本地目录中的记录文件,返回其所接收到的cinder id对应的device path信息。
在本实施例中,改造k8s集群的cinder csi插件中的node plugin(即节点插件),在node plugin内根据volume id寻找本地块设备路径(即device path)的方法中,增加判断逻辑,当根据原生代码中的三类驱动格式(比如kvm、kvm-scsi或esxi)寻找device path均无法找到时,增加一个寻找device path的方法,即调用本地agent代理程序的unixsocket接口,传入volume id,判断能否返回对应的块设备路径信息。
具体实现时,k8s集群可通过其cinder csi controller plugin检测到在Openstack上的挂卷操作是否成功,并在检测到在Openstack上挂卷操作成功后,通知对应节点(即目标物理机所在的节点)上的node plugin根据volume id在本地寻找对应的device path信息。鉴于现有技术中在Openstack上挂载的卷的信息中不包含volume id,因此现有技术中通过cinder csi controller plugin的原生的getDevicePathBySerialID方法是找不到卷信息的,会返回未找到卷信息。
本实施例中新增本地预设接口(具体为本地unix socket接口),实现时,k8s集群直接调用本地unix socket接口,使用所述volume id向目标agent查询对应的device path信息。
需要说明的是,k8s集群可在上述getDevicePathBySerialID方法返回未找到卷信息时直接调用本地unix socket接口。
步骤Q9:所述目标agent,在监听到上述查询请求后,在本地查找是否存在所要查找的存储设备路径信息,若存在,则读取该块存储设备路径信息并返回给cinder csi插件。
具体地,目标agent监听到上述查询请求后,寻找本地目录中是否存在文件名为上述volume id的文件,如果有,读取其文件内容中的device path信息,并将该读取的devicepath信息返回给cinder csi插件。
步骤Q10:cinder csi插件接收到返回的块存储设备路径信息后,根据k8s集群的原生逻辑,在k8s集群上完成对应cinder卷的挂载。
具体地,cinder csi插件接收到device path信息后,继续进行mount(挂载)到本地目录、映射给目标pod中的container(容器)进程等一系列原生逻辑操作,在k8s集群上完成对应cinder卷的挂载流程。
综上,本方法100设计了一个运行在k8s node节点上的云物理机agent,对外提供rest接口,供nova下发挂卷请求使用;通过文件的形式记录cinder卷(对应上述cinder id)和块设备挂挂载点(对应上述device path信息)的对应关系,文件名为volume id,文件内容为device path信息(即块设备挂载点信息);对内提供unix socket接口,供本地的cinder csi node plugin调用,以查询cinder卷和具体的块设备挂载点之间的对应关系。本方法100改造了cinder csi插件中的node plugin插件,在查询device path的方法中增加一个方法,调用本地的agent提供的unix socket接口,传入cinder id,查询对应的device path信息。整个方法100解决了部署在Openstack云物理机之上的k8s集群使用cinder csi插件为pod挂载cinder云硬盘的难题,使得此类集群可以统一使用Openstackcinder提供的云硬盘服务为集群中的pod提供持久化卷,且屏蔽了底层存储细节,无需用户使用特定的操作系统镜像创建可挂卷的云物理机,无需用户在云物理机部署完成后手动安装代理程序,还避免了为代理程序创造依赖包环境,操作简单且易用。
此外,本方法100设计的云物理机的agent代理程序以daemonset形式运行在k8s集群中的每一个节点上,由k8s保证在k8s的每个worker(工作)节点上都运行一个agent代理程序副本,并且若集群节点发生增加,也会相应的在新增节点上自动部署运行agent代理程序。当agent代理程序由于某种原因退出,k8s会自动重新拉起agent代理程序,继而保障agent代理程序的自动化伸缩和稳定运行,较为健壮。
图2是本发明所述基于云物理机实现pod挂载cinder卷的系统的一个实施例。
参见图2,该系统200包括云物理机创建单元201、插件安装单元202、agent部署单元203、挂载请求单元204和本地预设接口205,其中:
所述云物理机创建单元201,用于在Openstack环境中创建云物理机,在所述云物理机上部署k8s集群;
所述插件安装单元202,用于在k8s集群中安装cinder csi插件,并配置所述cinder csi插件能够访问Openstack环境;
所述agent部署单元203,用于在k8s集群部署云物理机的agent代理程序;
所述挂载请求单元204,用于向k8s集群发送为目标pod挂载持久化卷的请求,并声明所要挂载的卷的卷类型为cinder;目标pod为预先指定好的k8s集群中的任意一个pod;
所述k8s集群,用于在接收到所述请求后,获取目标物理机的信息,创建cinder卷,在对应的存储后端上创建块存储设备,并完成目标物理机与所述块存储设备的绑定;目标物理机为目标pod当前所在的云物理机;
所述Openstack环境,用于在上述绑定完成后,向目标agent下发挂卷请求,该挂卷请求包括所述存储后端的连接信息和所要挂载的cinder卷的卷标识;目标agent为目标物理机上的agent代理程序;
所述目标agent,用于接收上述挂卷请求,并用于在接收到该挂卷请求后,将云硬盘列表中的对应卷挂载至本地,并将本次挂载所形成的块存储设备路径信息与上述接收到的挂卷请求中的卷标识建立一一对应关系并记录到本地;
所述k8s集群,还用于调用所述本地预设接口205,使用上述卷标识向目标agent发送对上述块存储设备路径信息的查询请求;
所述目标agent,还用于在监听到上述查询请求后,在本地查找是否存在所要查找的存储设备路径信息,若存在,则读取该块存储设备路径信息并返回给cinder csi插件;
所述csi插件,用于在接收到目标agent返回的块存储设备路径信息后,根据k8s集群的原生逻辑,在k8s集群上完成对应cinder卷的挂载。
作为本发明的一个示意性实施例,上述将本次挂载所形成的块存储设备路径信息与上述接收到的挂卷请求中的卷标识建立一一对应关系并记录到本地的实现方法为:
以文件的形式,将本次挂载所形成的块存储设备路径信息以及上述接收到的挂卷请求中的卷标识记录到本地,其中,文件名称为卷标识,文件内容为块存储设备路径信息。
作为本发明的一个示意性实施例,上述在本地查找是否存在所要查找的存储设备路径信息,若存在,则读取该块存储设备路径信息并返回给cinder csi插件,其具体实现方法为:
寻找本地是否存在文件名为上述卷标识的文件,若存在,则读取文件内容中的块存储设备路径信息并返回给cinder csi插件。
作为本发明的一个示意性实施例,agent部署单元203在k8s集群部署云物理机的agent代理程序的方法为:
以daemonset的形式,在k8s集群部署云物理机的agent代理程序。
作为本发明的一个示意性实施例,插件安装单元202配置所述cinder csi插件能够访问Openstack环境的方法为:为cinder csi插件配置访问Openstack环境所需的账号及密码。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种基于云物理机实现pod挂载cinder卷的方法,其特征在于,包括步骤:
在Openstack环境中创建云物理机,在所述云物理机上部署k8s集群;
在k8s集群中安装cinder csi插件,并配置所述cinder csi插件能够访问Openstack环境;
在k8s集群部署云物理机的agent代理程序;
向k8s集群发送为目标pod挂载持久化卷的请求,并声明所要挂载的卷的卷类型为cinder;目标pod为预先指定好的k8s集群中的任意一个pod;
k8s集群接收到所述请求后,获取目标物理机的信息,创建cinder卷,在对应的存储后端上创建块存储设备,并完成目标物理机与所述块存储设备的绑定;目标物理机为目标pod当前所在的云物理机;
Openstack在上述绑定完成后,向目标agent下发挂卷请求,该挂卷请求包括所述存储后端的连接信息和所要挂载的cinder卷的卷标识;目标agent为目标物理机上的agent代理程序;
目标agent接收上述挂卷请求,并在接收到该挂卷请求后将云硬盘列表中的对应卷挂载至本地,并将本次挂载所形成的块存储设备路径信息与上述接收到的挂卷请求中的卷标识建立一一对应关系并记录到本地;
k8s集群调用本地预设接口,使用上述卷标识向目标agent发送对上述块存储设备路径信息的查询请求;
所述目标agent,在监听到上述查询请求后,在本地查找是否存在所要查找的存储设备路径信息,若存在,则读取该块存储设备路径信息并返回给cinder csi插件;
cinder csi插件接收到返回的块存储设备路径信息后,根据k8s集群的原生逻辑,在k8s集群上完成对应cinder卷的挂载。
2.根据权利要求1所述的基于云物理机实现pod挂载cinder卷的方法,其特征在于,将本次挂载所形成的块存储设备路径信息与上述接收到的挂卷请求中的卷标识建立一一对应关系并记录到本地的实现方法为:
以文件的形式,将本次挂载所形成的块存储设备路径信息以及上述接收到的挂卷请求中的卷标识记录到本地,其中,文件名称为卷标识,文件内容为块存储设备路径信息。
3.根据权利要求2所述的基于云物理机实现pod挂载cinder卷的方法,其特征在于,在本地查找是否存在所要查找的存储设备路径信息,若存在,则读取该块存储设备路径信息并返回给cinder csi插件,其具体实现方法为:
寻找本地是否存在文件名为上述卷标识的文件,若存在,则读取文件内容中的块存储设备路径信息并返回给cinder csi插件。
4.根据权利要求1所述的基于云物理机实现pod挂载cinder卷的方法,其特征在于,在k8s集群部署云物理机的agent代理程序的方法为:
以daemonset的形式,在k8s集群部署云物理机的agent代理程序。
5.根据权利要求1所述的基于云物理机实现pod挂载cinder卷的方法,其特征在于,配置所述cinder csi插件能够访问Openstack环境的实现方法为:
为cinder csi插件配置访问Openstack环境所需的账号及密码。
6.一种基于云物理机实现pod挂载cinder卷的系统,其特征在于,包括云物理机创建单元、插件安装单元、agent部署单元、挂载请求单元和本地预设接口,其中:
所述云物理机创建单元,用于在Openstack环境中创建云物理机,在所述云物理机上部署k8s集群;
所述插件安装单元,用于在k8s集群中安装cinder csi插件,并配置所述cinder csi插件能够访问Openstack环境;
所述agent部署单元,用于在k8s集群部署云物理机的agent代理程序;
所述挂载请求单元,用于向k8s集群发送为目标pod挂载持久化卷的请求,并声明所要挂载的卷的卷类型为cinder;目标pod为预先指定好的k8s集群中的任意一个pod;
所述k8s集群,用于在接收到所述请求后,获取目标物理机的信息,创建cinder卷,在对应的存储后端上创建块存储设备,并完成目标物理机与所述块存储设备的绑定;目标物理机为目标pod当前所在的云物理机;
所述Openstack环境,用于在上述绑定完成后,向目标agent下发挂卷请求,该挂卷请求包括所述存储后端的连接信息和所要挂载的cinder卷的卷标识;目标agent为目标物理机上的agent代理程序;
所述目标agent,用于接收上述挂卷请求,并用于在接收到该挂卷请求后,将云硬盘列表中的对应卷挂载至本地,并将本次挂载所形成的块存储设备路径信息与上述接收到的挂卷请求中的卷标识建立一一对应关系并记录到本地;
所述k8s集群,还用于调用所述本地预设接口,使用上述卷标识向目标agent发送对上述块存储设备路径信息的查询请求;
所述目标agent,还用于在监听到上述查询请求后,在本地查找是否存在所要查找的存储设备路径信息,若存在,则读取该块存储设备路径信息并返回给cinder csi插件;
所述csi插件,用于在接收到目标agent返回的块存储设备路径信息后,根据k8s集群的原生逻辑,在k8s集群上完成对应cinder卷的挂载。
7.根据权利要求6所述的基于云物理机实现pod挂载cinder卷的系统,其特征在于,上述将本次挂载所形成的块存储设备路径信息与上述接收到的挂卷请求中的卷标识建立一一对应关系并记录到本地的实现方法为:
以文件的形式,将本次挂载所形成的块存储设备路径信息以及上述接收到的挂卷请求中的卷标识记录到本地,其中,文件名称为卷标识,文件内容为块存储设备路径信息。
8.根据权利要求7所述的基于云物理机实现pod挂载cinder卷的系统,其特征在于,上述在本地查找是否存在所要查找的存储设备路径信息,若存在,则读取该块存储设备路径信息并返回给cinder csi插件,其具体实现方法为:
寻找本地是否存在文件名为上述卷标识的文件,若存在,则读取文件内容中的块存储设备路径信息并返回给cinder csi插件。
9.根据权利要求6所述的基于云物理机实现pod挂载cinder卷的系统,其特征在于,agent部署单元在k8s集群部署云物理机的agent代理程序的方法为:
以daemonset的形式,在k8s集群部署云物理机的agent代理程序。
10.根据权利要求6所述的基于云物理机实现pod挂载cinder卷的系统,其特征在于,插件安装单元配置所述cinder csi插件能够访问Openstack环境的方法为:为cinder csi插件配置访问Openstack环境所需的账号及密码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110728815.1A CN113485786B (zh) | 2021-06-29 | 2021-06-29 | 一种基于云物理机实现pod挂载cinder卷的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110728815.1A CN113485786B (zh) | 2021-06-29 | 2021-06-29 | 一种基于云物理机实现pod挂载cinder卷的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113485786A true CN113485786A (zh) | 2021-10-08 |
CN113485786B CN113485786B (zh) | 2022-05-17 |
Family
ID=77936555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110728815.1A Active CN113485786B (zh) | 2021-06-29 | 2021-06-29 | 一种基于云物理机实现pod挂载cinder卷的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113485786B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114296637A (zh) * | 2021-12-09 | 2022-04-08 | 广西东信数建信息科技有限公司 | 一种本地存储卷动态创建方法及设备 |
CN114510324A (zh) * | 2022-04-20 | 2022-05-17 | 银河麒麟软件(长沙)有限公司 | 一种挂载有ceph卷的KVM虚拟机的磁盘管理方法及系统 |
CN114691050A (zh) * | 2022-05-26 | 2022-07-01 | 深圳前海环融联易信息科技服务有限公司 | 基于kubernetes的云原生存储方法、装置、设备及介质 |
CN115357198A (zh) * | 2022-10-19 | 2022-11-18 | 苏州浪潮智能科技有限公司 | 存储卷的挂载方法及装置、存储介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10013189B1 (en) * | 2015-12-14 | 2018-07-03 | EMC IP Holding Company LLC | Storage volume backup management for multi-tenant environments |
CN109951525A (zh) * | 2019-02-18 | 2019-06-28 | 山东浪潮云信息技术有限公司 | 一种基于容器的云盘挂载系统及方法 |
CN111736955A (zh) * | 2020-06-29 | 2020-10-02 | 苏州浪潮智能科技有限公司 | 一种数据存储方法、装置、设备及可读存储介质 |
US20210117220A1 (en) * | 2018-11-23 | 2021-04-22 | China Unionpay Co., Ltd. | Unified resource scheduling coordinator, method for creating a virtual machine and/or container, and unified resource scheduling system |
-
2021
- 2021-06-29 CN CN202110728815.1A patent/CN113485786B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10013189B1 (en) * | 2015-12-14 | 2018-07-03 | EMC IP Holding Company LLC | Storage volume backup management for multi-tenant environments |
US20210117220A1 (en) * | 2018-11-23 | 2021-04-22 | China Unionpay Co., Ltd. | Unified resource scheduling coordinator, method for creating a virtual machine and/or container, and unified resource scheduling system |
CN109951525A (zh) * | 2019-02-18 | 2019-06-28 | 山东浪潮云信息技术有限公司 | 一种基于容器的云盘挂载系统及方法 |
CN111736955A (zh) * | 2020-06-29 | 2020-10-02 | 苏州浪潮智能科技有限公司 | 一种数据存储方法、装置、设备及可读存储介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114296637A (zh) * | 2021-12-09 | 2022-04-08 | 广西东信数建信息科技有限公司 | 一种本地存储卷动态创建方法及设备 |
CN114296637B (zh) * | 2021-12-09 | 2024-05-17 | 广西东信数建信息科技有限公司 | 一种本地存储卷动态创建方法及设备 |
CN114510324A (zh) * | 2022-04-20 | 2022-05-17 | 银河麒麟软件(长沙)有限公司 | 一种挂载有ceph卷的KVM虚拟机的磁盘管理方法及系统 |
CN114510324B (zh) * | 2022-04-20 | 2022-07-22 | 银河麒麟软件(长沙)有限公司 | 一种挂载有ceph卷的KVM虚拟机的磁盘管理方法及系统 |
CN114691050A (zh) * | 2022-05-26 | 2022-07-01 | 深圳前海环融联易信息科技服务有限公司 | 基于kubernetes的云原生存储方法、装置、设备及介质 |
CN114691050B (zh) * | 2022-05-26 | 2022-09-06 | 深圳前海环融联易信息科技服务有限公司 | 基于kubernetes的云原生存储方法、装置、设备及介质 |
CN115357198A (zh) * | 2022-10-19 | 2022-11-18 | 苏州浪潮智能科技有限公司 | 存储卷的挂载方法及装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113485786B (zh) | 2022-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113485786B (zh) | 一种基于云物理机实现pod挂载cinder卷的方法及系统 | |
WO2021017301A1 (zh) | 基于Kubernetes集群的管理方法、装置及计算机可读存储介质 | |
CN110752947B (zh) | 一种k8s集群部署方法及装置,一种部署平台 | |
US20220091834A1 (en) | Method, apparatus, electronic device and readable storage medium for deploying application | |
CN104360878B (zh) | 一种应用软件部署的方法及装置 | |
US20230006944A1 (en) | Interoperable cloud based media processing using dynamic network interface | |
US11249788B2 (en) | Cloud management platform, and virtual machine management method and system | |
CN113301116A (zh) | 微服务应用跨网络通信方法、装置、系统及设备 | |
CN111813419B (zh) | 一种基于kubernetes声明式管理裸机生命周期的方法 | |
CN111582824B (zh) | 云资源同步方法、装置、设备及存储介质 | |
CN111367618A (zh) | 基于docker的代码管理方法、系统、终端及介质 | |
CN111125050B (zh) | 一种openstack环境下基于CephFS提供NFS协议的文件存储方法 | |
CN114422350B (zh) | 一种公共云容器实例创建方法 | |
CN108881460B (zh) | 一种云平台统一监控的实现方法和实现装置 | |
JP2023518136A (ja) | ファイル処理方法、装置、電子デバイス、記憶媒体、及びプログラム | |
CN117729251A (zh) | 边缘计算设备、嵌入式设备、控制系统及其构建方法 | |
CN110798358B (zh) | 分布式服务标识方法、装置、计算机可读介质及电子设备 | |
CN109495298B (zh) | 在OpenStack系统中管理节点的方法和装置 | |
CN116155978A (zh) | 多注册中心适配方法、装置、电子设备及存储介质 | |
CN112068953B (zh) | 一种云资源精细化管理溯源系统及方法 | |
CN114490189A (zh) | 一种云平台数据库备份方法、装置、电子设备及存储介质 | |
CN112889247B (zh) | Vnf服务实例化方法及装置 | |
CN114020457A (zh) | 一种OpenStack部署方法、装置及电子设备 | |
CN105740180A (zh) | Usb设备的虚拟机接入方法和装置 | |
CN116760913B (zh) | k8s集群协议转换平台配置下发方法及系统 |
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 |