System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于k8s集群自适应时间跳变的容器自恢复方法及系统技术方案_技高网

一种基于k8s集群自适应时间跳变的容器自恢复方法及系统技术方案

技术编号:40467767 阅读:6 留言:0更新日期:2024-02-22 23:22
本发明专利技术公开了一种基于k8s集群自适应时间跳变的容器自恢复方法及系统。包括:基于VPX服务器的k8s集群部署,服务运行状态正常;系统发生时间跳变,由正常时间跳变到过去时间或未来时间;若超过k8s集群证书有效期,则k8s集群无法正常运行;若在k8s集群证书有效期内,如果容器组中业务容器未发生重启,k8s集群运行正常;如果容器组中业务容器发生重启,进行恢复操作。本发明专利技术提升k8s集群对系统时间跳变的容错性,支撑在长期加电环境或可靠性要求较高的环境中信息系统稳定运行。

【技术实现步骤摘要】

本专利技术涉及国产信息系统领域,尤其涉及一种基于k8s集群自适应时间跳变的容器自恢复方法及系统


技术介绍

1、随着容器、微服务、serverless等云原生技术发展,在国产自主可控领域,k8s集群已逐渐成为信息系统的基底,由k8s集群对下融合、管理计算、存储、网络等资源,实现资源、调度的一体化、弹性供给,对上为信息系统提供高可用、负载均衡、服务治理、监控运维等云服务能力,支撑信息系统“云+端”使用模式,提升信息系统效能和稳定性。

2、k8s集群通常由管理节点和计算节点组成,管理节点是微云环境的控制中心,负责整个微云的管理和控制,用户给管理节点发送控制指令,管理节点接收指令后负责具体执行过程;计算节点是微云环境中真正的执行任务的负载节点,每个计算节点负责承载管理节点分发的微应用(以容器形式)创建、启停、销毁等全生命周期管理,并监控微应用的运行状态。

3、在实际应用中,因存在时钟源不稳定或网络延迟或服务器rtc电池耗尽等方面问题,导致基于国产vpx服务器(包含8个计算模块,每个计算模块配置:为cpu:双路龙芯3a4000处理器、主频1.5ghz,内存:32g,硬盘:1tb,操作系统:中标麒麟服务器操作系统)构建的k8s集群中个别或全部计算节点时间存在向过去或未来跳变的可能;通常,在时间跳变期间,如果未发生因硬件故障或软件异常(数据库连接失败、服务自检异常或内存泄露等)导致容器组中业务容器在该计算节点上重启问题,则时间恢复正常后,运行于k8s集群之上服务状态则保持正常;反之,如果触发了该计算节点上容器组中业务容器重启事件,因k8s集群的传统计算代理是采用基于业务容器创建时间戳排序方法,选取业务容器作为检测对象,而该排序方法与当前计算节点的操作系统时间存在关联性,易导致计算代理选取错误业务容器作为检测对象,从而造成容器组中业务容器存在无法自愈的风险,影响信息系统的可靠性和稳定性。

4、在时间跳变期间,基于k8s集群作为基础支撑的信息系统存在如下问题:

5、1、计算节点时间由正常时间跳变到过去时间,在过去时间内如果容器组中业务容器发生重启问题,因业务容器创建过程中触发名称冲突导致容器组状态无法自恢复,业务服务处于不可用状态。具体现象为当时间发生向过去跳变且容器组中业务容器发生重启时,进入到该向过去跳变时间周期内。

6、11)计算代理按照设定策略(即计算代理周期性检查并上报计算代理所在计算节点上运行的容器组状态信息,检查周期可自定义,默认周期1秒一次)对容器组进行第一次状态检测时,首先根据创建时间戳对容器组中业务容器进行排序,对时间戳较新的容器【cn_0】做状态检查,发现该业务容器为退出状态,k8s集群管理节点据此仍然判定与其相对应的容器组状态处于异常状态,业务服务能力处于不可用状态;其次,触发k8s集群管理节点下发指令,由计算代理建立了名为【cn_1】的业务容器;最后,【cn_1】业务容器创建成功且状态设置为“up”;

7、12)计算代理按照设定策略对容器组进行第二次状态检测时,首先根据创建时间戳对业务容器进行排序,而相对于当前时间,处于退出状态的业务容器【cn_0】创建时间戳是一个过去时间,与第一次检测时建立名为【cn_1】业务容器的创建时间戳相比,业务容器【cn_0】的时间戳仍为最新时间,所以计算代理排序后,视业务容器【cn_0】仍为最新容器,检测其为退出状态,k8s集群管理节点据此仍然判定与其相对应的容器组状态处于异常状态,业务服务能力处于不可用状态。其次,触发k8s集群管理节点下发指令,计算代理按照命名规则仍然试图重新创建一个名为【cn_1】的容器,与进入到该向过去跳变时间周期内第一次状态检测后创建名为【cn_1】的容器发生名称冲突,创建失败;

8、13)计算代理按照设定策略周期巡检,原理类似,不断发现容器【cn_0】的时间戳仍为最新时间并作为检测对象,容器组状态处于异常状态,仍然创建名为【cn_1】的容器服务,发生命名冲突,陷入死循环。

9、2、计算节点时间由正常时间跳变到未来时间,在未来时间内如果容器组中业务容器发生重启,回到正常时间再次发生重启,因业务容器创建过程中触发名称冲突导致容器组状态无法自恢复,业务服务处于不可用状态。具体现象为当时间发生向未来跳变且业务容器发生重启时,进入到该向未来跳变时间周期内。

