CN116521361A - 一种模拟配单方法、装置及设备 - Google Patents

一种模拟配单方法、装置及设备 Download PDF

Info

Publication number
CN116521361A
CN116521361A CN202310363093.3A CN202310363093A CN116521361A CN 116521361 A CN116521361 A CN 116521361A CN 202310363093 A CN202310363093 A CN 202310363093A CN 116521361 A CN116521361 A CN 116521361A
Authority
CN
China
Prior art keywords
virtual node
target
virtual
pod
created
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
Application number
CN202310363093.3A
Other languages
English (en)
Inventor
刘鹏
范泽添
韩超
高伟
周明伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN202310363093.3A priority Critical patent/CN116521361A/zh
Publication of CN116521361A publication Critical patent/CN116521361A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供一种模拟配单方法、装置及设备,涉及虚拟集群技术领域,该方法包括:接收用户发送的在K8s集群中创建虚拟节点的创建指示,将创建指示中的配置信息添加至预设的资源包生成模板与配置信息对应的配置位中,生成资源包;按照资源包中的渲染顺序,调用对应组件对资源包中各镜像文件进行渲染,得到预设格式的目标文件;解析目标文件得到待部署资源,并基于待部署资源,在K8s集群中创建所述预设数量的虚拟节点;在各虚拟节点中部署并调度目标业务,根据各虚拟节点当前的资源占用情况,确定目标业务对应的资源占用量。相较现有技术中人为构建脚本文件,提高了虚拟节点创建的效率和便利性,进而提高了模拟配单的效率。

Description

