基于声明式制造技术

技术编号:39642093 阅读:10 留言:0更新日期:2023-12-09 11:08
本申请涉及一种基于声明式

【技术实现步骤摘要】
基于声明式API实现命令式API生命周期的方法


[0001]本申请涉及计算机的
,尤其是涉及一种基于声明式
API
实现命令式
API
生命周期的方法


技术介绍

[0002]随着容器化与容器编排技术的发展,
Kubernetes 作为主流的容器编排工具,在各个领域中被广泛使用
。Kubernetes 通过组件 Apiserver 提供声明式
API
,其它组件围绕 Apiserver 进行声明式应用开发,开发人员通过声明式
API
管理各项资源,声明式应用开发流程被越来越多的人推广使用

[0003]相较于更加常规的任务式
API
而言,用户在使用声明式
API
时存在一定的困难

以自定义资源创建来说,当声明式
API
被调用时,经过
webhook
校验数据有效后会立刻返回创建成功,但此时创建成功的是资源的期望状态,控制器的处理并没有完成,此时资源处于创建成功但未生效状态,而任务式
API
则会在保证资源生效后再返回,声明式
API
相较于任务式
API
多了资源创建成功但未生效的状态,该状态可能会导致用户在使用时产生疑问,增加了使用的困难程度


技术实现思路

[0004]为了提高用户使用的便利性,本申请提供一种基于声明式
API
>实现命令式
API
生命周期的方法

[0005]第一方面,本申请提供一种基于声明式
API
实现命令式
API
生命周期的方法,采用如下的技术方案:一种基于声明式
API
实现命令式
API
生命周期的方法,应用于部署于
K8S
框架
master
节点上的
API
代理,所述方法包括:响应于期望任务的创建操作,进行
API
调用,获取期望任务数据和任务标识;基于所述任务标识判断所述期望任务是否存在;若所述任务标识判断所述期望任务存在,则获取重试
API
逻辑;基于所述重试
API
逻辑处理所述期望任务;若所述任务标识判断所述期望任务不存在,则基于所述期望任务数据对所述期望任务进行处理,生成处理结果;将所述处理结果返回至所述创建操作的显示页面

[0006]通过采用上述技术方案,在进行期望任务的创建时,在
API
代理中进行创建操作,即将声明式
API
调用封装为任务式
API
,在封装后的
API
调用中,能后在对期望任务进行处理时将处理结果返回至显示页面,且在彻底成功会才会返回,用户可以根据返回的信息确定准确的创建结果,从而提高用户使用的便利性

[0007]可选的,所述基于所述重试
API
逻辑处理所述期望任务包括:基于所述任务标识查找所述期望任务;
当未查找到所述期望任务时,生成并返回处理失败信息;当查找到所述期望任务时,基于所述任务标识确定所述期望任务的任务阶段;判断所述任务阶段是否为服务阶段;若所述任务阶段为服务阶段,则生成并返回处理成功信息;若所述任务阶段不为服务阶段,则判断所述任务阶段是否为失败;若所述任务阶段为失败,则生成并返回处理失败信息;若所述任务阶段不为失败,则重复所述基于所述任务标识确定所述期望任务的任务阶段的步骤

[0008]可选的,所述基于所述期望任务数据对所述期望任务进行处理,生成处理结果包括:获取标准数据结构,基于所述标准数据结构验证所述期望任务数据是否符合标准;若所述期望任务数据符合标准,则将所述期望任务数据写入预设数据库;获取自定义资源,基于所述期望状态对所述自定义资源进行调整,生成创建结果;基于所述创建结果对所述任务阶段进行设置,生成并返回处理信息;若所述期望任务数据不符合标准,则生成并返回处理失败信息

[0009]可选的,还包括:获取任务超时时长和所述期望任务的当前处理时长;判断所述当前处理时长是否小于所述任务超时时长;若所述当前处理时长小于所述任务超时时长,则继续所述基于所述期望状态对所述自定义资源进行调整的步骤;若所述当前处理时长不小于所述任务超时时长,则删除所述期望任务,并回滚至
API
调用前状态

[0010]可选的,还包括:当出现服务异常时,重新启动所述
API
代理;获取所述
API
代理中所有的期望任务资源和所述期望任务资源对应的删除时间;基于所述删除时间对所述期望任务资源进行生命周期进程管理

