System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于ETCD数据库文件查询Kubernetes资源的方法及装置制造方法及图纸_技高网

一种基于ETCD数据库文件查询Kubernetes资源的方法及装置制造方法及图纸

技术编号:40164617 阅读:5 留言:0更新日期:2024-01-26 23:37
本发明专利技术涉及云计算技术领域,具体为一种基于ETCD数据库文件查询Kubernetes资源的方法及装置,包括以下步骤:获取命令行参数及标签信息;初始化ETCD的KV存储服务;处理查询请求;输出查询结果;有益效果为:本发明专利技术提出的基于ETCD数据库文件查询Kubernetes资源的方法及装置,从任意ETCD数据库的文件中读取指定的Kubernetes资源key的值,并将值按用户期望格式写入到文件或输出到终端设备上,比如用户可以从Kubernetes集群使用的ETCD数据库备份文件中查询Kubernetes的Secret资源,即指定查询的key值为/registry/secrets,并指定输出格式为Yaml,则将会查询到ETCD数据库文件中的所有Kubernetes的Secret资源的信息。

【技术实现步骤摘要】

本专利技术涉及云计算,具体为一种基于etcd数据库文件查询kubernetes资源的方法及装置。


技术介绍

1、etcd是一个leader-based的强一致且高可用的分布式键值存储系统,主要用于分布式系统或云计算集群的共享配置、服务发现等。etcd是许多其他项目的核心组件,尤其是目前关注度比较高的云原生技术kubernetes将etcd作为其元数据的后端存储。

2、现有技术中,etcd是kubernetes集群的关键组件,出于对etcd分布式存储系统耐用性和高可用性的考量,在生产环境中多以奇数多节点的方式部署及运行etcd集群。所有的kubernetes对象资源都存储在etcd内,定期备份etcd集群数据对于灾难场景下恢复kubernetes集群尤为重要。etcd支持内置快照,可以将etcd集群内保存的应用状态和关键信息数据持久化存储。在一些场景下,例如异常掉电时数据文件损坏致使成员服务启动自检失败,如果一个etcd集群的大多数成员永久失败,则认为etcd集群失败。在这种情况下,kubernetes集群不能对其当前状态进行任何更改,此时需要使用etcd备份的快照对etcd集群进行恢复以修复etcd失败的问题。在使用etcd快照文件进行集群恢复时,如果集群中运行着kube-apiserver、kube-scheduler、kube-controller-manager等组件,尚需重启组件服务,以确保组件不会依赖一些集群恢复前的数据。

3、但是,在一些生产或研发环境的kubernetes集群中,如未对集群资源删除进行保护时,集群维护人员因误操作导致一些元数据信息被从集群中删除,例如集群中的secret资源被从集群中删除,导致集群中的大量pod访问apiserver出现错误,要恢复此故障需要重建secret资源及所有依赖被删除secret资源的pod,或者使用etcd快照文件对集群进行恢复,恢复后仍需重启kubernetes控制平面组件及所有节点的kubelet及kube-proxy组件,以解决组件缓存的资源数据与恢复的数据不一致的问题。现有的技术解决方案,成本较高,且操作复杂,如何低成本的、便捷的恢复集群部分被删除资源,是目前本领域技术人员亟待解决的问题。


技术实现思路

1、本专利技术的目的在于提供一种基于etcd数据库文件查询kubernetes资源的方法及装置,以解决上述
技术介绍
中提出的问题。

2、为实现上述目的,本专利技术提供如下技术方案:一种基于etcd数据库文件查询kubernetes资源的方法,所述方法包括以下步骤:

3、获取命令行参数及标签信息;

4、初始化etcd的kv存储服务;

5、处理查询请求;

6、输出查询结果。

7、优选的,获取命令行参数及标签信息的步骤包括:

8、用户通过命令行参数及标签,指定etcd数据库文件路径、要查询的kubernetes资源的key起始值及终止值、数据输出格式、输出文件或设备;

9、当不指定key终止值时,默认终止值取key起始值且最后一个字符替换为原字符ascii码值加1所对应的字符,kubernetes在etcd数据库中存储的资源默认情况下以/registry作为前缀,以查询pod资源为例,key的起始值为/registry/pods,当未指定key终止值时,根据规则终止值为/registry/podt。

10、优选的,初始化etcd的kv存储服务的步骤包括:

11、入口程序初始化其他各模块,启动kvserver模块,命令交互模块启动其他子模块。

12、优选的,初始化etcd的kv存储服务还包括以下步骤:

13、初始化kvserver模块;

14、初始化数据转换模块;

15、调用kvserver模块时,将用户输入参数映射的结构体对象作为参数传递给kvserver模块的启动方法。

16、优选的,kvserver模块启动方法的操作步骤包括:

17、将参数对象中etcd数据库文件路径值当参数传递给mvcc模块的启动方法以初始化etcd数据库的storage,为kvserver提供查询服务。