10、21)计算代理按照设定策略第一次作状态检测时,首先根据创建时间戳对对容器组中业务容器进行排序,对时间戳较新的容器【cn_0】做状态检查,发现该业务容器为退出状态,k8s集群管理节点据此判定与其相对应的容器组状态处于异常状态,业务服务能力处于不可用状态;其次,触发k8s集群管理节点下发指令,由计算代理按照命名规则尝试创建名为【cn_1】的业务容器;最后,【cn_1】容器创建成功且状态设置为“up”。此时,在未来时间内,计算代理进入第二次检测,根据时间排序,将【cn_1】作为检测对象,该容器状态正常,则k8s集群管理节点据此判定与其相对应的容器组状态处于正常状态,业务服务能力处于可用状态;

11、22)而当计算节点系统时间从未来重新跳回到正常时间,即在该周期内,【cn_1】容器再次发生重启时,计算代理按照设定策略第一次作状态检测时,首先根据创建时间戳对容器组中业务容器进行排序,发现在未来创建的容器【cn_1】为最新容器,并对其进行状态检测,发现该业务容器为退出状态,k8s集群管理节点据此判定与其相对应的容器组状态处于异常状态,业务服务能力处于不可用状态;其次,触发k8s集群管理节点下发指令,由计算代理按照命名规则试图创建一个名为【cn_2】的容器,【cn_2】容器创建成功且状态设置为“up”;

12、23)此时,每个容器组中允许存在处于退出状态容器的最大数量为1配置,计算代理将【cn_0】容器进行回收、销毁,只保留有【cn_1】容器,该容器作为备份容器,处于退出状态;

13、24)计算代理进入第二次巡检,首先根据创建时间戳对容器进行排序,发现在未来创建的容器【cn_1】仍为最新容器,并对其进行状态检测,检测其为退出状态,计算代理按照命名规则试图创建一个名为【cn_2】的容器,发生容器名称冲突错误,与其相对应的容器组状态无法恢复正常,业务服务进入不可用状态;

14、25)计算代理按照设定策略周期巡检,原理类似,不断发现退出容器【cn_1】的时间戳仍为最新时间,仍然创建名为【cn_2】的业务容器,发生命名冲突,陷入死循环。


技术实现思路

1、本专利技术旨在至少解决现有技术中存在的技术问题之一。

2、本专利技术的技术方案是:一种基于k8s集群自适应时间跳变的容器自恢复方法,包括:

3、基于vpx服务器的k8s集群部署,服务运行状态正常;

4、系统发生时间跳变,由正常时间跳变到过去时间或未来时间;

5、若超过k8s集群证书有效期,则k8s集群无法正常运行;

6、若在k8s集群证书有效期内,

7本文档来自技高网...

【技术保护点】

1.一种基于k8s集群自适应时间跳变的容器自恢复方法,其特征在于,包括:

2.根据权利要求1所述的一种基于k8s集群自适应时间跳变的容器自恢复方法,其特征在于,基于VPX服务器的k8s集群部署包括:

3.根据权利要求2所述的一种基于k8s集群自适应时间跳变的容器自恢复方法,其特征在于,所述管理节点和计算节点分别包括计算代理,

4.根据权利要求3所述的一种基于k8s集群自适应时间跳变的容器自恢复方法,其特征在于,

5.根据权利要求1所述的一种基于k8s集群自适应时间跳变的容器自恢复方法,其特征在于,在k8s集群证书有效期内,在过去时间内容器组中业务容器发生重启,处理过程包括:

6.根据权利要求1所述的一种基于k8s集群自适应时间跳变的容器自恢复方法,其特征在于,在k8s集群证书有效期内,在未来时间内容器组中业务容器发生重启,处理过程包括:

7.根据权利要求2所述的一种基于k8s集群自适应时间跳变的容器自恢复方法,其特征在于,所述管理节点采用“1主2从”集群部署模式,所述管理节点包括元数据库,所述元数据库采用“1主2从”集群部署模式,元数据库以systemd方式运行于计算模块上。

8.根据权利要求2所述的一种基于k8s集群自适应时间跳变的容器自恢复方法,其特征在于,还包括反向代理,通过前置部署方式将反向代理以静态容器组方式部署于各计算节点之上,反向代理配置3个接口服务器访问地址,通过反向代理将运行于计算节点的计算代理请求按照负载策略分发至运行于各管理节点之上的接口服务器并由其并行处理请求。

9.根据权利要求2所述的一种基于k8s集群自适应时间跳变的容器自恢复方法,其特征在于,采用内部集群IP方式暴露提供统一的k8s集群管理访问入口。

10.一种基于k8s集群自适应时间跳变的容器自恢复系统,其特征在于,包括:

...

【技术特征摘要】

1.一种基于k8s集群自适应时间跳变的容器自恢复方法,其特征在于,包括:

2.根据权利要求1所述的一种基于k8s集群自适应时间跳变的容器自恢复方法,其特征在于,基于vpx服务器的k8s集群部署包括:

3.根据权利要求2所述的一种基于k8s集群自适应时间跳变的容器自恢复方法,其特征在于,所述管理节点和计算节点分别包括计算代理,

4.根据权利要求3所述的一种基于k8s集群自适应时间跳变的容器自恢复方法,其特征在于,

5.根据权利要求1所述的一种基于k8s集群自适应时间跳变的容器自恢复方法,其特征在于,在k8s集群证书有效期内,在过去时间内容器组中业务容器发生重启,处理过程包括:

6.根据权利要求1所述的一种基于k8s集群自适应时间跳变的容器自恢复方法,其特征在于,在k8s集群证书有效期内,在未来时间内容器组中业务容器发生重启,处理过程包括:

【专利技术属性】
技术研发人员:周思远周春云王玉琳郭慧王如意任萍
申请(专利权)人:扬州万方科技股份有限公司
类型:发明
国别省市:

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

1