首页 / 专利库 / 软件 / 软件套件 / 软件组件 / 规则引擎 / 容器资源创建方法、装置、设备及计算机可读存储介质

容器资源创建方法、装置、设备及计算机可读存储介质

阅读:1011发布:2020-06-14

专利汇可以提供容器资源创建方法、装置、设备及计算机可读存储介质专利检索,专利查询,专利分析的服务。并且本 发明 涉及金融科技技术领域,公开了一种容器资源创建方法、装置、设备及计算机可读存储介质。该方法包括:在接收到容器资源创建 请求 时,根据所述容器资源创建请求获取容器资源的完整定义;从所述完整定义中读取得到目标命名空间,并调用预设 接口 读取所述目标命名空间的注解,得到所述注解中的键值对;将所述键值对作为 节点 选择器属性注入至所述完整定义中的容器组定义部分,得到更新后的完整定义,并基于所述更新后的完整定义创建对应的容器资源及容器组。本发明能实现在创建容器资源时,自动为容器资源中的容器组添加节点选择器属性,以便于后续将容器组定向调度至集群中最优的计算节点上,从而可保证集群资源的均衡利用,提高集群资源利用率。,下面是容器资源创建方法、装置、设备及计算机可读存储介质专利的具体信息内容。

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中任一项所述的容器资源创建方法的步骤。

说明书全文

容器资源创建方法、装置、设备及计算机可读存储介质

技术领域

[0001] 本发明涉及金融科技(Fintech)技术领域,尤其涉及一种容器资源创建方法、装置、设备及计算机可读存储介质。

背景技术

[0002] 随着计算机技术的发展,越来越多的技术(大数据、分布式、链Blockchain、人工智能等)应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出了更高的要求。
[0003] Kubernetes是一个开源平台,用于管理平台中多个主机上的容器化的应用。Kubernetes可以很好地配合用于容器应用的硬件资源管理及硬件资源调度,用户可以按照需求将特定的容器分配到特定的Node(计算节点)上,从而使用其所需的硬件资源,因而得到了广泛的应用,目前很多互联网企业或金融机构已经在生产环境基于Kubernetes构建了容器云平台。然而,在创建容器资源(如Deployment部署)后,当为容器资源添加Node Selector(节点选择器)属性时,容器资源包含的每个Pod(容器组)不会自动加上Node Selector,从而无法使用Node Selector,进而在后续对Pod进行调度时,会将Pod随机调度至一Node上,此时会导致集群资源利用率较低。

发明内容