一种模拟配单方法、装置及设备
技术领域
本申请涉及虚拟集群技术领域,尤其涉及一种模拟配单方法、装置及设备。
背景技术
在容器云业务场景中,存在根据用户业务量需求决策出实际需要的硬件资源(即配单)的场景,但实际物理计算节点有限且成本过高,通过添加物理节点去判断最终所需服务器数量难以实现。
Kubernetes(简称K8s)提供一个对K8s集群进行性能测试的工具,利用Kubemark可以在K8s集群中模拟出虚拟集群,其模拟出的虚拟集群不受资源限制,可以用于进行测试并得到对应的测试结果,因此可以通过在部署的虚拟集群进行模拟配单来确定业务需要的硬件资源。
目前,通常是在K8s集群的物理机上构建Kubemark的脚本,利用Kubemark的脚本在物理机上直接构建虚拟集群,并利用构建的虚拟集群实现模拟配单,但由于人为构建Kubemark脚本的方式较为繁琐,因此利用该方式进行模拟配单时效率较低。
发明内容
本申请提供了一种模拟配单方法、装置及设备,用于解决相关技术中利用Kubemark的脚本构建虚拟集群,并进行模拟配单的方式较为繁琐的问题。
第一方面,本申请实施例提供一种模拟配单方法,该方法包括:
接收用户发送的在K8s集群中创建虚拟节点的创建指示,创建指示中携带有待创建的虚拟节点的预设数量以及各待创建的虚拟节点的配置信息;
将配置信息添加至预设的资源包生成模板与配置信息对应的配置位中,生成待创建的虚拟节点对应的资源包;资源包中包括虚拟节点生成所需的目标资源的镜像文件以及各镜像文件的渲染顺序;
按照渲染顺序,调用对应组件对资源包中各镜像文件进行渲染,得到预设格式的目标文件;
解析目标文件得到与待创建的虚拟节点对应的待部署资源,并基于待部署资源,在K8s集群中创建预设数量的虚拟节点;
在各虚拟节点中部署并调度目标业务,并在成功调度目标业务后,根据各虚拟节点当前的资源占用情况,确定目标业务对应的资源占用量。
第二方面,本申请实施例提供一种模拟配单装置,该装置包括:
接收模块,用于接收用户发送的在K8s集群中创建虚拟节点的创建指示,创建指示中携带有待创建的虚拟节点的预设数量以及各待创建的虚拟节点的配置信息;
生成模块,用于将配置信息添加至预设的资源包生成模板与配置信息对应的配置位中,生成待创建的虚拟节点对应的资源包;资源包中包括虚拟节点生成所需的目标资源的镜像文件以及各镜像文件的渲染顺序;
渲染模块,用于按照渲染顺序,调用对应组件对资源包中各镜像文件进行渲染,得到预设格式的目标文件;
创建模块,用于解析目标文件得到与待创建的虚拟节点对应的待部署资源,并基于待部署资源,在K8s集群中创建预设数量的虚拟节点;
确定模块,用于在各虚拟节点中部署并调度目标业务,并在成功调度目标业务后,根据各虚拟节点当前的资源占用情况,确定目标业务对应的资源占用量。
第三方面,本申请实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,上述处理器执行计算机程序时实现上述第一方面中模拟配单方法的任一步骤。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述第一方面中模拟配单方法的任一步骤。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,计算机程序存储在计算机可读存储介质中;当内存访问设备的处理器从计算机可读存储介质读取计算机程序时,处理器执行计算机程序,使得内存访问设备执行上述第一方面中模拟配单方法中的任一步骤。
上述方法,在接收到用户在K8s集群中创建虚拟节点的创建指示后,根据配置信息以及预设的资源包生成模板生成资源包,按照资源包中的渲染顺序,调用对应组件对所述资源包中各镜像文件进行渲染,从而得到与K8s对应格式的目标文件,并基于解析该目标文件得到的待部署资源创建该虚拟节点,相较现有技术中人为构建脚本文件,提高了虚拟节点创建的效率和便利性,基于该创建的虚拟节点进行目标业务的部署及调度,确定该目标业务的目标资源占用量,也提高了模拟配单的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种模拟配单方法的流程示意图;
图2为本申请实施例提供的一种虚拟节点构建过程的流程示意图;
图3为本申请实施例提供的一种pod状态更新过程的流程示意图;
图4为本申请实施例提供的一种虚拟节点删除过程的流程示意图;
图5为本申请实施例提供的一种模拟配单装置的示意图;
图6为本申请实施例提供的一种电子设备的示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。
本申请实施例描述的应用场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。其中,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在容器云业务场景中,存在根据用户业务量需求决策出实际需要的硬件资源(即配单)的场景,但实际物理计算节点有限且成本过高,通过添加物理节点去判断最终所需服务器数量难以实现。
Kubernetes(简称K8s)提供一个对K8s集群进行性能测试的工具Kubemark,利用Kubemark可以在K8s集群中模拟出虚拟集群K8s cluster(Kubemark cluster),其模拟出的虚拟集群不受物理资源限制,可以用于进行测试并得到对应的测试结果,从而能够测试的集群规模比真实集群大的多,因此可以通过在部署的虚拟集群进行模拟配单来确定业务需要的硬件资源。K8s cluster中master是真实的服务器,但所有的节点是虚拟节点。虚拟节点虽然执行真实的K8s程序,但不会调用Docker创建容器。
目前,利用Kubemark在K8s集群中构建虚拟集群时,需要在K8s集群的物理机上构建Kubemark的脚本,利用Kubemark的脚本在物理机上直接构建虚拟集群,并利用构建的虚拟集群实现模拟配单,但目前利用脚本直接在物理机上构建虚拟集群的构建方式较为繁琐。
本申请实施例针对上述问题,提出了一种模拟配单方法、装置及设备,在接收到用户在K8s集群中创建虚拟节点的创建指示后,根据配置信息以及预设的资源包生成模板生成资源包,按照资源包中的渲染顺序,调用对应组件对所述资源包中各镜像文件进行渲染,从而得到与K8s对应格式的目标文件,并基于解析该目标文件得到的待部署资源创建该虚拟节点,相较现有技术中人为构建脚本文件,提高了虚拟节点创建的效率和便利性,基于该创建的虚拟节点进行目标业务的部署及调度,确定该目标业务的目标资源占用量,也提高了模拟配单的效率。
图1为本申请实施例提供的一种模拟配单方法的流程示意图;如图1所示,本申请实施例提供了一种模拟配单方法,具体包括如下步骤:
步骤S101,接收用户发送的在K8s集群中创建虚拟节点的创建指示;
其中,上述创建指示中携带有待创建的虚拟节点的预设数量以及各待创建的虚拟节点的配置信息;
在一些实施例中,本申请向用户提供可以供用户操作的操作页面,用户在存在模拟配单需求时,根据需求对应的目标业务的业务量预估(通过人为或通过其它方式)当前目标业务所需的物理服务器种类及数量,并操作页面中添加待创建的虚拟节点的预设数量以及配置信息后,服务器即可接收到用户通过该操作页面发送的创建指示。
需要说明的是,本申请实施例中用户可通过每次创建一个虚拟节点的方式创建该目标业务所需的虚拟节点,也可通过一次创建预设数量的虚拟节点的方式创建该目标业务所需的虚拟节点。
步骤S102,将配置信息添加至预设的资源包生成模板与配置信息对应的配置位中,生成待创建的虚拟节点对应的资源包;
在一些实施例中,在接收用户的创建指示前,本申请预先设置了资源包生成模板,该资源包生成模板中设置了与待创建的虚拟节点的配置信息对应的配置位,在接收到用户的创建指示时,针对每个待创建的虚拟节点,将其对应的配置信息添加到资源包生成模板中对应的配置位中,即可生成与该待创建的虚拟节点对应的资源包。
其中,上述资源包中包括虚拟节点生成所需的目标资源的镜像文件以及各镜像文件的渲染顺序。
在一种可能的实施方式中,上述资源包为chart包,chart包为一种描述相关的一组K8s资源的模板化部署包,其由一系列文件组成,这些文件包含了为了让应用程序在K8s集群上运行而为其生成和部署清单文件所需的所有资源及其对应的镜像文件,比如Service、Deployment、Config Map等,即其以模板形式整合了虚拟节点创建所需的全部资源。
具体实施中,相关技术中在通过脚本文件创建虚拟节点时,虚拟节点的硬件资源并没有开放可配置,例如CPU(Central Processing Unit,中央处理器)、内存、磁盘等,因此其无法很好的模拟一个真实物理节点所具备的资源。
本申请实施例中基于该问题,在虚拟节点的资源包生成模版的values.yaml中开放虚拟节点的CPU、内存、磁盘等供用户配置,具体地,上述待创建的虚拟节点的配置信息中包括待创建的虚拟节点的权限配置信息,在上述步骤S102中将配置信息添加至预设的资源包生成模板中与配置信息对应的配置位中,生成待创建的虚拟节点对应的资源包时,还执行以下操作:根据所述待创建的虚拟节点的权限配置信息对资源包生成模板中的默认权限信息进行更改,例如,将虚拟节点的资源配置,如CPU、内存、磁盘等开放为可配置,该方法可以使创建的虚拟节点更真实的模拟物理节点。
步骤S103,按照渲染顺序,调用对应组件对资源包中各镜像文件进行渲染,得到预设格式的目标文件;
具体实施中,在基于配置信息以及预设的资源包生成模板,生成待创建的虚拟节点对应的资源包后,基于资源包中的各镜像文件的渲染顺序,调用对应组件(如Captain组件)按顺序对资源包中各镜像文件依次进行渲染,得到预设格式的目标文件,在一些实施例中,上述目标文件为manifest文件。目标文件生成后,组件将该目标文件发送至K8s的管理平面,K8s的管理平面收到目标文件之后,解析该目标文件得到与待创建的虚拟节点对应的待部署资源,并基于待部署资源,在K8s集群中创建预设数量的虚拟节点。
步骤S104,解析目标文件得到与待创建的虚拟节点对应的待部署资源,并基于待部署资源,在K8s集群中创建预设数量的虚拟节点;
在一些实施例中,在K8s集群中创建预设数量的虚拟节点时,本申请实施例还在创建的虚拟节点中配置与目标业务的业务标识匹配的标签,以便于后续在部署目标业务时,能够根据该标签从K8s集群中查询到与目标业务对应的虚拟节点,从而在各虚拟节点中部署目标业务。
步骤S105,在各虚拟节点中部署并调度目标业务,并在成功调度目标业务后,根据各虚拟节点当前的资源占用情况,确定目标业务对应的资源占用量;
在预设数量的虚拟节点创建成功后,在各虚拟节点中部署目标业务,并在各虚拟节点中调度目标业务;在一些实施例中,针对预设数量的虚拟节点中每个虚拟节点,若在生成该虚拟节点后预设时长内查询到该虚拟节点,则可以确定该虚拟节点创建成功,根据如上方法在确定上述参考数量的虚拟节点均创建成功时,即可在各虚拟节点中部署目标业务。
具体地,在各虚拟节点中部署目标业务时,首先从目标业务中获取目标业务的业务标识,并调用目标组件创建与目标业务对应的多个pod,其中,目标组件为用于创建pod的工作组件;在具体实施中,如果与目标业务对应的多个pod为相同类型的pod,则仅调用一个目标组件创建;如果与目标业务对应的多个pod为不同类型的pod,则调用不同类型的目标组件创建,其中每种类型的目标组件用于创建对应类型的pod;
然后,根据虚拟节点的标签,从K8s集群中查询与目标业务的业务标识匹配的目标虚拟节点;由于在创建与目标业务对应的虚拟节点时,同时在虚拟节点中配置了与该目标业务的业务标识匹配的标签,因此,在部署目标业务时,可以根据目标业务的业务标识从K8s集群中确定出与针对目标业务创建的虚拟节点,并进行部署。最后,将多个pod中的每个pod添加至对应的目标虚拟节点中,并基于各pod部署并调度目标业务。
在成功调度目标业务后,根据各虚拟节点当前的资源占用情况,确定目标业务对应的资源占用量。
实施中,如果目标业务调度未成功,即说明目前创建的虚拟节点无法满足目标业务的资源需求,此时,可以增加新的虚拟节点,来部署该目标业务;如果目标业务调度成功,即说明目前创建的虚拟节点能够满足目标业务的资源需求,则可以根据各虚拟节点当前的资源占用情况,确定目标业务对应的资源占用量。进一步地,在成功调度目标业务后,还可以通过删除目标业务对应的虚拟节点的方式,确定该目标业务所需的最少虚拟节点数量。
上述方法,通过以预设的资源包生成模板(例如chart模版)作为虚拟节点部署的入口,在接收到用户在K8s集群中创建虚拟节点的创建指示后,根据配置信息以及预设的资源包生成模板生成资源包,并调用对应组件,对资源包各镜像文件进行渲染得到与K8s对应格式的目标文件,并基于解析该目标文件得到的待部署资源创建该虚拟节点,提高了虚拟节点创建的便利性,进而提高了模拟配单的效率。
图2为本申请实施例提供的一种虚拟节点创建过程的流程示意图,以下参考图2对本申请实施例中创建虚拟节点的过程进行描述。
首先对本申请实施例中虚拟节点创建过程中使用到的组件进行介绍:
node-controller:即自定义控制器,用于处理k8s中节点相关的请求,提供节点添加、卸载的接口,用户在页面添加虚拟节点后,会调用node-controller的节点添加接口,并创建对应的node info对象(k8s自定义crd资源,用于保存节点信息,其中包括节点名称,节点的配置资源等)。然后node-controller通过list-watch机制,监测到新的node info创建时,会将配置的节点资源作为入参,调用helm-captain的接口去部署虚拟节点的chart模版。
captain:即helm-captain组件,对原生helm进行扩展后的服务,Helm是社区以及线下生产公认的Kubernetes通用包管理器,帮助用户简化Helm资源描述,更便捷、高效地实现K8s应用的管理和控制。helm-captain提供chart模版部署及卸载等功能,本申请实施例中通过调用captain的模版部署接口,部署虚拟节点的chart模版,并阻塞的等待(等待预设时长)至在k8s集群中能查询到对应虚拟节点后,虚拟节点部署完成。
具体地,上述处理器执行任一虚拟节点创建的过程具体包括如下步骤:
步骤S201,接收用户发送的在K8s集群中创建虚拟节点的创建指示;
步骤S202,调用node-controller接口创建该虚拟节点的node info对象;
步骤S203,监测到虚拟节点的node info对象创建;
步骤S204,调用captain接口部署资源包生成模板;
在一些可能的实施方式中,调用captain接口基于chart模板以及该待创建的虚拟节点的配置信息,生成对应的chart包;chart包中包括虚拟节点生成所需的目标资源的镜像文件以及各镜像文件的渲染顺序,然后基于渲染顺序,依次对资源包中各镜像文件进行渲染,得到预设格式的目标文件,将该文件发送至K8s的管理平面,以使K8s的管理平面收到目标文件之后,解析该目标文件得到与待创建的虚拟节点对应的待部署资源,并基于待部署资源,在K8s集群中创建预设数量的虚拟节点。
步骤S205,确定在预设时长内是否能查询到该虚拟节点;若是则执行步骤S206,若否则执行步骤S207;
步骤S206,确定虚拟节点创建完成;
步骤S207,确定虚拟节点创建失败,并将该虚拟节点的nodeinfo状态更新为failed状态。
在一些实施例中,创建的虚拟节点中包括以下工作组件:
hollow-kubelet,用于直接调用kubelet(物理节点中用于创建、销毁pod,监听etcd中资源变化的组件)的RunKubelet函数,与物理节点中kubelet执行的操作相应,但不直接调用docker创建容器,而是调用fake接口,hollow-kubelet向管理节点的apiserver(主节点服务器Master中提供资源操作的唯一入口,并提供认证、授权、访问控制等机制的组件)进行注册,并将自身模拟为集群中的计算节点。
hollow-proxy,用于模拟kuke proxy(物理节点中负责K8S的通信和负载均衡机制的组件)相关能力,ptables以及sysctl使用了fake。
hollow-node-problem-detector,用于守护进程,检测异常节点以及获取异常事件。
localpath provider csi,用于实现k8s持久卷管理,与物理节点localpath的区别在与创建/删除持久卷时不创建/删除其对应的目录。
在一种可能的实施方式中,针对相关技术中存在的配置了持久卷的服务无法完成调度,一直处于pending状态(未决状态,即未执行任何进程)的问题,本申请实施例中在将多个pod中的每个pod添加至对应的目标虚拟节点时,若某一个pod配置有持久卷,则利用目标虚拟节点中的持久卷管理组件(localpath provider csi)创建与该pod对应的虚拟存储区域;在基于各pod部署目标业务时,如果在任一配置有持久卷的pod中部署目标业务的业务数据时,将该业务数据中指定类型的数据存放到虚拟存储区域中。
图3为本申请实施例提供的一种pod状态更新过程的流程示意图,以下参考图3对本申请实施例中基于各pod部署并调度目标业务之前,对预设类型的工作组件创建的pod的状态进行更新的过程进行描述,该过程具体包括:
步骤S301,根据pod中指定字段确定创建pod的目标组件的组件类型;
具体地,首先会根据虚拟节点的node-label(节点类型),判断pod添加到的节点为虚拟节点,然后根据pod的owner Reference字段确定创建该pod的目标组件的组件类型。
步骤S302,判断组件类型是否属于预设类型,若是执行步骤S303,若否执行步骤S304;
在一些实施例中,上述预设类型为job、hook类型。
步骤S303,将pod的当前状态更新为部署目标业务所需的状态;
若根据pod的owner Reference字段判断该pod是由job、hook类的目标组件创建,则对pod的当前状进行更新,具体地,将pod中所有容器的状态均置为terminated(结束)状态,并将pod的状态更新为succeed(执行成功)状态,然后将pod更新后的状态上报apiserver组件。
步骤S304,保持pod的当前状态,不进行修改。
若根据pod的owner Reference字段判断该pod不是由job、hook类的目标组件创建,则保持pod的当前状态,不对其进行修改。具体地,保持pod中所有容器以及该pod的状态为running(运行)状态。
本申请实施例,针对相关技术创建的虚拟节点在模拟pod的生命周期时,对于job、hook类型的组件创建的pod状态会一直处于running状态,不会切换为completed(命令已执行完毕)状态,进而阻塞业务的后续执行,导致占用的资源不会释放,影响配单中对资源的计算的问题,提出了对job、hook类组件创建的pod的状态进行更新的方法,从而使其在虚拟节点上的生命周期与在物理节点上相同。
图4为本申请实施例提供的一种虚拟节点删除过程的流程示意图,以下参考图4对本申请实施例中删除虚拟节点的过程进行描述,该过程具体包括:
步骤S401,响应于用户的虚拟节点删除指示,确定与虚拟节点删除指示对应的待删除的虚拟节点;
实施中,本申请向用户提供可以供用户操作的操作页面,用户在存在删除虚拟节点的需求时,在操作页面中选择待删除的虚拟节点后,服务器即可接收到用户通过该操作页面发送的虚拟节点删除指示,并根据该指示确定待删除的虚拟节点。
在一种可能的实施方式中,上述虚拟节点删除指示中可以携带待删除的虚拟节点的节点标识,在接收到该虚拟节点删除指示后,根据该指示中携带的节点标识确定待删除的虚拟节点,并执行后续虚拟节点的删除步骤。
步骤S402,调用目标接口删除待删除的虚拟节点对应的资源数据,并通过目标接口接收返回的状态码;
实施中,首先调用node-controller接口检测待删除的虚拟节点上的pod,并更新待删除的虚拟节点的nodeinfo状态为uninstall(卸载)状态;然后控制器在监测到虚拟节点为uninstall状态时,调用captain接口(即目标接口)删除待删除的虚拟节点对应的资源数据(即与资源包对应的hra资源),并接受captain组件通过captain接口返回的状态码。
步骤S403,确定状态码是否为预设数值;若是则执行步骤S404,若否则执行步骤S405;
实施中,上述预设数值可由人为设置,本申请实施例中不做限制;例如,设置该预设数值为200。
步骤S404,确定待删除的虚拟节点删除成功;
实施中,确定状态码为预设数值时,即可确定待删除的虚拟节点删除成功,并删除nodeinfo信息。
上述nodeinfo信息为记录的节点状态信息,例如节点安装的状态,节点的磁盘状态等信息。
步骤S405,确定待删除的虚拟节点删除失败;
实施中,确定状态码不为预设数值时,即可确定待删除的虚拟节点删除失败,此时将虚拟节点的nodeinfo状态置为failed(失败)状态。
本申请实施例中,以chart模版作为虚拟节点部署的入口,提高了部署的便利性;通过chart模版将虚拟节点的资源配置,如CPU、内存、磁盘等开放为可配置,可以更真实的模拟物理节点;针对调度到虚拟节点上pod的生命周期进行更改,使其更符合物理节点上pod的生命周期;且在虚拟节点中加入localpath provider csi组件,使配置了PVC(PersistentVolumeClaim,持久化卷声明)的服务能够完成调度。
基于相同的公开构思,本申请实施例还提供一种模拟配单装置,由于该装置即是本申请实施例中的方法中的装置,并且该装置解决问题的原理与该方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
图5为本申请实施例提供的一种模拟配单装置的示意图,请参考图5,本申请实施例提供一种模拟配单装置,该装置包括:
接收模块501,用于接收用户发送的在K8s集群中创建虚拟节点的创建指示,所述创建指示中携带有待创建的虚拟节点的预设数量以及各待创建的虚拟节点的配置信息;
生成模块502,用于将所述配置信息添加至预设的资源包生成模板与所述配置信息对应的配置位中,生成所述待创建的虚拟节点对应的资源包;所述资源包中包括虚拟节点生成所需的目标资源的镜像文件以及各镜像文件的渲染顺序;
渲染模块503,用于按照所述渲染顺序,调用对应组件对所述资源包中各镜像文件进行渲染,得到预设格式的目标文件;
创建模块504,用于解析所述目标文件得到与所述待创建的虚拟节点对应的待部署资源,并基于所述待部署资源,在所述K8s集群中创建所述预设数量的虚拟节点;
确定模块505,用于在各所述虚拟节点中部署并调度所述目标业务,并在成功调度所述目标业务后,根据各所述虚拟节点当前的资源占用情况,确定所述目标业务对应的资源占用量。
可选的,上述确定模块505在各所述虚拟节点中部署并调度目标业务之前,还用于:
针对预设数量的虚拟节点中的任一虚拟节点,确定在创建任一虚拟节点后预设时长内查询到任一虚拟节点。
可选的,上述创建模块504还用于:
在各虚拟节点中配置与目标业务的业务标识匹配的标签;
上述确定模块505,具体用于:
从目标业务中获取目标业务的业务标识,并调用目标组件创建与目标业务对应的多个pod,其中,目标组件为用于创建pod的工作组件;
从K8s集群中查询与目标业务的业务标识匹配的目标虚拟节点;
将多个pod中的每个pod添加至对应的目标虚拟节点中,并基于各pod部署并调度目标业务。
可选的,上述确定模块505基于各pod部署并调度目标业务之前,还用于:
根据pod中指定字段确定创建pod的目标组件的组件类型;
若组件类型属于预设类型,则将pod的当前状态更新为部署目标业务所需的状态。
可选的,虚拟节点包括持久卷管理组件;
可选的,上述确定模块505,还用于:
若pod配置有持久卷,则利用目标虚拟节点中的持久卷管理组件创建与pod对应的虚拟存储区域;
在任一配置有持久卷的pod中部署目标业务的业务数据时,将业务数据中指定类型的数据存放到虚拟存储区域中。
可选的,上述确定模块505,还用于:
响应于用户的虚拟节点删除指示,确定与虚拟节点删除指示对应的待删除的虚拟节点;
调用目标接口删除待删除的虚拟节点对应的资源数据,并通过目标接口接收返回的状态码;
若状态码为预设数据,则确定待删除的虚拟节点删除成功。
可选的,待创建的虚拟节点的配置信息中包括待创建的虚拟节点的权限配置信息;上述生成模块502,还用于:
根据待创建的虚拟节点的权限配置信息对资源包生成模板中的默认权限信息进行更改。
基于相同的公开构思,本申请实施例中还提供了一种模拟配单设备,由于该设备即是本申请实施例中的方法中的设备,并且该设备解决问题的原理与该方法相似,因此该设备的实施可以参见方法的实施,重复之处不再赘述。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本申请的设备可以至少包括至少一个处理器、以及至少一个存储器。其中,存储器存储有程序代码,当程序代码被处理器执行时,使得处理器执行本说明书上述描述的根据本申请各种示例性实施方式的模拟配单方法中的步骤。
下面参照图6来描述根据本申请的这种实施方式的设备600。图6显示的设备600仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图6所示,设备600以通用设备的形式表现。设备600的组件可以包括但不限于:上述至少一个处理器601、上述至少一个存储器602、连接不同系统组件(包括存储器602和处理器601)的总线603,其中,存储器存储有程序代码,当程序代码被处理器执行时,使得处理器执行以下步骤:
接收用户发送的在K8s集群中创建虚拟节点的创建指示,创建指示中携带有待创建的虚拟节点的预设数量以及各待创建的虚拟节点的配置信息;
将配置信息添加至预设的资源包生成模板与配置信息对应的配置位中,生成待创建的虚拟节点对应的资源包;资源包中包括虚拟节点生成所需的目标资源的镜像文件以及各镜像文件的渲染顺序;
按照渲染顺序,调用对应组件对资源包中各镜像文件进行渲染,得到预设格式的目标文件;
解析目标文件得到与待创建的虚拟节点对应的待部署资源,并基于待部署资源,在K8s集群中创建预设数量的虚拟节点;
在各虚拟节点中部署并调度目标业务,并在成功调度目标业务后,根据各虚拟节点当前的资源占用情况,确定目标业务对应的资源占用量。
总线603表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储器602可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)6021和/或高速缓存存储器6022,还可以进一步包括只读存储器(ROM)6023。
存储器602还可以包括具有一组(至少一个)程序模块6024的程序/实用工具6025,这样的程序模块6024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
设备600也可以与一个或多个外部设备604(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与设备600交互的设备通信,和/或与使得该设备600能与一个或多个其它设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口605进行。并且,设备600还可以通过网络适配器606与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器606通过总线603与用于设备600的其它模块通信。应当理解,尽管图中未示出,可以结合设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
可选的,上述处理器在各所述虚拟节点中部署并调度目标业务之前,还用于:
针对参考数量的虚拟节点中的任一虚拟节点,确定在创建任一虚拟节点后预设时长内查询到任一虚拟节点。
可选的,上述处理器还用于:
在各虚拟节点中配置与目标业务的业务标识匹配的标签;
可选的,上述处理器具体用于:
从目标业务中获取目标业务的业务标识,并调用目标组件创建与目标业务对应的多个pod,其中,目标组件为用于创建pod的工作组件;
从K8s集群中查询与目标业务的业务标识匹配的目标虚拟节点;
将多个pod中的每个pod添加至对应的目标虚拟节点中,并基于各pod部署并调度目标业务。
可选的,上述处理器还用于:
根据pod中指定字段确定创建pod的目标组件的组件类型;
若组件类型属于预设类型,则将pod的当前状态更新为部署目标业务所需的状态。
可选的,虚拟节点包括持久卷管理组件;
可选的,上述处理器具体用于:
若pod配置有持久卷,则利用目标虚拟节点中的持久卷管理组件创建与pod对应的虚拟存储区域;
在任一配置有持久卷的pod中部署目标业务的业务数据时,将业务数据中指定类型的数据存放到虚拟存储区域中。
可选的,上述处理器还用于:
响应于用户的虚拟节点删除指示,确定与虚拟节点删除指示对应的待删除的虚拟节点;
调用目标接口删除待删除的虚拟节点对应的资源数据,并通过目标接口接收返回的状态码;
若状态码为预设数据,则确定待删除的虚拟节点删除成功。
可选的,待创建的虚拟节点的配置信息中包括待创建的虚拟节点的权限配置信息;上述处理器还用于:
根据待创建的虚拟节点的权限配置信息对资源包生成模板中的默认权限信息进行更改。
在一些可能的实施方式中,本申请提供的一种模拟配单方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的一种模拟配单方法中的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的用于监控的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在设备上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行、或者完全在远程设备或服务端上执行。在涉及远程设备的情形中,远程设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户设备,或者,可以连接到外部设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和方框图来描述的。应理解可由计算机程序指令实现流程图和方框图中的每一流程和/或方框、以及流程图和方框图中的流程和方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种模拟配单方法,其特征在于,所述方法包括:
接收用户发送的在K8s集群中创建虚拟节点的创建指示,所述创建指示中携带有待创建的虚拟节点的预设数量以及各待创建的虚拟节点的配置信息;
将所述配置信息添加至预设的资源包生成模板与所述配置信息对应的配置位中,生成所述待创建的虚拟节点对应的资源包;所述资源包中包括虚拟节点生成所需的目标资源的镜像文件以及各镜像文件的渲染顺序;
按照所述渲染顺序,调用对应组件对所述资源包中各镜像文件进行渲染,得到预设格式的目标文件;
解析所述目标文件得到与所述待创建的虚拟节点对应的待部署资源,并基于所述待部署资源,在所述K8s集群中创建所述预设数量的虚拟节点;
在各所述虚拟节点中部署并调度所述目标业务,并在成功调度所述目标业务后,根据各所述虚拟节点当前的资源占用情况,确定所述目标业务对应的资源占用量。
2.根据权利要求1所述的方法,其特征在于,所述在各所述虚拟节点中部署并调度所述目标业务之前,还包括:
针对所述预设数量的所述虚拟节点中的任一虚拟节点,确定在创建所述任一虚拟节点后预设时长内查询到所述任一虚拟节点。
3.根据权利要求1所述的方法,其特征在于,所述在所述K8s集群中创建所述预设数量的虚拟节点时,还包括:
在各虚拟节点中配置与所述目标业务的业务标识匹配的标签;
所述在各所述虚拟节点中部署并调度所述目标业务,包括:
从所述目标业务中获取所述目标业务的业务标识,并调用目标组件创建与所述目标业务对应的多个pod,其中,所述目标组件为用于创建pod的工作组件;
从所述K8s集群中查询与所述目标业务的业务标识匹配的目标虚拟节点;
将所述多个pod中的每个pod添加至对应的目标虚拟节点中,并基于各pod部署并调度所述目标业务。
4.根据权利要求3所述的方法,其特征在于,所述基于各pod部署并调度所述目标业务之前,还包括:
根据所述pod中指定字段确定创建所述pod的目标组件的组件类型;
若所述组件类型属于预设类型,则将所述pod的当前状态更新为部署所述目标业务所需的状态。
5.根据权利要求3所述的方法,其特征在于,所述虚拟节点包括持久卷管理组件;所述将所述多个pod中的每个pod添加至对应的目标虚拟节点时,还包括:
若所述pod配置有持久卷,则利用所述目标虚拟节点中的持久卷管理组件创建与所述pod对应的虚拟存储区域;
所述基于各pod部署并调度所述目标业务,包括:
在任一配置有持久卷的pod中部署所述目标业务的业务数据时,将所述业务数据中指定类型的数据存放到所述虚拟存储区域中。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于用户的虚拟节点删除指示,确定与所述虚拟节点删除指示对应的待删除的虚拟节点;
调用目标接口删除所述待删除的虚拟节点对应的资源数据,并通过所述目标接口接收返回的状态码;
若所述状态码为预设数据,则确定所述待删除的虚拟节点删除成功。
7.根据权利要求1~6任一所述的方法,其特征在于,所述待创建的虚拟节点的配置信息中包括所述待创建的虚拟节点的权限配置信息;
所述将所述配置信息添加至预设的资源包生成模板中与所述配置信息对应的配置位中,生成所述待创建的虚拟节点对应的资源包时,还包括:
根据所述待创建的虚拟节点的权限配置信息对所述资源包生成模板中的默认权限信息进行更改。
8.一种模拟配单装置,其特征在于,该装置包括:
接收模块,用于接收用户发送的在K8s集群中创建虚拟节点的创建指示,所述创建指示中携带有待创建的虚拟节点的预设数量以及各待创建的虚拟节点的配置信息;
生成模块,用于将所述配置信息添加至预设的资源包生成模板与所述配置信息对应的配置位中,生成所述待创建的虚拟节点对应的资源包;所述资源包中包括虚拟节点生成所需的目标资源的镜像文件以及各镜像文件的渲染顺序;
渲染模块,用于按照所述渲染顺序,调用对应组件对所述资源包中各镜像文件进行渲染,得到预设格式的目标文件;
创建模块,用于解析所述目标文件得到与所述待创建的虚拟节点对应的待部署资源,并基于所述待部署资源,在所述K8s集群中创建所述预设数量的虚拟节点;
确定模块,用于在各所述虚拟节点中部署并调度所述目标业务,并在成功调度所述目标业务后,根据各所述虚拟节点当前的资源占用情况,确定所述目标业务对应的资源占用量。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,该计算机程序指令被处理器执行时实现权利要求1至7任一项所述方法的步骤。
CN202310363093.3A 2023-04-04 2023-04-04 一种模拟配单方法、装置及设备 Pending CN116521361A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310363093.3A CN116521361A (zh) 2023-04-04 2023-04-04 一种模拟配单方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310363093.3A CN116521361A (zh) 2023-04-04 2023-04-04 一种模拟配单方法、装置及设备

Publications (1)

Publication Number Publication Date
CN116521361A true CN116521361A (zh) 2023-08-01

Family

ID=87393165

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310363093.3A Pending CN116521361A (zh) 2023-04-04 2023-04-04 一种模拟配单方法、装置及设备

Country Status (1)

Country Link
CN (1) CN116521361A (zh)

Similar Documents

Publication Publication Date Title
CN108763090B (zh) 测试环境部署方法、装置、计算机设备和存储介质
US20230244454A1 (en) Software defined network controller
CN112269640B (zh) 一种实现容器云组件的生命周期管理的方法
CN112035228A (zh) 一种资源调度方法及装置
US11461206B2 (en) Cloud simulation and validation system
CN110098952A (zh) 一种服务器的管理方法和装置
CN111600760B (zh) 一种电网运行监控系统的质量检测系统、方法及设备
US11108638B1 (en) Health monitoring of automatically deployed and managed network pipelines
CN113867600A (zh) 处理流式数据的开发方法、装置和计算机设备
CN113747150B (zh) 一种基于容器云实现的视频服务系统的测试方法和系统
CN115248692A (zh) 一种支持多种深度学习框架模型云端部署的装置及方法
CN110278101A (zh) 一种资源管理方法及设备
US11539612B2 (en) Testing virtualized network functions
CN109858257A (zh) 访问控制方法及装置
CN112015371B (zh) 一种非嵌入式软件平台下的软件开发装置
CN115357198B (zh) 存储卷的挂载方法及装置、存储介质及电子设备
CN109491762B (zh) 容器状态控制方法及装置、存储介质、电子设备
CN116521361A (zh) 一种模拟配单方法、装置及设备
CN115237441A (zh) 一种基于云平台的升级测试方法、装置及介质
CN114040149A (zh) 一种业务数字化智能演进的设备监控方法
US20210373868A1 (en) Automated Deployment And Management Of Network Intensive Applications
US20200344305A1 (en) Commissioning a virtualised network function
CN110113181B (zh) 节点配置方法、装置、计算机装置、及可读存储介质
CN115543491A (zh) 微服务处理方法和装置
CN112564979A (zh) 构建任务的执行方法、装置、计算机设备和存储介质

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