(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202211290188.9
(22)申请日 2022.10.21
(71)申请人 之江实验室
地址 311100 浙江省杭州市余杭区中泰街
道之江实验室南湖总部
(72)发明人 郑焕波 陈光 李勇 程宏才
曾令仿 王宏升 赵瑞芳
(74)专利代理 机构 杭州浙科专利事务所(普通
合伙) 33213
专利代理师 孙孟辉 杨小凡
(51)Int.Cl.
G06F 9/48(2006.01)
G06F 9/445(2018.01)
(54)发明名称
一种k8s容器云平台中CRD应用集成调用方
法与装置
(57)摘要
本发明公开了一种k8s容器云平台中CRD应
用集成调用方法与装置, 基于k8s的CRD模块, 定
义容器应用资源对象, 包括控制信息和资源信
息; 构建其他CRD资源注册机制, 注册其他CRD资
源信息, 并保存对其控制器信息, 刷新并读取控
制器信息, 通过反射的方式运行其他CRD资源的
控制器, 使得用于运行控制器的最小单元上, 能
够运行多个其他CRD资源的控制器; 将控制器部
署到K8s中, 用户提交控制信息和已注册的其他
CRD资源的资源信息, 系统根据控制信息执行控
制逻辑, 根据资源信息提交相应计算任务到k8s
容器云平台中, 已注册的其他CRD资源的控制器
对计算任务进行处理; 从而达到减少了资源的占
用的目的。
权利要求书2页 说明书11页 附图4页
CN 115357369 A
2022.11.18
CN 115357369 A
1.一种k8s容器云平台 中CRD应用集成调用方法, 其特 征在于包括如下步骤:
步骤S1: 构建容器CRD应用系统, 基于容器编排引擎k8s的自定义资源定义CRD模块, 定
义容器应用ContainerApplication资源对象, 容器应用ContainerApplication 资源对象包
括控制信息和资源Resource信息, 资源Resource信息用于引用其他CRD资源; 定义容器应用
的控制器ContainerApplication ‑controller, 根据控制信息的类型控制计算任务的执行
步骤, 根据资源Resource信息调用其 他CRD资源完成计算任务;
步骤S2: 容器CRD应用系统中, 构建其他CRD资源注册机制, 获取用户上传的其他CRD资
源信息, 并对其进 行注册, 将已注册的其他CRD资源的控制器信息进 行保存, 并刷新, 读取保
存的控制器信息, 并通过反射的方式运行其他CRD资源的控制器, 使得用于运行控制器的最
小单元pod上, 能够运行多个其 他CRD资源的控制器;
步骤S3: 将容器应用的控制器部署到K8s容器云平台中, 用户提交yaml配置文件, 包含
控制信息和已注册的其他CRD资源的资源Resource信息, 容器CRD应用系统的控制器监控到
yaml配置文件后, 根据控制信息执行控制逻辑, 根据资源Resource信息提交相应计算任务
到k8s容器云平台 中, 已注册的其他CRD资源的控制器对计算任务进行处 理。
2.根据权利 要求1所述的一种k8s容器云平台中CRD应用集成调用方法, 其特征在于: 所
述步骤S1中, 控制信息包括步骤字段steps、 管道字段pipeline、 有向无环图字段DAG, 容器
应用的控制器ContainerApplic ation‑controller根据控制信 息完成控制逻辑, 当步骤字
段steps启动时, 对应的资源并行运行资源节 点, 将资源节 点并行提交到k8s容器 云平台; 当
管道字段pipeline启动时, 根据管道字段pipeline中定义的资源节点顺序进行调度执行,
将资源节点一步一步的提交到k8s容器云平台; 当有向无环图字段DAG启动时, 根据有向无
环图字段DAG中的依赖 关系构建资源节点的执行顺序; 所述资源节 点为自定义资源和/或资
源Resource信息代 表的其他CRD资源。
3.根据权利 要求2所述的一种k8s容器云平台中CRD应用集成调用方法, 其特征在于: 根
据资源节 点内容执行计算任务, 其中, 对于容器container类型的计算任务, 在k8s容器 云平
台中启动一个最小单元pod执行任务, 对于资源Resource类型的计算任务, 根据资源
Resource信息的类型, 在k8s容器云平台 中启动已注 册的其他CRD资源执 行任务。
4.根据权利 要求1所述的一种k8s容器云平台中CRD应用集成调用方法, 其特征在于: 所
述步骤2包括如下步骤:
步骤S2.1: 构建接口并通过接口获取用户上传的CRD应用信息, 包括: 注册CRD的源信
息、 CRD定义文件、 资源 对象内容声明文件type.go、 CRD控制器文件;
步骤S2.2: 存 储并验证CRD应用信息;
步骤S2 .3 : 根据上传的资源对象内容声明文件type .go , 生成资源模板
ResourceTemplate, 包含资源对象定义信息, 当上传多个CRD应用时, 生成多个资源模板
ResourceTemplate的子类;
步骤S2.4: 将已注册的其他CRD资源的CRD控制器文件保存到关联容器map中, 关联容器
map保存了所有的已注册CRD资源的CRD控制器文件, 当注册完CRD时, 对关联容器map 进行同
步刷新, 并读取关联容器 map保存的CRD控制器文件, 通过反射的方式运行控制器, 使 得用于
运行容器应用的控制器ContainerApplication ‑controller的最小单元pod上, 能够运行多
个已注册的其他CRD资源的子控制器。权 利 要 求 书 1/2 页
2
CN 115357369 A
25.根据权利 要求4所述的一种k8s容器云平台中CRD应用集成调用方法, 其特征在于: 所
述步骤S2.1中, 在控制器中设置接口, 并为最小单元pod设置代理, 使得接口运行于控制器
所在的最小单 元pod, 通过k8s的服 务service组件 对外暴露。
6.根据权利 要求4所述的一种k8s容器云平台中CRD应用集成调用方法, 其特征在于: 所
述步骤S2.3中, 资源 对象内容声明文件type.go。
7.根据权利 要求4所述的一种k8s容器云平台中CRD应用集成调用方法, 其特征在于: 所
述步骤S2.3中, 生成资源模板ResourceTemplate还包含其他控制信息, 通过接口拓展的方
式, 设置增删改查。
8.根据权利 要求1所述的一种k8s容器云平台中CRD应用集成调用方法, 其特征在于: 所
述步骤S3包括如下步骤:
步骤S3.1: 用户编写yaml配置文件, 类型为容器应用ContainerApp lication, 包含控制
信息和已注 册的其他资源的资源Resource信息;
步骤S3.2: 容器CRD应用系统的控制器监控到yaml配置文件, 并根据控制信息控制计算
任务的执 行顺序;
步骤S3.3: 对于容器container类型的计算任务, 在k8s容器云平台中启动一个最小单
元pod执行任务;
步骤S3.4: 对于资源Resource类型的计算任务, 根据资源Resource信息的类型, 在k8s
容器云平台 中启动已注 册的其他CRD资源执 行任务。
9.根据权利 要求8所述的一种k8s容器云平台中CRD应用集成调用方法, 其特征在于: 所
述步骤S3 .4中 , 控制器将资源Resource类型的 计算任务解析成资源模板
resourceTemplate, 创建增删改查任务, 将资源模板resourceTemplate中的已注册的其他
CRD资源的资源对象信息提交到k8s容器云平 台中, 已注册的其他CRD资源的控制器对计算
任务进行处理; 和/或当资源模板resourceTemplate中包含用户自定义的其他控制信息时,
则需要加载用户上传的控制逻辑, 并进行处 理。
10.一种k8s容器云平台中CRD应用集成调用装置, 其特征在于, 包括存储器和一个或多
个处理器, 所述存储器中存储有可执行代码, 所述一个或多个处理器执行所述可执行代码
时, 用于实现权利要求1 ‑9中任一项所述的一种k8s容器云平台 中CRD应用集成调用方法。权 利 要 求 书 2/2 页
3
CN 115357369 A
3
专利 一种k8s容器云平台中CRD应用集成调用方法与装置
文档预览
中文文档
18 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共18页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 16:31:22上传分享