[0004] 本发明的主要目的在于提供一种容器资源创建方法、装置、设备及计算机可读存储介质,旨在实现自动为容器资源中的容器组添加节点选择器属性,以便于后续将容器组定向调度至集群中最优的计算节点上,从而提高集群资源利用率。
[0005] 为实现上述目的,本发明提供一种容器资源创建方法,所述容器资源创建方法包括:
[0006] 在接收到容器资源创建请求时,根据所述容器资源创建请求获取容器资源的完整定义;
[0007] 从所述完整定义中读取得到目标命名空间,并调用预设接口读取所述目标命名空间的注解,得到所述注解中的键值对;
[0008] 将所述键值对作为节点选择器属性注入至所述完整定义中的容器组定义部分,得到更新后的完整定义,并基于所述更新后的完整定义创建对应的容器资源及容器组。
[0009] 可选地,所述调用预设接口读取所述目标命名空间的注解,得到所述注解中的键值对的步骤包括:
[0010] 调用预设接口读取所述目标命名空间的注解;
[0011] 基于预设的注解的键对所述注解进行解析,得到所述注解中的键值对。
[0012] 可选地,所述基于所述更新后的完整定义创建对应的容器资源及容器组的步骤包括:
[0013] 将所述更新后的完整定义通过所述预设接口提交至开源容器编排引擎Kubernetes集群中,以通过所述Kubernetes集群的命令行工具创建对应的容器资源;
[0014] 基于所述容器资源创建对应的容器副本,以根据所述容器副本创建容器组。
[0015] 可选地,所述在接收到容器资源创建请求时,根据所述容器资源创建请求获取容器资源的完整定义的步骤之前,所述容器资源创建方法还包括:
[0016] 在接收到用户触发的操作请求时,根据所述操作请求获取对应的请求类型和操作信息,并根据所述请求类型和所述操作信息执行对应的操作;其中,所述操作请求包括节点标签创建请求、命名空间创建请求和命名空间注解添加请求。
[0017] 可选地,所述基于所述更新后的完整定义创建对应的容器资源及容器组的步骤之后,所述容器资源创建方法包括:
[0018] 获取所述容器组的节点选择器属性,并基于各节点的预设节点标签获取与所述节点选择器属性相匹配的节点,记作第一目标节点;
[0019] 获取所述第一目标节点的空闲资源信息,根据所述空闲资源信息和预设调度规则确定第二目标节点,并将所述容器组调度至所述第二目标节点上。
[0020] 此外,为实现上述目的,本发明还提供一种容器资源创建装置,所述容器资源创建装置包括:
[0021] 定义获取模块,用于在接收到容器资源创建请求时,根据所述容器资源创建请求获取容器资源的完整定义;
[0022] 注解读取模块,用于从所述完整定义中读取得到目标命名空间,并调用预设接口读取所述目标命名空间的注解,得到所述注解中的键值对;
[0023] 资源创建模块,用于将所述键值对作为节点选择器属性注入至所述完整定义中的容器组定义部分,得到更新后的完整定义,并基于所述更新后的完整定义创建对应的容器资源及容器组。
[0024] 可选地,所述资源创建模块包括:
[0025] 第一创建单元,用于将所述更新后的完整定义通过所述预设接口提交至Kubernetes集群中,以通过所述Kubernetes集群的命令行工具创建对应的容器资源;
[0026] 第二创建单元,用于基于所述容器资源创建对应的容器副本,以根据所述容器副本创建容器组。
[0027] 可选地,所述容器资源创建装置还包括:
[0028] 节点获取模块,用于获取所述容器组的节点选择器属性,并基于各节点的预设节点标签获取与所述节点选择器属性相匹配的节点,记作第一目标节点;
[0029] 容器组分配模块,用于获取所述第一目标节点的空闲资源信息,根据所述空闲资源信息和预设调度规则确定第二目标节点,并将所述容器组调度至所述第二目标节点上。
[0030] 此外,为实现上述目的,本发明还提供一种容器资源创建设备,所述容器资源创建设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的容器资源创建程序,所述容器资源创建程序被所述处理器执行时实现如上所述的容器资源创建方法的步骤。
[0031] 此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有容器资源创建程序,所述容器资源创建程序被处理器执行时实现如上所述的容器资源创建方法的步骤。
[0032] 本发明提供一种容器资源创建方法、装置、设备及计算机可读存储介质,在接收到该容器资源创建请求时,先根据该容器资源创建请求获取用户对容器资源的完整定义;从该完整定义中读取得到目标命名空间,并调用预设接口读取该目标命名空间的注解,得到注解中的键值对;然后将键值对作为节点选择器属性注入至完整定义中的容器组定义部分,以给容器组自动添加节点选择器,进而得到更新后的完整定义,并基于更新后的完整定义创建对应的容器资源及容器组。通过上述方式,本发明可在容器资源的创建过程中,自动为容器资源中的容器组添加节点选择器属性,无需用户手动添加,可提升用户体验。同时,通过自动为容器组添加节点选择器属性,还可便于后续将容器组定向调度至集群中最优的计算节点上,相比于现有技术中因未添加节点选择器而对容器组进行随机调度,本发明可保证集群资源的均衡利用,提高集群资源利用率。附图说明
[0033] 图1为本发明实施例方案涉及的硬件运行环境的设备结构示意图;
[0034] 图2为本发明容器资源创建方法第一实施例的流程示意图;
[0035] 图3为本发明容器资源创建方法涉及的处理过程时序图;
[0036] 图4为本发明容器资源创建装置第一实施例的功能模块示意图。
[0037] 本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