[0011]可选的,所述基于所述删除时间对所述期望任务资源进行生命周期进程管理包括:基于所述删除时间判断所述期望任务资源是否超时;若所述期望任务资源超时,则回滚所述期望任务资源,删除所述期望任务资源;若所述期望任务资源未超时,则重复获取所述期望任务资源的资源状态;获取所述资源状态的处理方案;基于所述处理方案对所述期望任务资源进行生命周期进程管理

[0012]第二方面,本申请提供一种基于声明式
API
实现命令式
API
生命周期的系统,所述系统应用于如第一方面所述的基于声明式
API
实现命令式
API
生命周期的方法,采用如下的技术方案:一种基于声明式
API
实现命令式
API
生命周期的系统,包括:在
K8S
框架的
API
调用中,在
master
节点上增加一层
API
代理,用于实现任务资源的
管理功能,通过
API
调用返回期望任务的终态结果;
API
代理进程在
K8S
框架
master
节点部署后,可以在任意具有访问集群功能的节点上启动

[0013]通过采用上述技术方案,在进行期望任务的创建时,在
API
代理中进行创建操作,即将声明式
API
调用封装为任务式
API
,在封装后的
API
调用中,能后在对期望任务进行处理时将处理结果返回至显示页面,且在彻底成功会才会返回,用户可以根据返回的信息确定准确的创建结果,从而提高用户使用的便利性

[0014]第三方面,本申请提供一种基于声明式
API
实现命令式
API
生命周期的装置,采用如下的技术方案:一种基于声明式
API
实现命令式
API
生命周期的装置,包括:任本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.
一种基于声明式
API
实现命令式
API
生命周期的方法,其特征在于,应用于部署于
K8S
框架
master
节点上的
API
代理,所述方法包括:响应于期望任务的创建操作,进行
API
调用,获取期望任务数据和任务标识;基于所述任务标识判断所述期望任务是否存在;若所述任务标识判断所述期望任务存在,则获取重试
API
逻辑;基于所述重试
API
逻辑处理所述期望任务;若所述任务标识判断所述期望任务不存在,则基于所述期望任务数据对所述期望任务进行处理,生成处理结果;将所述处理结果返回至所述创建操作的显示页面
。2.
根据权利要求1所述的方法,其特征在于,所述基于所述重试
API
逻辑处理所述期望任务包括:基于所述任务标识查找所述期望任务;当未查找到所述期望任务时,生成并返回处理失败信息;当查找到所述期望任务时,基于所述任务标识确定所述期望任务的任务阶段;判断所述任务阶段是否为服务阶段;若所述任务阶段为服务阶段,则生成并返回处理成功信息;若所述任务阶段不为服务阶段,则判断所述任务阶段是否为失败;若所述任务阶段为失败,则生成并返回处理失败信息;若所述任务阶段不为失败,则重复所述基于所述任务标识确定所述期望任务的任务阶段的步骤
。3.
根据权利要求1所述的方法,其特征在于,所述基于所述期望任务数据对所述期望任务进行处理,生成处理结果包括:获取标准数据结构,基于所述标准数据结构验证所述期望任务数据是否符合标准;若所述期望任务数据符合标准,则将所述期望任务数据写入预设数据库;获取自定义资源,基于所述期望状态对所述自定义资源进行调整,生成创建结果;基于所述创建结果对所述任务阶段进行设置,生成并返回处理信息;若所述期望任务数据不符合标准,则生成并返回处理失败信息
。4.
根据权利要求3所述的方法,其特征在于,还包括:获取任务超时时长和所述期望任务的当前处理时长;判断所述当前处理时长是否小于所述任务超时时长;若所述当前处理时长小于所述任务超时时长,则继续所述基于所述期望状态对所述自定义资源进行调整的步骤;若所述当前处理时长不小于所述任务超时时长,则删除所述期望任务,并回滚至
API
调用前状态
。5.
根据权利要求4所述的方法,其特征在于,还包括:当出现服务异常时,重新启动所述
API
代理;获取所述
API
代...

【专利技术属性】
技术研发人员:胡睿哲张凯
申请(专利权)人:北京志凌海纳科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1