System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,特别涉及一种k8s自动调度保障方法、装置、设备及存储介质。
技术介绍
1、目前,大型k8s(也即kubernetes,google开源的一个容器编排引擎,是用来管理容器集群的平台)集群中有大量的应用需要部署。这个数量集可能成千上万。当一些突发情况出现时,集群可能由于集群的冗余节点(也即node,k8s集群由多个节点组成,可以理解成服务器。k8s会将pod(k8s中的一种资源。可以理解成容器组。一个pod里面可以包含多个容器)调度到node服务器上,让pod运行不足。而导致大量的应用pending(待定)无法部署。举例来说有以下场景。1)场景1:应用大规模滚动更新时。新pod需要在冗余节点启动。冗余节点出现不足。大量应用pending(待定);场景2:应用大规模上线时。大量pod在冗余节点启动。冗余节点出现不足。大量应用pending;场景3:某几个节点宕机,导致大规模的飘移。会有大量的pod飘移到冗余节点上。冗余节点出现不足。大量应用pending;场景4:突发性流量,突发性扩容,特定业务的特定周期或不定周期内发生的突发事件,导致应用大规模扩容、冗余节点不足致使应用无法启动,且大量应用pending。
2、以上几种场景都会导致大量pod无法启动,进而引起严重的生产事故。在大型公司,业务处于不可用状态时的每一秒都可能都能带来上万元的损失。并且当新节点扩容完成通常都要等待几分钟到几十分钟。此时业务也已经处于不可用状态几分钟甚至几十分钟,导致了大量的损失。
技术实现思路
1、有鉴于此,本专利技术的目的在于提供一种k8s自动调度保障方法、装置、设备及存储介质,能够有效提高业务稳定性以及突发情况的处理效率,并降低了突发情况导致的成本损失。其具体方案如下:
2、第一方面,本申请提供了一种k8s自动调度保障方法,包括:
3、获取预先封装好的与预设k8s集群对应的目标默认调度器;
4、基于所述目标默认调度器以及预设调度频率调用预先配置好的目标保障程序,以接收所述目标保障程序返回的突发事件检测结果;
5、若所述突发事件检测结果表明当前已发生预设突发事件,则基于预设分值计算规则、预设监控程序以及所述目标保障程序进行计算,以便所述目标默认调度器通过接收计算得到的当前各可用节点的节点评分以及目标欺骗值启用欺骗代码段,以便通过所述欺骗代码段进行防御操作;
6、基于所述目标保障程序以及预设扩容计算规则进行计算,并基于得到的目标扩容节点数调用预设扩容程序对所述预设k8s集群进行扩容,以便在扩容完成后所述目标默认调度器恢复正常业务流程。
7、可选的,所述基于所述目标默认调度器以及预设调度频率调用预先配置好的目标保障程序,包括:
8、基于所述目标默认调度器的调度函数以及预设调度频率调用预先配置好的目标保障程序。
9、可选的,所述k8s自动调度保障方法,还包括:
10、通过所述目标保障程序对与所述预设k8s集群对应的应用程序接口服务器进行监听,以对所述预设k8s集群中各容器组以及节点进行监测,并基于实时得到的监测结果确定当前是否已发生所述预设突发事件。
11、可选的,所述k8s自动调度保障方法,还包括:
12、若所述目标保障程序异常或所述突发事件检测结果表明当前未发生所述预设突发事件,则所述目标默认调度器继续执行正常业务流程。
13、可选的,所述基于预设分值计算规则、预设监控程序以及所述目标保障程序进行计算,包括:
14、基于所述目标保障程序获取当前所述预设k8s集群中的可用节点信息;
15、通过与所述预设监控程序对应的接口并利用所述可用节点信息,获取预设时间段内与各所述可用节点对应的节点数据;
16、基于所述节点数据进行计算,以得到当前与各所述可用节点对应的节点评分;
17、基于预设欺骗值计算公式以及与各所述可用节点对应的节点评分进行计算,以得到与各所述可用节点对应的目标欺骗值。
18、可选的,所述目标默认调度器通过接收计算得到的当前各可用节点的节点评分以及目标欺骗值启用欺骗代码段之后,还包括:
19、所述目标默认调度器利用所述目标欺骗值对节点信息快照中的数据进行替换,并将得到的替换后数据更新至缓存中。
20、可选的,所述基于所述目标保障程序以及预设扩容计算规则进行计算,包括:
21、通过所述目标保障程序、与当前处于预设异常状态的节点对应的节点信息以及满足预设类型的待定容器组信息确定目标资源量,并根据所述目标资源量进行计算,以得到相应的目标扩容节点数。
22、第二方面,本申请提供了一种k8s自动调度保障装置,包括:
23、调度器获取模块,用于获取预先封装好的与预设k8s集群对应的目标默认调度器;
24、保障程序调用模块,用于基于所述目标默认调度器以及预设调度频率调用预先配置好的目标保障程序,以接收所述目标保障程序返回的突发事件检测结果;
25、分值计算模块,用于若所述突发事件检测结果表明当前已发生预设突发事件,则基于预设分值计算规则、预设监控程序以及所述目标保障程序进行计算,以便所述目标默认调度器通过接收计算得到的当前各可用节点的节点评分以及目标欺骗值启用欺骗代码段,以便通过所述欺骗代码段进行防御操作;
26、扩容计算模块,用于基于所述目标保障程序以及预设扩容计算规则进行计算,并基于得到的目标扩容节点数调用预设扩容程序对所述预设k8s集群进行扩容,以便在扩容完成后所述目标默认调度器恢复正常业务流程。
27、第三方面,本申请提供了一种电子设备,包括:
28、存储器,用于保存计算机程序;
29、处理器,用于执行所述计算机程序,以实现前述的k8s自动调度保障方法的步骤。
30、第四方面,本申请提供了一种计算机可读存储介质,用于保存计算机程序,所述计算机程序被处理器执行时实现前述的k8s自动调度保障方法的步骤。
31、可见,本申请中,获取预先封装好的与预设k8s集群对应的目标默认调度器;基于所述目标默认调度器以及预设调度频率调用预先配置好的目标保障程序,以接收所述目标保障程序返回的突发事件检测结果;若所述突发事件检测结果表明当前已发生预设突发事件,则基于预设分值计算规则、预设监控程序以及所述目标保障程序进行计算,以便所述目标默认调度器通过接收计算得到的当前各可用节点的节点评分以及目标欺骗值启用欺骗代码段,以便通过所述欺骗代码段进行防御操作;基于所述目标保障程序以及预设扩容计算规则进行计算,并基于得到的目标扩容节点数调用预设扩容程序对所述预设k8s集群进行扩容,以便在扩容完成后所述目标默认调度器恢复正常业务流程。也就是说,本申请通过封装好的目标默认调度器获取目标保障程序实时利用预设监控程序得到的突发事件检测结果,并当确定已发生预设突发事件时通过启用欺骗代码段并通过所述目标保本文档来自技高网...
【技术保护点】
1.一种K8S自动调度保障方法,其特征在于,包括:
2.根据权利要求1所述的K8S自动调度保障方法,其特征在于,所述基于所述目标默认调度器以及预设调度频率调用预先配置好的目标保障程序,包括:
3.根据权利要求1所述的K8S自动调度保障方法,其特征在于,还包括:
4.根据权利要求1所述的K8S自动调度保障方法,其特征在于,还包括:
5.根据权利要求1所述的K8S自动调度保障方法,其特征在于,所述基于预设分值计算规则、预设监控程序以及所述目标保障程序进行计算,包括:
6.根据权利要求1所述的K8S自动调度保障方法,其特征在于,所述目标默认调度器通过接收计算得到的当前各可用节点的节点评分以及目标欺骗值启用欺骗代码段之后,还包括:
7.根据权利要求1至6任一项所述的K8S自动调度保障方法,其特征在于,所述基于所述目标保障程序以及预设扩容计算规则进行计算,包括:
8.一种K8S自动调度保障装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其
...【技术特征摘要】
1.一种k8s自动调度保障方法,其特征在于,包括:
2.根据权利要求1所述的k8s自动调度保障方法,其特征在于,所述基于所述目标默认调度器以及预设调度频率调用预先配置好的目标保障程序,包括:
3.根据权利要求1所述的k8s自动调度保障方法,其特征在于,还包括:
4.根据权利要求1所述的k8s自动调度保障方法,其特征在于,还包括:
5.根据权利要求1所述的k8s自动调度保障方法,其特征在于,所述基于预设分值计算规则、预设监控程序以及所述目标保障程序进行计算,包括:
6.根据权利要求1所述的k...
【专利技术属性】
技术研发人员:林海涛,吕勇,吴辰阳,王伟,岑浩铭,
申请(专利权)人:税友信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。