[0038] 应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0039] 参照图1,图1为本发明实施例方案涉及的硬件运行环境的设备结构示意图。
[0040] 本发明实施例容器资源创建设备可以是智能手机,也可以是PC(Personal Computer,个人计算机)、平板电脑、便携计算机等终端设备。
[0041] 如图1所示,该容器资源创建设备可以包括:处理器1001,例如CPU,通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如Wi-Fi接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
[0042] 本领域技术人员可以理解,图1中示出的容器资源创建设备结构并不构成对容器资源创建设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0043] 如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及容器资源创建程序。
[0044] 在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端,与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的容器资源创建程序,并执行以下操作:
[0045] 在接收到容器资源创建请求时,根据所述容器资源创建请求获取容器资源的完整定义;
[0046] 从所述完整定义中读取得到目标命名空间,并调用预设接口读取所述目标命名空间的注解,得到所述注解中的键值对;
[0047] 将所述键值对作为节点选择器属性注入至所述完整定义中的容器组定义部分,得到更新后的完整定义,并基于所述更新后的完整定义创建对应的容器资源及容器组。
[0048] 进一步地,处理器1001可以调用存储器1005中存储的容器资源创建程序,还执行以下操作:
[0049] 调用预设接口读取所述目标命名空间的注解;
[0050] 基于预设的注解的键对所述注解进行解析,得到所述注解中的键值对。
[0051] 进一步地,处理器1001可以调用存储器1005中存储的容器资源创建程序,还执行以下操作:
[0052] 将所述更新后的完整定义通过所述预设接口提交至开源容器编排引擎Kubernetes集群中,以通过所述Kubernetes集群的命令行工具创建对应的容器资源;
[0053] 基于所述容器资源创建对应的容器副本,以根据所述容器副本创建容器组。
[0054] 进一步地,处理器1001可以调用存储器1005中存储的容器资源创建程序,还执行以下操作:
[0055] 在接收到用户触发的操作请求时,根据所述操作请求获取对应的请求类型和操作信息,并根据所述请求类型和所述操作信息执行对应的操作;其中,所述操作请求包括节点标签创建请求、命名空间创建请求和命名空间注解添加请求。
[0056] 进一步地,处理器1001可以调用存储器1005中存储的容器资源创建程序,还执行以下操作:
[0057] 获取所述容器组的节点选择器属性,并基于各节点的预设节点标签获取与所述节点选择器属性相匹配的节点,记作第一目标节点;
[0058] 获取所述第一目标节点的空闲资源信息,根据所述空闲资源信息和预设调度规则确定第二目标节点,并将所述容器组调度至所述第二目标节点上。
[0059] 基于上述硬件结构,提出本发明容器资源创建方法的各实施例。
[0060] 本发明提供一种容器资源创建方法。
[0061] 参照图2,图2为本发明容器资源创建方法第一实施例的流程示意图。
[0062] 在本实施例中,该容器资源创建方法包括:
[0063] 步骤S10,在接收到容器资源创建请求时,根据所述容器资源创建请求获取容器资源的完整定义;
[0064] 本实施例的容器资源创建方法是由容器资源创建设备实现的,该设备以服务器为例进行说明。用户在需要创建容器资源时,可通过终端对应的软件或程序点击容器资源创建选项,在输入相关信息(如容器资源的类型、容器资源所属的命名空间namespace、容器组Pod的数量等)后,即可触发容器资源创建请求。此时,服务器在接收到该容器资源创建请求时,先根据该容器资源创建请求获取用户对容器资源的完整定义,并缓存到内存中。其中,容器资源可以为Deployment(部署)、StatefulSet(有状态任务)、DaemonSet(后台支撑服务集)等,在本实施例中,以Deployment的创建为例进行说明,其中,Deployment为Kubernetes集群中容器应用运行的单位之一,包含若干个容器组(Pod)。
[0065] 步骤S20,从所述完整定义中读取得到目标命名空间,并调用预设接口读取所述目标命名空间的注解,得到所述注解中的键值对;
[0066] 在获取到用户对容器资源的完整定义后,从该完整定义中读取得到目标命名空间,即namespace,需要说明的是,namespace是Kubernetes集群中资源的逻辑隔离单位,每个容器资源必定属于某个namespace。
[0067] 在读取到目标命名空间后,调用预设接口读取该目标命名空间的注解,得到注解中的键值对。其中,预设接口可以为Kubernetes API(Application Programming Interface,应用程序编程接口),Kubernetes API是集群系统中的重要组成部分,Kubernetes中各种资源(对象)的数据通过该API接口被提交到后端的持久化存储中,Kubernetes集群中的各部件之间通过该API接口实现解耦合,同时Kubernetes集群中一个重要且便捷的管理工具kubectl也是通过访问该API接口实现其强大的管理功能的。
[0068] 步骤“调用预设接口读取所述目标命名空间的注解,得到所述注解中的键值对”包括:
[0069] 步骤a1,调用预设接口读取所述目标命名空间的注解;
[0070] 步骤a2,基于预设的注解的键对所述注解进行解析,得到所述注解中的键值对。
[0071] 先调用预设接口Kubernetes API读取该目标命名空间的注解,然后,基于预设的注解的键对注解进行解析,得到注解中的键值对。其中,注解的键是由用户在添加namespace的注解时设定的,如下述实施例中,可设定为“scheduler.alpha.kubernetes.io/node-selector”,从而便于标识查找到注解中的键值对。
[0072] 步骤S30,将所述键值对作为节点选择器属性注入至所述完整定义中的容器组定义部分,得到更新后的完整定义,并基于所述更新后的完整定义创建对应的容器资源及容器组。
[0073] 在得到注解中的键值对之后,将键值对作为节点选择器Node Selector属性注入至完整定义中的容器组Pod定义部分,得到更新后的完整定义。通过将键值对作为Node Selector属性注入至完整定义中的Pod定义部分,即自动为Pod加上了Node Selector属性,从而无需人工手动添加。最后,基于更新后的完整定义创建对应的容器资源及容器组。
[0074] 其中,步骤“基于所述更新后的完整定义创建对应的容器资源及容器组”包括:
[0075] 步骤b1,将所述更新后的完整定义通过所述预设接口提交至开源容器编排引擎Kubernetes集群中,以通过所述Kubernetes集群的命令行工具创建对应的容器资源;
[0076] 在得到更新后的完整定义后,将更新后的完整定义通过预设接口(Kubernetes API)提交至Kubernetes集群中,以通过Kubernetes集群的命令行工具创建对应的容器资源,如Deployment。其中,Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。Kubernetes集群的命令行工具为kubectl,通过kubectl工具能够对集群本身进行管理,并能够在集群上进行容器化应用的安装部署。
[0077] 步骤b2,基于所述容器资源创建对应的容器副本,以根据所述容器副本创建容器组。
[0078] 然后,基于容器资源创建对应的容器副本Replcasset,以根据容器副本Replcasset创建容器组Pod。上述容器资源的具体创建处理过程如图3所示。
[0079] 本发明在行等金融机构的容器资源的创建过程中,在接收到容器创建请求时,先获取用户对容器资源的完整定义,然后读取得到目标命名空间,并读取得到目标命名空间注解中的键值对后,将键值对作为节点选择器属性注入至完整定义中的容器组定义部分,进而基于更新后的完整定义创建对应的容器资源及容器组,本发明可自动为容器组添加上节点选择器属性,无需人工手动添加,降低了银行等金融机构的人成本。同时,本发明可便于后续将容器组定向调度至集群中最优的计算节点上,相比于现有技术中因未添加节点选择器而对容器组进行随机调度,本发明可保证银行等金融机构的集群资源的均衡利用,提高了集群资源利用率。
[0080] 本发明实施例提供一种容器资源创建方法,在接收到该容器资源创建请求时,先根据该容器资源创建请求获取用户对容器资源的完整定义;从该完整定义中读取得到目标命名空间,并调用预设接口读取该目标命名空间的注解,得到注解中的键值对;然后将键值对作为节点选择器属性注入至完整定义中的容器组定义部分,以给容器组自动添加节点选择器,进而得到更新后的完整定义,并基于更新后的完整定义创建对应的容器资源及容器组。通过上述方式,本发明实施例可在容器资源的创建过程中,自动为容器资源中的容器组添加节点选择器属性,无需用户手动添加,可提升用户体验。同时,通过自动为容器组添加节点选择器属性,还可便于后续将容器组定向调度至集群中最优的计算节点上,相比于现有技术中因未添加节点选择器而对容器组进行随机调度,本发明实施例可保证集群资源的均衡利用,提高集群资源利用率。
[0081] 进一步的,基于图2所示的第一实施例,提出本发明容器资源创建方法的第二实施例。
[0082] 在本实施例中,在上述步骤S10之前,该容器资源创建方法还包括:
[0083] 在接收到用户触发的操作请求时,根据所述操作请求获取对应的请求类型和操作信息,并根据所述请求类型和所述操作信息执行对应的操作;其中,所述操作请求包括节点标签创建请求、命名空间创建请求和命名空间注解添加请求。
[0084] 在本实施例中,用户预先可通过触发各种操作请求,以进行各种操作,如创建Node Label、创建Namespace、添加Namespace注解等。服务器在接收到用户触发的操作请求时,根据该操作请求获取对应的请求类型和操作信息,并根据请求类型和操作信息执行对应的操作;其中,操作请求包括节点标签创建请求、命名空间创建请求和命名空间注解添加请求,对应的,当操作请求为节点标签创建请求时,操作信息可以包括目标节点Node及其对应的节点标签Node Label,执行操作为该目标Node创建对应的Node Label;当操作请求为命名空间创建请求时,操作信息可以包括所需创建的命名空间的编号信息,执行操作为创建对应的Namespace;当操作请求为命名空间注解添加请求时,操作信息可以包括所需添加的命名空间的编号信息和所需添加的注解,执行操作为根据所需添加的命名空间的编号信息查找到对应的Namespace,进而为其添加注解。上述请求的具体处理过程如图3所示。
[0085] 例如,用户可以通过Kubernetes API为每个Node添加自定义的Node Label,这些Label以键值对的形式(x=y)的形式存在,其中,Node Label,是Kubernetes集群中计算节点的逻辑标签,用以标识不同的Node以及其所拥有的资源,可以通过Kubernetes的API为每个Node添加和修改,保存在集群的数据仓库中。具体的,用户通过调用K8s API为Node打上特定的Node Label,如有以下几个Node:
[0086] a.32C CPU/256GB内存/8C Tesla V100GPU
[0087] b.64C CPU/128GB内存/8C Tesla V100GPU
[0088] c.32C CPU/128GB内存/16C Tesla V100GPU
[0089] 用户可以为其分别创建如下Node Label:
[0090] a.node-cpu=32C,node-memory=256G,node-gpu=8C,node-gpu-model=V100[0091] b.node-cpu=64C,node-memory=128G,node-gpu=8C,node-gpu-model=V100[0092] c.node-cpu=32C,node-memory=128G,node-gpu=16C,node-gpu-model=V100[0093] 再例如,当用户创建自定义的Namespace后,可以通过Kubernetes API为Namespace添加注解,如用户想让需要大内存的容器组分配到第一个Node上,需要高CPU算力的容器组分配到第二个Node上,需要高GPU性能的容器组分配到第三个Node上,则可以如下配置三个Namespace的注解的值(与上述Node Label一致):
[0094] a.node-cpu=32C,node-memory=256G,node-gpu=8C,node-gpu-model=V100[0095] b.node-cpu=64C,node-memory=128G,node-gpu=8C,node-gpu-model=V100[0096] c.node-cpu=32C,node-memory=128G,node-gpu=16C,node-gpu-model=V100[0097] 需要说明的是,在注解添加过程中,为了便于标识,用户可自定义注解的键,如注解的键可设定为“scheduler.alpha.kubernetes.io/node-selector”,以便于后续在注解中查找解析得到对应的键值对。
[0098] 进一步的,基于图2所示的第一实施例,提出本发明容器资源创建方法的第三实施例。
[0099] 在本实施例中,在上述步骤S30之后,该容器资源创建方法还包括:
[0100] 步骤A,获取所述容器组的节点选择器属性,并基于各节点的预设节点标签获取与所述节点选择器属性相匹配的节点,记作第一目标节点;
[0101] 在本实施例中,由于上述步骤中已经为容器组添加了Node Selector属性,因此Kubernetes的调度器会识别并根据指示调整Pod运行的Node。具体的,在创建完容器资源及容器组之后,可获取容器组的节点选择器属性,并基于各节点的预设节点标签获取与该节点选择器属性相匹配的节点,记作第一目标节点。其中,各节点Node的节点标签Node Label是用户预先创建的,具体的节点标签创建方式可参照上述第二实施例。在获取与该节点选择器属性相匹配的节点时,即根据各节点的预设节点标签查找包含有Node Selector属性中的Node Label的Node。
[0102] 步骤B,获取所述第一目标节点的空闲资源信息,根据所述空闲资源信息和预设调度规则确定第二目标节点,并将所述容器组调度至所述第二目标节点上。
[0103] 在获取到第一目标节点后,还需根据第一目标节点的空闲资源信息来进行调度。具体的,先获取第一目标节点的空闲资源信息,其中,空闲资源信息包括CPU(Central Processing Unit,中央处理器)、GPU(Graphics Processing Unit,图形处理器)、内存等资源的空闲/剩余信息,然后,根据空闲资源信息和预设调度规则确定第二目标节点,并将容器组调度至第二目标节点上。其中,预设调度规则可根据用户的实际需要预先进行设定,例如,可设定为针对某一资源空闲最多的调度规则、如选择CPU空闲最多的节点,再例如,可设定为针对各项资源的空闲情况进行综合打分的调度规则,如根据各节点的各项资源的空闲情况分别对各项资源进行打分,然后对各项资源的分值进行加和得到各节点的总分值,选取总分值最高的节点作为第二目标节点。上述预设调度规则仅作举例用,不作为对本发明的限制。
[0104] 本发明还提供一种容器资源创建装置。
[0105] 参照图4,图4为本发明容器资源创建装置第一实施例的功能模块示意图。
[0106] 如图4所示,所述容器资源创建装置包括:
[0107] 定义获取模块10,用于在接收到容器资源创建请求时,根据所述容器资源创建请求获取容器资源的完整定义;
[0108] 注解读取模块20,用于从所述完整定义中读取得到目标命名空间,并调用预设接口读取所述目标命名空间的注解,得到所述注解中的键值对;
[0109] 资源创建模块30,用于将所述键值对作为节点选择器属性注入至所述完整定义中的容器组定义部分,得到更新后的完整定义,并基于所述更新后的完整定义创建对应的容器资源及容器组。
[0110] 进一步地,所述注解读取模块20包括:
[0111] 注解读取单元,用于调用预设接口读取所述目标命名空间的注解;
[0112] 键值对获取单元,用于基于预设的注解的键对所述注解进行解析,得到所述注解中的键值对。
[0113] 进一步地,所述资源创建模块30包括:
[0114] 第一创建单元,用于将所述更新后的完整定义通过所述预设接口提交至Kubernetes集群中,以通过所述Kubernetes集群的命令行工具创建对应的容器资源;
[0115] 第二创建单元,用于基于所述容器资源创建对应的容器副本,以根据所述容器副本创建容器组。
[0116] 进一步地,所述容器资源创建装置还包括:
[0117] 操作执行模块,用于在接收到用户触发的操作请求时,根据所述操作请求获取对应的请求类型和操作信息,并根据所述请求类型和所述操作信息执行对应的操作;其中,所述操作请求包括节点标签创建请求、命名空间创建请求和命名空间注解添加请求。
[0118] 进一步地,所述容器资源创建装置还包括:
[0119] 节点获取模块,用于获取所述容器组的节点选择器属性,并基于各节点的预设节点标签获取与所述节点选择器属性相匹配的节点,记作第一目标节点;
[0120] 容器组调度模块,用于获取所述第一目标节点的空闲资源信息,根据所述空闲资源信息和预设调度规则确定第二目标节点,并将所述容器组调度至所述第二目标节点上。
[0121] 其中,上述容器资源创建装置中各个模块的功能实现与上述容器资源创建方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。
[0122] 本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有容器资源创建程序,所述容器资源创建程序被处理器执行时实现如以上任一项实施例所述的容器资源创建方法的步骤。
[0123] 本发明计算机可读存储介质的具体实施例与上述容器资源创建方法各实施例基本相同,在此不作赘述。
[0124] 需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
[0125] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0126] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
[0127] 以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