18、优选的,处理查询请求的步骤包括:

19、kvserver模块启动方法,根据参数对象中的key值构建此次etcd数据库的查询请求,kvserver模块执行etcd数据库查询。

20、优选的,处理查询请求的步骤还包括:

21、调用mvcc模块的storage创建一个数据库读事务;

22、由数据库读事务执行此次数据库查询;

23、关闭读事务;

24、调用数据转换模块转换方法,将查询结果及用户查询参数传递给数据转换模块。

25、优选的,输出查询结果的步骤包括:

26、数据转换模块数据转换方法,根据用户查询参数及查询结果,将查询数据以用户期望格式写入文件或输出到用户指定设备。

27、优选的,输出查询结果的步骤还包括:

28、初始化kubernetes的运行时scheme,并将kubernetes的api对象注册到scheme;

29、由scheme创建标准的资源序列化及反序列codecfactory;

30、遍历查询结果,依次进行转换,并将每次转换结果存入到kubernetes的runtime.object类型的数组中;

31、构建kubernetes中v1.list类型对象,将runtime.object数组赋值于对象中的items字段/属性;

32、序列化v1.list对象为字节数组,将字节数组转换成用户查询参数中的输出格式,并将结果写入到用户查询参数中指定的文件或设备。

33、一种基于etcd数据库文件查询kubernetes资源装置,包括命令交互模块、kvserver模块、mvcc模块以及数据转换模块;

34、命令交互模块,用于与用户交互,接收用户指定的要读取的etcd数据库文件路径、查询的key的起始值、key的终止值、查询结果数据格式以及查询结果写入文件名,并作为主入口程序,启动其他子流程模块;

35、kvserver模块,用于根据命令交互模块用户输入的etcd数据库文件路径,创建并初始化一个mvcc模块;并基于命令交互模块用户输入的key起始值、终止值,构建查询请求,创建一个读事务,从mvcc模块查询指定的key值,关闭读事务,并将查询结果传输到数据转换模块;

36、mvcc模块,用于接收kvserver模块调用,根据kvserver模块调用时指定的etcd数据库文件路径,创建一个backend,并基于backend构建出store,由store处理kvserver的查询请求;

37、数据转换模块,用于对kvserver模块查询结果本文档来自技高网...

【技术保护点】

1.一种基于ETCD数据库文件查询Kubernetes资源的方法,其特征在于:所述方法包括以下步骤:

2.根据权利要求1所述的一种基于ETCD数据库文件查询Kubernetes资源的方法,其特征在于:获取命令行参数及标签信息的步骤包括:

3.根据权利要求1所述的一种基于ETCD数据库文件查询Kubernetes资源的方法,其特征在于:初始化ETCD的KV存储服务的步骤包括:

4.根据权利要求1所述的一种基于ETCD数据库文件查询Kubernetes资源的方法,其特征在于:初始化ETCD的KV存储服务还包括以下步骤:

5.根据权利要求4所述的一种基于ETCD数据库文件查询Kubernetes资源的方法,其特征在于:KVServer模块启动方法的操作步骤包括:

6.根据权利要求1所述的一种基于ETCD数据库文件查询Kubernetes资源的方法,其特征在于:处理查询请求的步骤包括:

7.根据权利要求1所述的一种基于ETCD数据库文件查询Kubernetes资源的方法,其特征在于:处理查询请求的步骤还包括:

8.根据权利要求1所述的一种基于ETCD数据库文件查询Kubernetes资源的方法,其特征在于:输出查询结果的步骤包括:

9.根据权利要求1所述的一种基于ETCD数据库文件查询Kubernetes资源的方法,其特征在于:输出查询结果的步骤还包括:

10.一种根据权利要求1-9任意一项所述的基于ETCD数据库文件查询Kubernetes资源的方法的基于ETCD数据库文件查询Kubernetes资源装置,其特征在于:包括命令交互模块、KVServer模块、MVCC模块以及数据转换模块;

...

【技术特征摘要】

1.一种基于etcd数据库文件查询kubernetes资源的方法,其特征在于:所述方法包括以下步骤:

2.根据权利要求1所述的一种基于etcd数据库文件查询kubernetes资源的方法,其特征在于:获取命令行参数及标签信息的步骤包括:

3.根据权利要求1所述的一种基于etcd数据库文件查询kubernetes资源的方法,其特征在于:初始化etcd的kv存储服务的步骤包括:

4.根据权利要求1所述的一种基于etcd数据库文件查询kubernetes资源的方法,其特征在于:初始化etcd的kv存储服务还包括以下步骤:

5.根据权利要求4所述的一种基于etcd数据库文件查询kubernetes资源的方法,其特征在于:kvserver模块启动方法的操作步骤包括:

6.根据权利要求1所述的一种基...

【专利技术属性】
技术研发人员:韩坤潘峰唐晓东
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

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

1