CN110221901A - 容器资源创建方法、装置、设备及计算机可读存储介质 - Google Patents
容器资源创建方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110221901A CN110221901A CN201910494501.2A CN201910494501A CN110221901A CN 110221901 A CN110221901 A CN 110221901A CN 201910494501 A CN201910494501 A CN 201910494501A CN 110221901 A CN110221901 A CN 110221901A
- Authority
- CN
- China
- Prior art keywords
- container
- node
- asset creation
- resource
- complete definition
- 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
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
- 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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, 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/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
Abstract
本发明涉及金融科技技术领域,公开了一种容器资源创建方法、装置、设备及计算机可读存储介质。该方法包括:在接收到容器资源创建请求时,根据所述容器资源创建请求获取容器资源的完整定义;从所述完整定义中读取得到目标命名空间,并调用预设接口读取所述目标命名空间的注解,得到所述注解中的键值对;将所述键值对作为节点选择器属性注入至所述完整定义中的容器组定义部分,得到更新后的完整定义,并基于所述更新后的完整定义创建对应的容器资源及容器组。本发明能实现在创建容器资源时,自动为容器资源中的容器组添加节点选择器属性,以便于后续将容器组定向调度至集群中最优的计算节点上,从而可保证集群资源的均衡利用,提高集群资源利用率。
Description
技术领域
本发明涉及金融科技(Fintech)技术领域,尤其涉及一种容器资源创建方法、装置、设备及计算机可读存储介质。
背景技术
随着计算机技术的发展,越来越多的技术(大数据、分布式、区块链Blockchain、人工智能等)应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出了更高的要求。
Kubernetes是一个开源平台,用于管理云平台中多个主机上的容器化的应用。Kubernetes可以很好地配合用于容器应用的硬件资源管理及硬件资源调度,用户可以按照需求将特定的容器分配到特定的Node(计算节点)上,从而使用其所需的硬件资源,因而得到了广泛的应用,目前很多互联网企业或金融机构已经在生产环境基于Kubernetes构建了容器云平台。然而,在创建容器资源(如Deployment部署)后,当为容器资源添加NodeSelector(节点选择器)属性时,容器资源包含的每个Pod(容器组)不会自动加上NodeSelector,从而无法使用Node Selector,进而在后续对Pod进行调度时,会将Pod随机调度至一Node上,此时会导致集群资源利用率较低。
发明内容
本发明的主要目的在于提供一种容器资源创建方法、装置、设备及计算机可读存储介质,旨在实现自动为容器资源中的容器组添加节点选择器属性,以便于后续将容器组定向调度至集群中最优的计算节点上,从而提高集群资源利用率。
为实现上述目的,本发明提供一种容器资源创建方法,所述容器资源创建方法包括:
在接收到容器资源创建请求时,根据所述容器资源创建请求获取容器资源的完整定义;
从所述完整定义中读取得到目标命名空间,并调用预设接口读取所述目标命名空间的注解,得到所述注解中的键值对;
将所述键值对作为节点选择器属性注入至所述完整定义中的容器组定义部分,得到更新后的完整定义,并基于所述更新后的完整定义创建对应的容器资源及容器组。
可选地,所述调用预设接口读取所述目标命名空间的注解,得到所述注解中的键值对的步骤包括:
调用预设接口读取所述目标命名空间的注解;
基于预设的注解的键对所述注解进行解析,得到所述注解中的键值对。
可选地,所述基于所述更新后的完整定义创建对应的容器资源及容器组的步骤包括:
将所述更新后的完整定义通过所述预设接口提交至开源容器编排引擎Kubernetes集群中,以通过所述Kubernetes集群的命令行工具创建对应的容器资源;
基于所述容器资源创建对应的容器副本,以根据所述容器副本创建容器组。
可选地,所述在接收到容器资源创建请求时,根据所述容器资源创建请求获取容器资源的完整定义的步骤之前,所述容器资源创建方法还包括:
在接收到用户触发的操作请求时,根据所述操作请求获取对应的请求类型和操作信息,并根据所述请求类型和所述操作信息执行对应的操作;其中,所述操作请求包括节点标签创建请求、命名空间创建请求和命名空间注解添加请求。
可选地,所述基于所述更新后的完整定义创建对应的容器资源及容器组的步骤之后,所述容器资源创建方法包括:
获取所述容器组的节点选择器属性,并基于各节点的预设节点标签获取与所述节点选择器属性相匹配的节点,记作第一目标节点;
获取所述第一目标节点的空闲资源信息,根据所述空闲资源信息和预设调度规则确定第二目标节点,并将所述容器组调度至所述第二目标节点上。
此外,为实现上述目的,本发明还提供一种容器资源创建装置,所述容器资源创建装置包括:
定义获取模块,用于在接收到容器资源创建请求时,根据所述容器资源创建请求获取容器资源的完整定义;
注解读取模块,用于从所述完整定义中读取得到目标命名空间,并调用预设接口读取所述目标命名空间的注解,得到所述注解中的键值对;
资源创建模块,用于将所述键值对作为节点选择器属性注入至所述完整定义中的容器组定义部分,得到更新后的完整定义,并基于所述更新后的完整定义创建对应的容器资源及容器组。
可选地,所述资源创建模块包括:
第一创建单元,用于将所述更新后的完整定义通过所述预设接口提交至Kubernetes集群中,以通过所述Kubernetes集群的命令行工具创建对应的容器资源;
第二创建单元,用于基于所述容器资源创建对应的容器副本,以根据所述容器副本创建容器组。
可选地,所述容器资源创建装置还包括:
节点获取模块,用于获取所述容器组的节点选择器属性,并基于各节点的预设节点标签获取与所述节点选择器属性相匹配的节点,记作第一目标节点;
容器组分配模块,用于获取所述第一目标节点的空闲资源信息,根据所述空闲资源信息和预设调度规则确定第二目标节点,并将所述容器组调度至所述第二目标节点上。
此外,为实现上述目的,本发明还提供一种容器资源创建设备,所述容器资源创建设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的容器资源创建程序,所述容器资源创建程序被所述处理器执行时实现如上所述的容器资源创建方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有容器资源创建程序,所述容器资源创建程序被处理器执行时实现如上所述的容器资源创建方法的步骤。
本发明提供一种容器资源创建方法、装置、设备及计算机可读存储介质,在接收到该容器资源创建请求时,先根据该容器资源创建请求获取用户对容器资源的完整定义;从该完整定义中读取得到目标命名空间,并调用预设接口读取该目标命名空间的注解,得到注解中的键值对;然后将键值对作为节点选择器属性注入至完整定义中的容器组定义部分,以给容器组自动添加节点选择器,进而得到更新后的完整定义,并基于更新后的完整定义创建对应的容器资源及容器组。通过上述方式,本发明可在容器资源的创建过程中,自动为容器资源中的容器组添加节点选择器属性,无需用户手动添加,可提升用户体验。同时,通过自动为容器组添加节点选择器属性,还可便于后续将容器组定向调度至集群中最优的计算节点上,相比于现有技术中因未添加节点选择器而对容器组进行随机调度,本发明可保证集群资源的均衡利用,提高集群资源利用率。
附图说明
图1为本发明实施例方案涉及的硬件运行环境的设备结构示意图;
图2为本发明容器资源创建方法第一实施例的流程示意图;
图3为本发明容器资源创建方法涉及的处理过程时序图;
图4为本发明容器资源创建装置第一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的设备结构示意图。
本发明实施例容器资源创建设备可以是智能手机,也可以是PC(PersonalComputer,个人计算机)、平板电脑、便携计算机等终端设备。
如图1所示,该容器资源创建设备可以包括:处理器1001,例如CPU,通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如Wi-Fi接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的容器资源创建设备结构并不构成对容器资源创建设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及容器资源创建程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端,与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的容器资源创建程序,并执行以下操作:
在接收到容器资源创建请求时,根据所述容器资源创建请求获取容器资源的完整定义;
从所述完整定义中读取得到目标命名空间,并调用预设接口读取所述目标命名空间的注解,得到所述注解中的键值对;
将所述键值对作为节点选择器属性注入至所述完整定义中的容器组定义部分,得到更新后的完整定义,并基于所述更新后的完整定义创建对应的容器资源及容器组。
进一步地,处理器1001可以调用存储器1005中存储的容器资源创建程序,还执行以下操作:
调用预设接口读取所述目标命名空间的注解;
基于预设的注解的键对所述注解进行解析,得到所述注解中的键值对。
进一步地,处理器1001可以调用存储器1005中存储的容器资源创建程序,还执行以下操作:
将所述更新后的完整定义通过所述预设接口提交至开源容器编排引擎Kubernetes集群中,以通过所述Kubernetes集群的命令行工具创建对应的容器资源;
基于所述容器资源创建对应的容器副本,以根据所述容器副本创建容器组。
进一步地,处理器1001可以调用存储器1005中存储的容器资源创建程序,还执行以下操作:
在接收到用户触发的操作请求时,根据所述操作请求获取对应的请求类型和操作信息,并根据所述请求类型和所述操作信息执行对应的操作;其中,所述操作请求包括节点标签创建请求、命名空间创建请求和命名空间注解添加请求。
进一步地,处理器1001可以调用存储器1005中存储的容器资源创建程序,还执行以下操作:
获取所述容器组的节点选择器属性,并基于各节点的预设节点标签获取与所述节点选择器属性相匹配的节点,记作第一目标节点;
获取所述第一目标节点的空闲资源信息,根据所述空闲资源信息和预设调度规则确定第二目标节点,并将所述容器组调度至所述第二目标节点上。
基于上述硬件结构,提出本发明容器资源创建方法的各实施例。
本发明提供一种容器资源创建方法。
参照图2,图2为本发明容器资源创建方法第一实施例的流程示意图。
在本实施例中,该容器资源创建方法包括:
步骤S10,在接收到容器资源创建请求时,根据所述容器资源创建请求获取容器资源的完整定义;
本实施例的容器资源创建方法是由容器资源创建设备实现的,该设备以服务器为例进行说明。用户在需要创建容器资源时,可通过终端对应的软件或程序点击容器资源创建选项,在输入相关信息(如容器资源的类型、容器资源所属的命名空间namespace、容器组Pod的数量等)后,即可触发容器资源创建请求。此时,服务器在接收到该容器资源创建请求时,先根据该容器资源创建请求获取用户对容器资源的完整定义,并缓存到内存中。其中,容器资源可以为Deployment(部署)、StatefulSet(有状态任务)、DaemonSet(后台支撑服务集)等,在本实施例中,以Deployment的创建为例进行说明,其中,Deployment为Kubernetes集群中容器应用运行的单位之一,包含若干个容器组(Pod)。
步骤S20,从所述完整定义中读取得到目标命名空间,并调用预设接口读取所述目标命名空间的注解,得到所述注解中的键值对;
在获取到用户对容器资源的完整定义后,从该完整定义中读取得到目标命名空间,即namespace,需要说明的是,namespace是Kubernetes集群中资源的逻辑隔离单位,每个容器资源必定属于某个namespace。
在读取到目标命名空间后,调用预设接口读取该目标命名空间的注解,得到注解中的键值对。其中,预设接口可以为Kubernetes API(Application ProgrammingInterface,应用程序编程接口),Kubernetes API是集群系统中的重要组成部分,Kubernetes中各种资源(对象)的数据通过该API接口被提交到后端的持久化存储中,Kubernetes集群中的各部件之间通过该API接口实现解耦合,同时Kubernetes集群中一个重要且便捷的管理工具kubectl也是通过访问该API接口实现其强大的管理功能的。
步骤“调用预设接口读取所述目标命名空间的注解,得到所述注解中的键值对”包括:
步骤a1,调用预设接口读取所述目标命名空间的注解;
步骤a2,基于预设的注解的键对所述注解进行解析,得到所述注解中的键值对。
先调用预设接口Kubernetes API读取该目标命名空间的注解,然后,基于预设的注解的键对注解进行解析,得到注解中的键值对。其中,注解的键是由用户在添加namespace的注解时设定的,如下述实施例中,可设定为“scheduler.alpha.kubernetes.io/node-selector”,从而便于标识查找到注解中的键值对。
步骤S30,将所述键值对作为节点选择器属性注入至所述完整定义中的容器组定义部分,得到更新后的完整定义,并基于所述更新后的完整定义创建对应的容器资源及容器组。
在得到注解中的键值对之后,将键值对作为节点选择器Node Selector属性注入至完整定义中的容器组Pod定义部分,得到更新后的完整定义。通过将键值对作为NodeSelector属性注入至完整定义中的Pod定义部分,即自动为Pod加上了Node Selector属性,从而无需人工手动添加。最后,基于更新后的完整定义创建对应的容器资源及容器组。
其中,步骤“基于所述更新后的完整定义创建对应的容器资源及容器组”包括:
步骤b1,将所述更新后的完整定义通过所述预设接口提交至开源容器编排引擎Kubernetes集群中,以通过所述Kubernetes集群的命令行工具创建对应的容器资源;
在得到更新后的完整定义后,将更新后的完整定义通过预设接口(KubernetesAPI)提交至Kubernetes集群中,以通过Kubernetes集群的命令行工具创建对应的容器资源,如Deployment。其中,Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。Kubernetes集群的命令行工具为kubectl,通过kubectl工具能够对集群本身进行管理,并能够在集群上进行容器化应用的安装部署。
步骤b2,基于所述容器资源创建对应的容器副本,以根据所述容器副本创建容器组。
然后,基于容器资源创建对应的容器副本Replcasset,以根据容器副本Replcasset创建容器组Pod。上述容器资源的具体创建处理过程如图3所示。
本发明在银行等金融机构的容器资源的创建过程中,在接收到容器创建请求时,先获取用户对容器资源的完整定义,然后读取得到目标命名空间,并读取得到目标命名空间注解中的键值对后,将键值对作为节点选择器属性注入至完整定义中的容器组定义部分,进而基于更新后的完整定义创建对应的容器资源及容器组,本发明可自动为容器组添加上节点选择器属性,无需人工手动添加,降低了银行等金融机构的人力成本。同时,本发明可便于后续将容器组定向调度至集群中最优的计算节点上,相比于现有技术中因未添加节点选择器而对容器组进行随机调度,本发明可保证银行等金融机构的集群资源的均衡利用,提高了集群资源利用率。
本发明实施例提供一种容器资源创建方法,在接收到该容器资源创建请求时,先根据该容器资源创建请求获取用户对容器资源的完整定义;从该完整定义中读取得到目标命名空间,并调用预设接口读取该目标命名空间的注解,得到注解中的键值对;然后将键值对作为节点选择器属性注入至完整定义中的容器组定义部分,以给容器组自动添加节点选择器,进而得到更新后的完整定义,并基于更新后的完整定义创建对应的容器资源及容器组。通过上述方式,本发明实施例可在容器资源的创建过程中,自动为容器资源中的容器组添加节点选择器属性,无需用户手动添加,可提升用户体验。同时,通过自动为容器组添加节点选择器属性,还可便于后续将容器组定向调度至集群中最优的计算节点上,相比于现有技术中因未添加节点选择器而对容器组进行随机调度,本发明实施例可保证集群资源的均衡利用,提高集群资源利用率。
进一步的,基于图2所示的第一实施例,提出本发明容器资源创建方法的第二实施例。
在本实施例中,在上述步骤S10之前,该容器资源创建方法还包括:
在接收到用户触发的操作请求时,根据所述操作请求获取对应的请求类型和操作信息,并根据所述请求类型和所述操作信息执行对应的操作;其中,所述操作请求包括节点标签创建请求、命名空间创建请求和命名空间注解添加请求。
在本实施例中,用户预先可通过触发各种操作请求,以进行各种操作,如创建NodeLabel、创建Namespace、添加Namespace注解等。服务器在接收到用户触发的操作请求时,根据该操作请求获取对应的请求类型和操作信息,并根据请求类型和操作信息执行对应的操作;其中,操作请求包括节点标签创建请求、命名空间创建请求和命名空间注解添加请求,对应的,当操作请求为节点标签创建请求时,操作信息可以包括目标节点Node及其对应的节点标签Node Label,执行操作为该目标Node创建对应的Node Label;当操作请求为命名空间创建请求时,操作信息可以包括所需创建的命名空间的编号信息,执行操作为创建对应的Namespace;当操作请求为命名空间注解添加请求时,操作信息可以包括所需添加的命名空间的编号信息和所需添加的注解,执行操作为根据所需添加的命名空间的编号信息查找到对应的Namespace,进而为其添加注解。上述请求的具体处理过程如图3所示。
例如,用户可以通过Kubernetes API为每个Node添加自定义的Node Label,这些Label以键值对的形式(x=y)的形式存在,其中,Node Label,是Kubernetes集群中计算节点的逻辑标签,用以标识不同的Node以及其所拥有的资源,可以通过Kubernetes的API为每个Node添加和修改,保存在集群的数据仓库中。具体的,用户通过调用K8s API为Node打上特定的Node Label,如有以下几个Node:
a.32C CPU/256GB内存/8C Tesla V100GPU
b.64C CPU/128GB内存/8C Tesla V100GPU
c.32C CPU/128GB内存/16C Tesla V100GPU
用户可以为其分别创建如下Node Label:
a.node-cpu=32C,node-memory=256G,node-gpu=8C,node-gpu-model=V100
b.node-cpu=64C,node-memory=128G,node-gpu=8C,node-gpu-model=V100
c.node-cpu=32C,node-memory=128G,node-gpu=16C,node-gpu-model=V100
再例如,当用户创建自定义的Namespace后,可以通过Kubernetes API为Namespace添加注解,如用户想让需要大内存的容器组分配到第一个Node上,需要高CPU算力的容器组分配到第二个Node上,需要高GPU性能的容器组分配到第三个Node上,则可以如下配置三个Namespace的注解的值(与上述Node Label一致):
a.node-cpu=32C,node-memory=256G,node-gpu=8C,node-gpu-model=V100
b.node-cpu=64C,node-memory=128G,node-gpu=8C,node-gpu-model=V100
c.node-cpu=32C,node-memory=128G,node-gpu=16C,node-gpu-model=V100
需要说明的是,在注解添加过程中,为了便于标识,用户可自定义注解的键,如注解的键可设定为“scheduler.alpha.kubernetes.io/node-selector”,以便于后续在注解中查找解析得到对应的键值对。
进一步的,基于图2所示的第一实施例,提出本发明容器资源创建方法的第三实施例。
在本实施例中,在上述步骤S30之后,该容器资源创建方法还包括:
步骤A,获取所述容器组的节点选择器属性,并基于各节点的预设节点标签获取与所述节点选择器属性相匹配的节点,记作第一目标节点;
在本实施例中,由于上述步骤中已经为容器组添加了Node Selector属性,因此Kubernetes的调度器会识别并根据指示调整Pod运行的Node。具体的,在创建完容器资源及容器组之后,可获取容器组的节点选择器属性,并基于各节点的预设节点标签获取与该节点选择器属性相匹配的节点,记作第一目标节点。其中,各节点Node的节点标签Node Label是用户预先创建的,具体的节点标签创建方式可参照上述第二实施例。在获取与该节点选择器属性相匹配的节点时,即根据各节点的预设节点标签查找包含有Node Selector属性中的Node Label的Node。
步骤B,获取所述第一目标节点的空闲资源信息,根据所述空闲资源信息和预设调度规则确定第二目标节点,并将所述容器组调度至所述第二目标节点上。
在获取到第一目标节点后,还需根据第一目标节点的空闲资源信息来进行调度。具体的,先获取第一目标节点的空闲资源信息,其中,空闲资源信息包括CPU(CentralProcessing Unit,中央处理器)、GPU(Graphics Processing Unit,图形处理器)、内存等资源的空闲/剩余信息,然后,根据空闲资源信息和预设调度规则确定第二目标节点,并将容器组调度至第二目标节点上。其中,预设调度规则可根据用户的实际需要预先进行设定,例如,可设定为针对某一资源空闲最多的调度规则、如选择CPU空闲最多的节点,再例如,可设定为针对各项资源的空闲情况进行综合打分的调度规则,如根据各节点的各项资源的空闲情况分别对各项资源进行打分,然后对各项资源的分值进行加和得到各节点的总分值,选取总分值最高的节点作为第二目标节点。上述预设调度规则仅作举例用,不作为对本发明的限制。
本发明还提供一种容器资源创建装置。
参照图4,图4为本发明容器资源创建装置第一实施例的功能模块示意图。
如图4所示,所述容器资源创建装置包括:
定义获取模块10,用于在接收到容器资源创建请求时,根据所述容器资源创建请求获取容器资源的完整定义;
注解读取模块20,用于从所述完整定义中读取得到目标命名空间,并调用预设接口读取所述目标命名空间的注解,得到所述注解中的键值对;
资源创建模块30,用于将所述键值对作为节点选择器属性注入至所述完整定义中的容器组定义部分,得到更新后的完整定义,并基于所述更新后的完整定义创建对应的容器资源及容器组。
进一步地,所述注解读取模块20包括:
注解读取单元,用于调用预设接口读取所述目标命名空间的注解;
键值对获取单元,用于基于预设的注解的键对所述注解进行解析,得到所述注解中的键值对。
进一步地,所述资源创建模块30包括:
第一创建单元,用于将所述更新后的完整定义通过所述预设接口提交至Kubernetes集群中,以通过所述Kubernetes集群的命令行工具创建对应的容器资源;
第二创建单元,用于基于所述容器资源创建对应的容器副本,以根据所述容器副本创建容器组。
进一步地,所述容器资源创建装置还包括:
操作执行模块,用于在接收到用户触发的操作请求时,根据所述操作请求获取对应的请求类型和操作信息,并根据所述请求类型和所述操作信息执行对应的操作;其中,所述操作请求包括节点标签创建请求、命名空间创建请求和命名空间注解添加请求。
进一步地,所述容器资源创建装置还包括:
节点获取模块,用于获取所述容器组的节点选择器属性,并基于各节点的预设节点标签获取与所述节点选择器属性相匹配的节点,记作第一目标节点;
容器组调度模块,用于获取所述第一目标节点的空闲资源信息,根据所述空闲资源信息和预设调度规则确定第二目标节点,并将所述容器组调度至所述第二目标节点上。
其中,上述容器资源创建装置中各个模块的功能实现与上述容器资源创建方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有容器资源创建程序,所述容器资源创建程序被处理器执行时实现如以上任一项实施例所述的容器资源创建方法的步骤。
本发明计算机可读存储介质的具体实施例与上述容器资源创建方法各实施例基本相同,在此不作赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种容器资源创建方法,其特征在于,所述容器资源创建方法包括:
在接收到容器资源创建请求时,根据所述容器资源创建请求获取容器资源的完整定义;
从所述完整定义中读取得到目标命名空间,并调用预设接口读取所述目标命名空间的注解,得到所述注解中的键值对;
将所述键值对作为节点选择器属性注入至所述完整定义中的容器组定义部分,得到更新后的完整定义,并基于所述更新后的完整定义创建对应的容器资源及容器组。
2.如权利要求1所述的容器资源创建方法,其特征在于,所述调用预设接口读取所述目标命名空间的注解,得到所述注解中的键值对的步骤包括:
调用预设接口读取所述目标命名空间的注解;
基于预设的注解的键对所述注解进行解析,得到所述注解中的键值对。
3.如权利要求1所述的容器资源创建方法,其特征在于,所述基于所述更新后的完整定义创建对应的容器资源及容器组的步骤包括:
将所述更新后的完整定义通过所述预设接口提交至开源容器编排引擎Kubernetes集群中,以通过所述Kubernetes集群的命令行工具创建对应的容器资源;
基于所述容器资源创建对应的容器副本,以根据所述容器副本创建容器组。
4.如权利要求1至3中任一项所述的容器资源创建方法,其特征在于,所述在接收到容器资源创建请求时,根据所述容器资源创建请求获取容器资源的完整定义的步骤之前,所述容器资源创建方法还包括:
在接收到用户触发的操作请求时,根据所述操作请求获取对应的请求类型和操作信息,并根据所述请求类型和所述操作信息执行对应的操作;其中,所述操作请求包括节点标签创建请求、命名空间创建请求和命名空间注解添加请求。
5.如权利要求1至3中任一项所述的容器资源创建方法,其特征在于,所述基于所述更新后的完整定义创建对应的容器资源及容器组的步骤之后,所述容器资源创建方法包括:
获取所述容器组的节点选择器属性,并基于各节点的预设节点标签获取与所述节点选择器属性相匹配的节点,记作第一目标节点;
获取所述第一目标节点的空闲资源信息,根据所述空闲资源信息和预设调度规则确定第二目标节点,并将所述容器组调度至所述第二目标节点上。
6.一种容器资源创建装置,其特征在于,所述容器资源创建装置包括:
定义获取模块,用于在接收到容器资源创建请求时,根据所述容器资源创建请求获取容器资源的完整定义;
注解读取模块,用于从所述完整定义中读取得到目标命名空间,并调用预设接口读取所述目标命名空间的注解,得到所述注解中的键值对;
资源创建模块,用于将所述键值对作为节点选择器属性注入至所述完整定义中的容器组定义部分,得到更新后的完整定义,并基于所述更新后的完整定义创建对应的容器资源及容器组。
7.如权利要求6所述的容器资源创建装置,其特征在于,所述资源创建模块包括:
第一创建单元,用于将所述更新后的完整定义通过所述预设接口提交至Kubernetes集群中,以通过所述Kubernetes集群的命令行工具创建对应的容器资源;
第二创建单元,用于基于所述容器资源创建对应的容器副本,以根据所述容器副本创建容器组。
8.如权利要求6或7所述的容器资源创建装置,其特征在于,所述容器资源创建装置还包括:
节点获取模块,用于获取所述容器组的节点选择器属性,并基于各节点的预设节点标签获取与所述节点选择器属性相匹配的节点,记作第一目标节点;
容器组分配模块,用于获取所述第一目标节点的空闲资源信息,根据所述空闲资源信息和预设调度规则确定第二目标节点,并将所述容器组调度至所述第二目标节点上。
9.一种容器资源创建设备,其特征在于,所述容器资源创建设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的容器资源创建程序,所述容器资源创建程序被所述处理器执行时实现如权利要求1至5中任一项所述的容器资源创建方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有容器资源创建程序,所述容器资源创建程序被处理器执行时实现如权利要求1至5中任一项所述的容器资源创建方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910494501.2A CN110221901A (zh) | 2019-06-06 | 2019-06-06 | 容器资源创建方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910494501.2A CN110221901A (zh) | 2019-06-06 | 2019-06-06 | 容器资源创建方法、装置、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110221901A true CN110221901A (zh) | 2019-09-10 |
Family
ID=67815954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910494501.2A Pending CN110221901A (zh) | 2019-06-06 | 2019-06-06 | 容器资源创建方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110221901A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111338752A (zh) * | 2020-02-14 | 2020-06-26 | 聚好看科技股份有限公司 | 容器调整方法及装置 |
CN111352717A (zh) * | 2020-03-24 | 2020-06-30 | 广西梯度科技有限公司 | 一种实现kubernetes自定义调度器的方法 |
CN111708629A (zh) * | 2020-04-30 | 2020-09-25 | 咪咕文化科技有限公司 | 一种资源分配方法、装置、电子设备和存储介质 |
CN111741097A (zh) * | 2020-06-15 | 2020-10-02 | 星环信息科技(上海)有限公司 | 一种租户独占节点的方法、计算机设备及存储介质 |
CN111767145A (zh) * | 2020-06-24 | 2020-10-13 | 中国工商银行股份有限公司 | 容器调度系统、方法、装置和设备 |
CN112448854A (zh) * | 2020-12-09 | 2021-03-05 | 中国—东盟信息港股份有限公司 | 一种kubernetes复杂网络策略系统及其实现方法 |
CN112799775A (zh) * | 2020-12-29 | 2021-05-14 | 杭州涂鸦信息技术有限公司 | 一种节点属性传递方法以及相关装置 |
TWI728571B (zh) * | 2019-11-26 | 2021-05-21 | 中華電信股份有限公司 | 區塊鏈服務的資源管理方法及系統 |
CN112866333A (zh) * | 2020-12-28 | 2021-05-28 | 上海领健信息技术有限公司 | 基于云原生的微服务场景优化方法、系统、设备和介质 |
CN113239118A (zh) * | 2021-05-31 | 2021-08-10 | 广州宏算信息科技有限公司 | 一种区块链实训系统和方法 |
CN113608819A (zh) * | 2021-06-18 | 2021-11-05 | 北京汇钧科技有限公司 | 创建容器的方法、装置、电子设备及介质 |
CN114090268A (zh) * | 2022-01-11 | 2022-02-25 | 北京九章云极科技有限公司 | 容器管理方法及容器管理系统 |
CN114443239A (zh) * | 2020-11-04 | 2022-05-06 | 中移物联网有限公司 | 一种注入容器的方法及装置 |
CN112799775B (zh) * | 2020-12-29 | 2024-05-14 | 杭州涂鸦信息技术有限公司 | 一种节点属性传递方法以及相关装置 |
-
2019
- 2019-06-06 CN CN201910494501.2A patent/CN110221901A/zh active Pending
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI728571B (zh) * | 2019-11-26 | 2021-05-21 | 中華電信股份有限公司 | 區塊鏈服務的資源管理方法及系統 |
CN111338752B (zh) * | 2020-02-14 | 2022-04-08 | 聚好看科技股份有限公司 | 容器调整方法及装置 |
CN111338752A (zh) * | 2020-02-14 | 2020-06-26 | 聚好看科技股份有限公司 | 容器调整方法及装置 |
CN111352717A (zh) * | 2020-03-24 | 2020-06-30 | 广西梯度科技有限公司 | 一种实现kubernetes自定义调度器的方法 |
CN111352717B (zh) * | 2020-03-24 | 2023-04-07 | 广西梯度科技股份有限公司 | 一种实现kubernetes自定义调度器的方法 |
CN111708629A (zh) * | 2020-04-30 | 2020-09-25 | 咪咕文化科技有限公司 | 一种资源分配方法、装置、电子设备和存储介质 |
CN111708629B (zh) * | 2020-04-30 | 2023-09-19 | 咪咕文化科技有限公司 | 一种资源分配方法、装置、电子设备和存储介质 |
CN111741097A (zh) * | 2020-06-15 | 2020-10-02 | 星环信息科技(上海)有限公司 | 一种租户独占节点的方法、计算机设备及存储介质 |
CN111741097B (zh) * | 2020-06-15 | 2021-04-02 | 星环信息科技(上海)股份有限公司 | 一种租户独占节点的方法、计算机设备及存储介质 |
CN111767145A (zh) * | 2020-06-24 | 2020-10-13 | 中国工商银行股份有限公司 | 容器调度系统、方法、装置和设备 |
CN114443239A (zh) * | 2020-11-04 | 2022-05-06 | 中移物联网有限公司 | 一种注入容器的方法及装置 |
CN112448854B (zh) * | 2020-12-09 | 2023-04-18 | 中国—东盟信息港股份有限公司 | 一种kubernetes复杂网络策略系统及其实现方法 |
CN112448854A (zh) * | 2020-12-09 | 2021-03-05 | 中国—东盟信息港股份有限公司 | 一种kubernetes复杂网络策略系统及其实现方法 |
CN112866333A (zh) * | 2020-12-28 | 2021-05-28 | 上海领健信息技术有限公司 | 基于云原生的微服务场景优化方法、系统、设备和介质 |
CN112799775A (zh) * | 2020-12-29 | 2021-05-14 | 杭州涂鸦信息技术有限公司 | 一种节点属性传递方法以及相关装置 |
CN112799775B (zh) * | 2020-12-29 | 2024-05-14 | 杭州涂鸦信息技术有限公司 | 一种节点属性传递方法以及相关装置 |
CN113239118A (zh) * | 2021-05-31 | 2021-08-10 | 广州宏算信息科技有限公司 | 一种区块链实训系统和方法 |
CN113608819A (zh) * | 2021-06-18 | 2021-11-05 | 北京汇钧科技有限公司 | 创建容器的方法、装置、电子设备及介质 |
CN114090268A (zh) * | 2022-01-11 | 2022-02-25 | 北京九章云极科技有限公司 | 容器管理方法及容器管理系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110221901A (zh) | 容器资源创建方法、装置、设备及计算机可读存储介质 | |
US11422853B2 (en) | Dynamic tree determination for data processing | |
US8818940B2 (en) | Systems and methods for performing record actions in a multi-tenant database and application system | |
US8150889B1 (en) | Parallel processing framework | |
US20160170712A1 (en) | Method for integrally implementing development and release of APP | |
CN105190555B (zh) | 集中式任务调度 | |
CN109067890A (zh) | 一种基于docker容器的CDN节点边缘计算系统 | |
US20240020162A1 (en) | Workflow selection | |
US20120246659A1 (en) | Techniques to optimize upgrade tasks | |
US10824544B1 (en) | Generating test data as a service for use in testing software during software development | |
CN108351766B (zh) | 从移动设备创建和修改应用 | |
US10037225B2 (en) | Method and system for scheduling computing | |
CN110191186A (zh) | Cdn服务器调度方法、设备及计算机可读存储介质 | |
CN109842621A (zh) | 一种减少token存储数量的方法及终端 | |
CN115292014A (zh) | 图像渲染方法、装置和服务器 | |
CN110225087A (zh) | 基于全局负载均衡的云存取方法、装置及存储介质 | |
CN110096258A (zh) | 一种基于Terraform的OpenStack基础设施架构管理的方法 | |
CN113722114A (zh) | 一种数据服务的处理方法、装置、计算设备及存储介质 | |
US10757190B2 (en) | Method, device and computer program product for scheduling multi-cloud system | |
CN109783159A (zh) | 基于配置信息的应用启动方法和装置 | |
CN111767149B (zh) | 调度方法、装置、设备及存储设备 | |
CN109597825A (zh) | 规则引擎调用方法、装置、设备及计算机可读存储介质 | |
CN117076096A (zh) | 任务流程的执行方法、装置、计算机可读介质及电子设备 | |
US8280950B2 (en) | Automatic client-server code generator | |
US10572531B1 (en) | Predictive session-based search engine |
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 |