高危操作的处理方法、计算机可读存储介质和电子设备与流程

文档序号:33509969发布日期:2023-03-21 22:11阅读:53来源:国知局
高危操作的处理方法、计算机可读存储介质和电子设备与流程

1.本技术涉及k8s平台监控领域,具体而言,涉及一种高危操作的处理方法、装置、计算机可读存储介质和电子设备。


背景技术:

2.k8s平台资源对象的运行状态对整个平台的健康运行至关重要,所以资源对象的监控和告警很有必要,尤其是针对资源对象的高危操作。k8s提供了监听资源对象事件的工具包,第三方监控开源组件一般只是监控和获取资源对象的最新状态,但是都无法对一些高危操作精准的监控和拦截。


技术实现要素:

3.本技术的主要目的在于提供一种高危操作的处理方法、装置、计算机可读存储介质和电子设备,以解决现有技术中k8s平台无法对一些高危操作精准的监控和拦截的问题。
4.根据本发明实施例的一个方面,提供了一种高危操作的处理方法,包括:获取目标对象和高危操作,其中,所述目标对象是指k8s平台运行过程中需要监控的对象,所述高危操作是指导致所述k8s平台运行异常的操作;通过回调函数在所述k8s平台运行过程中检测处理操作,所述处理操作包括以下至少之一:增加操作、删除操作、更新操作,所述回调函数是所述k8s平台的client-go的informer中封装的list-watch api函数;在所述处理操作为所述高危操作的情况下控制所述k8s平台暂停运行。
5.可选地,所述高危操作有多种类型,在控制所述k8s平台暂停运行之后,所述方法还包括:根据所述高危操作的类型生成告警信息,所述告警信息用于提示当前处理操作为所述高危操作以及所述高危操作的等级;将所述告警信息发送至目标终端,并接收所述目标终端的回复信息;根据所述回复信息,确定是否控制所述k8s平台继续运行。
6.可选地,所述告警信息包括第一告警信息、第二告警信息、第三告警信息、第四告警信息和第五告警信息,所述第一告警信息表示所述高危操作的类型是第一类型,所述第二告警信息表示所述高危操作的类型是第二类型,所述第三告警信息表示所述高危操作的类型是第三类型,所述第四告警信息表示所述高危操作的类型是第四类型,所述第五告警信息表示所述高危操作的类型是第五类型,多个所述高危操作的异常等级的按照从高到低的顺序是所述第一类型的所述高危操作、所述第二类型的所述高危操作、所述第三类型的所述高危操作、所述第四类型的所述高危操作、所述第五类型的所述高危操作,根据所述回复信息,确定是否控制所述k8s平台继续运行,包括:在收到的所述回复信息为第一回复信息、第二回复信息、第三回复信息和第四回复信息中的至少之一的情况下,确定控制所述k8s平台继续运行,并延迟控制所述k8s平台继续运行,所述第一回复信息、第二回复信息、第三回复信息和第四回复信息均表示允许继续操作的信息;在收到的所述回复信息为第五回复信息的情况下,确定不控制所述k8s平台继续运行,并控制所述k8s平台结束运行,所述第五回复信息表示不允许继续操作的信息。
7.可选地,所述方法还包括:在未接收到所述回复信息的时长大于目标时长的情况下,控制所述k8s平台结束运行,或者,在未接收到所述回复信息的时长大于所述目标时长的情况下,控制所述k8s平台继续运行。
8.可选地,所述方法还包括:在已收到所述回复信息的情况下,根据所述回复信息的类型,在运行日志中生成对应的告警标识;获取在所述k8s平台暂停运行前的k8s平台运行数据,并备份所述k8s平台运行数据。
9.可选地,在获取在所述k8s平台暂停运行前的k8s平台运行数据,并备份所述k8s平台运行数据之后,所述方法还包括:在确定控制所述k8s平台继续运行,并延迟控制所述k8s平台继续运行的情况下,获取执行完所述高危操作后的k8s平台运行数据;检测执行完所述高危操作后的k8s平台运行数据是否异常;在执行完所述高危操作后的k8s平台运行数据异常的情况下,控制所述k8s平台结束运行,并恢复执行所述高危操作前的k8s平台运行数据;在执行完所述高危操作后的k8s平台运行数据正常的情况下,控制所述k8s平台继续运行。
10.可选地,根据所述高危操作的类型生成告警信息,包括:获取触发所述高危操作的次数;根据所述高危操作的类型以及触发所述高危操作的次数生成所述告警信息。
11.根据本发明实施例的另一方面,还提供了一种高危操作的处理装置,包括:第一获取单元,用于获取目标对象和高危操作,其中,所述目标对象是指k8s平台运行过程中需要监控的对象,所述高危操作是指导致所述k8s平台运行异常的操作;第一检测单元,用于通过回调函数在所述k8s平台运行过程中检测处理操作,所述处理操作包括以下至少之一:增加操作、删除操作、更新操作,所述回调函数是所述k8s平台的client-go的informer中封装的list-watch api函数;第一处理单元,用于在所述处理操作为所述高危操作的情况下控制所述k8s平台暂停运行。
12.根据本发明实施例的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,所述程序执行任意一种所述的方法。
13.根据本发明实施例的再一方面,还提供了一种电子设备,包括:一个或多个处理器,存储器以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行任意一种所述的方法。
14.在本发明实施例中,首先获取目标对象和高危操作,之后通过回调函数在k8s平台运行过程中检测处理操作,最后在处理操作为高危操作的情况下控制k8s平台暂停运行。该方案中,通过对回调函数进行扩展,可以对目标对象的高危操作实现精准地监控,并在检测到高危操作的情况下,可以中断k8s平台运行,这样可以对高危操作进行拦截,进而解决了现有技术中k8s平台无法对一些高危操作精准的监控和拦截的问题。
附图说明
15.构成本技术的一部分的说明书附图用来提供对本技术的进一步理解,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
16.图1示出了根据本技术的实施例的一种高危操作的处理方法的流程示意图;
17.图2示出了本技术的k8s平台的架构示意图;
18.图3示出了根据本技术的实施例的一种高危操作的处理装置的结构示意图;
19.图4示出了另一种高危操作的处理方法的流程示意图。
具体实施方式
20.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
21.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
22.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
23.应该理解的是,当元件(诸如层、膜、区域、或衬底)描述为在另一元件“上”时,该元件可直接在该另一元件上,或者也可存在中间元件。而且,在说明书以及权利要求书中,当描述有元件“连接”至另一元件时,该元件可“直接连接”至该另一元件,或者通过第三元件“连接”至该另一元件。
24.为了便于描述,以下对本技术实施例涉及的部分名词或术语进行说明:
25.k8s:kubernetes简称k8s,是google大规模容器管理技术borg的开源版本,是开源的容器集群管理系统,可以实现容器的编排。
26.资源对象:k8s平台上的内容都被抽象为资源,如pod、service、node等都是资源;资源对象是资源的是持久化的实体,如某个具体的pod、某个具体的node。
27.informer:informer是k8s官方库client-go中的一个核心工具包,封装了list-watch api,可以对k8s资源对象的全部事件进行监控。
28.在一些方案中,可以实现k8s平台的集群事件机制的监控,但是依赖额外的监测组件(node-problem-find组件)和日志组件(evenetrouter和logstash开源组件),这里的集群事件监控主要是异常信息的上报机制;还有一些方案中,实现了k8s平台的容器云平台监控,但是所采用的第三方的监控和告警组件是对监控数据是否达到报警阈值和监控数据的最新状态的报警;但是上面的监控方案的精确度较低,同时在监测到高危操作时是无法拦截的。
29.正如背景技术中所说的,现有技术中k8s平台无法对一些高危操作精准的监控和拦截,为了解决上述问题,本技术的一种典型的实施方式中,提供了一种高危操作的处理方法、装置、计算机可读存储介质和电子设备。
30.根据本技术的实施例,提供了一种高危操作的处理方法。
31.图1是根据本技术实施例的高危操作的处理方法的流程图。如图1所示,该方法包括以下步骤:
32.步骤s101,获取目标对象和高危操作,其中,上述目标对象是指k8s平台运行过程中需要监控的对象,上述高危操作是指导致上述k8s平台运行异常的操作;
33.具体地,可以预先定义需要监控的k8s平台中的目标对象和高危操作,还可以定义高危等级以及对应的处理措施。例如,目标对象可以是pod、services、configmap。高危操作可以是目标对象的删除操作、增加副本操作、更新操作,例如删除指定容器:kubectl delete deployment《deployment name》;删除指定服务:kubectl delete service《service name》;删除指定配置:kubectl delete-f《yaml》。其中,需要监控的目标对象和高危操作都是可以灵活定义和灵活配置的。
34.步骤s102,通过回调函数在上述k8s平台运行过程中检测处理操作,上述处理操作包括以下至少之一:增加操作、删除操作、更新操作,上述回调函数是上述k8s平台的client-go的informer中封装的list-watch api函数;
35.具体地,informer是k8s官方库client-go中的一个核心工具包,封装了list-watch api,list-watch监控事件消息的同时还可以保证消息的实时性、顺序性、可靠性、高性能等特性。采用informer可以对k8s平台中的对象的全部事件进行监控并交给回调函数处理,回调函数结束后后续的工作队列处理业务逻辑流程;官方提供的回调函数其实只是对外提供了接口,需要自主实现回调函数的具体逻辑。k8s平台提供的informer中的回调函数其实是空函数,无法对高危事件进行监控和后续的告警等操作,本发明对回调函数进行扩展,提出的针对高危操作的告警和处理方法可以及时避免高危操作导致的k8s平台故障风险,减少人工运维成本。
36.上述的步骤s102中,通过回调函数可以对k8s平台中的目标对象的高危操作进行监控和过滤,进而可以实现对k8s平台的高危操作的精准监控。
37.步骤s103,在上述处理操作为上述高危操作的情况下控制上述k8s平台暂停运行。
38.上述的步骤s103中,在通过回调函数已经确定操作是高危操作的情况下,可以及时中断k8s平台运行,这样可以保证k8s平台运行正常,而不会由于高危操作导致k8s运行异常。
39.上述的方法中,首先获取目标对象和高危操作,之后通过回调函数在k8s平台运行过程中检测处理操作,最后在处理操作为高危操作的情况下控制k8s平台暂停运行。该方案中,通过对回调函数进行扩展,可以对目标对象的高危操作实现精准地监控,并在检测到高危操作的情况下,可以中断k8s平台运行,这样可以对高危操作进行拦截,进而解决了现有技术中k8s平台无法对一些高危操作精准的监控和拦截的问题。
40.需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
41.具体地,本方案的k8s平台的架构如图2所示,通过k8s的api server来将运行数据记录etcd,k8s的api server调用informer,informer是k8s官方库client-go中的一个核心工具包,封装了list-watch api,list-watch保证了消息的实时性、顺序性、可靠性、高性能等特性。informer中具有反射器、增量队列、索引、还具有本地缓存。根据目标对象和高危操作自定义回调函数,回调函数可以检测处理操作,包括以下至少之一:增加操作、删除操作、更新操作,通过回调函数实现操作的监控、过滤、告警和备份等。回调函数执行完毕后进入
k8s平台的工作队列,通过worker来执行任务,实现业务逻辑。
42.在实际操作中,可以对高危操作进行分类,通过对高危操作进行分类可以表示高危操作的不同的异常等级,这样可以根据不同异常等级的高危操作对k8s平台的中断处理进行进一步细分,进一步保证了本方案可以对高危操作进行精准监控和拦截,本技术的一种实施例中,上述高危操作有多种类型,在控制上述k8s平台暂停运行之后,上述方法还包括如下步骤:
43.步骤s104,根据上述高危操作的类型生成告警信息,上述告警信息用于提示当前处理操作为上述高危操作以及上述高危操作的等级;
44.具体地,高危操作的类型可以包括五种,分别是第一类型的高危操作、第二类型的高危操作、第三类型的高危操作、第四类型的高危操作和第五类型的高危操作,第一类型的高危操作的异常等级为第一等级,第二类型的高危操作的异常等级为第二等级,第三类型的高危操作的异常等级为第三等级,第四类型的高危操作的异常等级为第四等级,第五类型的高危操作的异常等级为第五等级,异常等级从高到低的顺序是第一等级、第二等级、第三等级、第四等级、第五等级。当然,高危操作的类型并不限于上述的五种,还可以根据实际情况设置其他的类型。
45.第一类型的高危等级表示:危险系数较低,表示该级别的告警可以忽略,可以执行;
46.第二类型的高危等级表示:该操作结果可控,执行后不影响目标对象或者k8s平台运行;
47.第三类型的高危等级表示:该操作可能会引起目标对象或者k8s平台故障;
48.第四类型的高危等级表示:该操作高危,特殊场景下可以执行;
49.第五类型的高危等级表示:该操作高危,需严格禁止操作。
50.可选地,告警信息可以是短信的形式,还可以是邮件、弹窗、电话等形式。
51.本技术的一种具体的实施例中,根据上述高危操作的类型生成告警信息,包括:获取触发上述高危操作的次数;根据上述高危操作的类型以及触发上述高危操作的次数生成上述告警信息。该实施例中,可以根据高危操作的类型以及触发高危操作的次数来生成告警信息,这样可以进一步保证生成的告警信息较为准确,相比至根据高危操作的类型来生成告警信息,根据高危操作的类型以及触发高危操作的次数生成的告警信息可以满足更多情况。
52.步骤s105,将上述告警信息发送至目标终端,并接收上述目标终端的回复信息;
53.具体地,上述告警信息包括第一告警信息、第二告警信息、第三告警信息、第四告警信息和第五告警信息,上述第一告警信息表示上述高危操作的类型是第一类型,上述第二告警信息表示上述高危操作的类型是第二类型,上述第三告警信息表示上述高危操作的类型是第三类型,上述第四告警信息表示上述高危操作的类型是第四类型,上述第五告警信息表示上述高危操作的类型是第五类型,多个上述高危操作的异常等级的按照从高到低的顺序是上述第一类型的上述高危操作、上述第二类型的上述高危操作、上述第三类型的上述高危操作、上述第四类型的上述高危操作、上述第五类型的上述高危操作。
54.对于告警信息对应的回复信息,不同的回复信息对应的含义不同,例如:
55.第一回复信息:允许操作,同时对应的操作需要在运行日志中打印并带上1级告警
标识,k8s平台收到管理员回复后触发对应的脚本,操作员可直接下一步操作;
56.第二回复信息:允许操作,同时对应的操作需要在日志中打印并带上2级告警标识,k8s平台收到管理员回复后触发对应的脚本,操作员操作缓冲执行,待k8s平台提示;
57.第三回复信息:允许操作,同时对应的操作需要在日志中打印并带上3级告警标识,k8s平台收到管理员回复后触发对应的脚本,操作员操作缓冲执行,待k8s平台提示;
58.第四回复信息:允许操作,同时对应的操作需要在日志中打印并带上4级告警标识,k8s平台收到管理员回复后触发对应的脚本,操作员操作缓冲执行,待k8s平台提示;
59.第五回复信息:禁止操作,同时对应的操作需要在日志中打印并带上5级告警标识,k8s平台收到管理员回复后触发对应的脚本,操作员操作终止。
60.步骤s106,根据上述回复信息,确定是否控制上述k8s平台继续运行。
61.根据上述定义的不同类型的回复信息,可以触发不同的脚本,这样可以进一步准确地确定是否控制k8s平台继续运行,本技术的一种具体的实施例中,根据上述回复信息,确定是否控制上述k8s平台继续运行,包括:在收到的上述回复信息为第一回复信息、第二回复信息、第三回复信息和第四回复信息中的至少之一的情况下,确定控制上述k8s平台继续运行,并延迟控制上述k8s平台继续运行,上述第一回复信息、第二回复信息、第三回复信息和第四回复信息均表示允许继续操作的信息;在收到的上述回复信息为第五回复信息的情况下,确定不控制上述k8s平台继续运行,并控制上述k8s平台结束运行,上述第五回复信息表示不允许继续操作的信息。
62.上述的步骤s104~步骤s106中,可以根据高危操作的类型来生成对应的告警信息,再将告警信息发送至目标终端,目标终端处的管理员可以根据告警信息进行回复,接收目标终端的回复信息,可以根据回复信息的类型来对k8s平台的中断处理进行进一步细分,进一步保证了本方案可以对高危操作进行精准监控和拦截。
63.在实际应用中,可以根据回复信息来确定是否控制k8s平台继续运行,但是有时可能由于其他的一些因素导致未接收到回复信息,这种情况下也是可以继续确定是否控制k8s平台继续运行的,本技术的又一种实施例中,上述方法还包括如下步骤:步骤s107,在未接收到上述回复信息的时长大于目标时长的情况下,控制上述k8s平台结束运行,或者,在未接收到上述回复信息的时长大于上述目标时长的情况下,控制上述k8s平台继续运行。该实施例中,如果未接收到回复信息的时长大于目标时长,可以直接禁止高危操作,或者如果未接收到回复信息的时长大于目标时长,自动跳出回调函数,即表示管理员默认同一高危操作,可以执行后续流程。
64.可选地,还可以配置为不生成告警信息,以避免环境演练等特殊场景下的误报。
65.为了保证可以及时记录k8s平台运行过程中的数据,同时对k8s平台的数据进行备份,本技术的再一种实施例中,上述方法还包括如下步骤:
66.步骤s108,在已收到上述回复信息的情况下,根据上述回复信息的类型,在运行日志中生成对应的告警标识;
67.步骤s109,获取在上述k8s平台暂停运行前的k8s平台运行数据,并备份上述k8s平台运行数据。
68.具体地,不同的回复信息触发的回复脚本是不同的,对应的备份的数据也是可以不同的,自动备份当前平台数据至远端服务器。备份文件可按需灵活配置,如可以是yaml文
件,也可以是系统的全量数据。
69.上述的步骤s108~步骤s109中,可以在监测到k8s中有高危操作的情况下,自动备份高危操作前的系统数据,这样在系统故障时可以根据备份数据和恢复脚本及时修复k8s平台。
70.在数据备份完成后,还k8s平台可以向操作员发出允许下一步操作的信息,操作员可以继续执行高危操作,在执行后需要检测k8s平台的运行状况,根据执行完高危操作后的k8s平台的状况来确定是否控制k8s平台继续运行,本技术的另一种实施例中,在获取在上述k8s平台暂停运行前的k8s平台运行数据,并备份上述k8s平台运行数据之后,上述方法还包括如下步骤:
71.步骤s110,在确定控制上述k8s平台继续运行,并延迟控制上述k8s平台继续运行的情况下,获取执行完上述高危操作后的k8s平台运行数据;
72.步骤s111,检测执行完上述高危操作后的k8s平台运行数据是否异常;
73.步骤s112,在执行完上述高危操作后的k8s平台运行数据异常的情况下,控制上述k8s平台结束运行,并恢复执行上述高危操作前的k8s平台运行数据;
74.步骤s113,在执行完上述高危操作后的k8s平台运行数据正常的情况下,控制上述k8s平台继续运行。
75.上述的步骤s110~步骤s113中,在高危操作执行完毕后,可以检测k8s平台的运行状况,若运行正常,那么k8s平台继续运行,或者结束运行,若运行异常,可以发出提示信息,提示操作员k8s平台异常,终止高危操作,根据备份文件和恢复脚本进行数据回滚,可以由ansible技术实现。
76.可选地,本方案还可以形成高危操作统计报告,便于审计或他用,提升了k8s平台的运维效率。
77.本技术实施例还提供了一种高危操作的处理装置,需要说明的是,本技术实施例的高危操作的处理装置可以用于执行本技术实施例所提供的用于高危操作的处理方法。以下对本技术实施例提供的高危操作的处理装置进行介绍。
78.图3是根据本技术实施例的高危操作的处理装置的示意图。如图3所示,该装置包括:
79.第一获取单元10,用于获取目标对象和高危操作,其中,上述目标对象是指k8s平台运行过程中需要监控的对象,上述高危操作是指导致上述k8s平台运行异常的操作;
80.第一检测单元20,用于通过回调函数在上述k8s平台运行过程中检测处理操作,上述处理操作包括以下至少之一:增加操作、删除操作、更新操作,上述回调函数是上述k8s平台的client-go的informer中封装的list-watch api函数;
81.上述的第一检测单元,通过回调函数可以对k8s平台中的目标对象的高危操作进行监控和过滤,进而可以实现对k8s平台的高危操作的精准监控。
82.第一处理单元30,用于在上述处理操作为上述高危操作的情况下控制上述k8s平台暂停运行。
83.上述的第一处理单元,在通过回调函数已经确定操作是高危操作的情况下,可以及时中断k8s平台运行,这样可以保证k8s平台运行正常,而不会由于高危操作导致k8s运行异常。
84.上述的装置中,第一获取单元获取目标对象和高危操作,第一检测单元通过回调函数在k8s平台运行过程中检测处理操作,第一处理单元在处理操作为高危操作的情况下控制k8s平台暂停运行。该方案中,通过对回调函数进行扩展,可以对目标对象的高危操作实现精准地监控,并在检测到高危操作的情况下,可以中断k8s平台运行,这样可以对高危操作进行拦截,进而解决了现有技术中k8s平台无法对一些高危操作精准的监控和拦截的问题。
85.在实际操作中,可以对高危操作进行分类,通过对高危操作进行分类可以表示高危操作的不同的异常等级,这样可以根据不同异常等级的高危操作对k8s平台的中断处理进行进一步细分,进一步保证了本方案可以对高危操作进行精准监控和拦截,本技术的一种实施例中,上述高危操作有多种类型,上述装置还包括第一生成单元、接收单元和确定单元,第一生成单元、接收单元和确定单元的具体功能如下:
86.第一生成单元,用于在控制上述k8s平台暂停运行之后,根据上述高危操作的类型生成告警信息,上述告警信息用于提示当前处理操作为上述高危操作以及上述高危操作的等级;
87.本技术的一种具体的实施例中,第一生成单元包括获取模块和生成模块,获取模块用于获取触发上述高危操作的次数;生成模块用于根据上述高危操作的类型以及触发上述高危操作的次数生成上述告警信息。该实施例中,可以根据高危操作的类型以及触发高危操作的次数来生成告警信息,这样可以进一步保证生成的告警信息较为准确,相比至根据高危操作的类型来生成告警信息,根据高危操作的类型以及触发高危操作的次数生成的告警信息可以满足更多情况。
88.接收单元,用于将上述告警信息发送至目标终端,并接收上述目标终端的回复信息;
89.具体地,上述告警信息包括第一告警信息、第二告警信息、第三告警信息、第四告警信息和第五告警信息,上述第一告警信息表示上述高危操作的类型是第一类型,上述第二告警信息表示上述高危操作的类型是第二类型,上述第三告警信息表示上述高危操作的类型是第三类型,上述第四告警信息表示上述高危操作的类型是第四类型,上述第五告警信息表示上述高危操作的类型是第五类型,多个上述高危操作的异常等级的按照从高到低的顺序是上述第一类型的上述高危操作、上述第二类型的上述高危操作、上述第三类型的上述高危操作、上述第四类型的上述高危操作、上述第五类型的上述高危操作。
90.确定单元,用于根据上述回复信息,确定是否控制上述k8s平台继续运行。
91.根据上述定义的不同类型的回复信息,可以触发不同的脚本,这样可以进一步准确地确定是否控制k8s平台继续运行,本技术的一种具体的实施例中,确定单元包括第一确定模块和第二确定模块,第一确定模块用于在收到的上述回复信息为第一回复信息、第二回复信息、第三回复信息和第四回复信息中的至少之一的情况下,确定控制上述k8s平台继续运行,并延迟控制上述k8s平台继续运行,上述第一回复信息、第二回复信息、第三回复信息和第四回复信息均表示允许继续操作的信息;第二确定模块用于在收到的上述回复信息为第五回复信息的情况下,确定不控制上述k8s平台继续运行,并控制上述k8s平台结束运行,上述第五回复信息表示不允许继续操作的信息。
92.上述的第一生成单元、接收单元和确定单元,可以根据高危操作的类型来生成对
应的告警信息,再将告警信息发送至目标终端,目标终端处的管理员可以根据告警信息进行回复,接收目标终端的回复信息,可以根据回复信息的类型来对k8s平台的中断处理进行进一步细分,进一步保证了本方案可以对高危操作进行精准监控和拦截。
93.在实际应用中,可以根据回复信息来确定是否控制k8s平台继续运行,但是有时可能由于其他的一些因素导致未接收到回复信息,这种情况下也是可以继续确定是否控制k8s平台继续运行的,本技术的又一种实施例中,上述装置还包括第一控制单元,第一控制单元用于在未接收到上述回复信息的时长大于目标时长的情况下,控制上述k8s平台结束运行,或者,在未接收到上述回复信息的时长大于上述目标时长的情况下,控制上述k8s平台继续运行。该实施例中,如果未接收到回复信息的时长大于目标时长,可以直接禁止高危操作,或者如果未接收到回复信息的时长大于目标时长,自动跳出回调函数,即表示管理员默认同一高危操作,可以执行后续流程。
94.为了保证可以及时记录k8s平台运行过程中的数据,同时对k8s平台的数据进行备份,本技术的再一种实施例中,上述装置还包括第二生成单元和备份单元,第二生成单元和备份单元的具体功能如下:
95.第二生成单元,用于在已收到上述回复信息的情况下,根据上述回复信息的类型,在运行日志中生成对应的告警标识;
96.备份单元,用于获取在上述k8s平台暂停运行前的k8s平台运行数据,并备份上述k8s平台运行数据。
97.上述的第二生成单元和备份单元,可以在监测到k8s中有高危操作的情况下,自动备份高危操作前的系统数据,这样在系统故障时可以根据备份数据和恢复脚本及时修复k8s平台。
98.在数据备份完成后,还k8s平台可以向操作员发出允许下一步操作的信息,操作员可以继续执行高危操作,在执行后需要检测k8s平台的运行状况,根据执行完高危操作后的k8s平台的状况来确定是否控制k8s平台继续运行,本技术的另一种实施例中,上述装置还包括第二获取单元、第二检测单元、第二处理单元和第三处理单元,第二获取单元、第二检测单元、第二处理单元和第三处理单元的具体功能如下:
99.第二获取单元,用于在获取在上述k8s平台暂停运行前的k8s平台运行数据,并备份上述k8s平台运行数据之后,在确定控制上述k8s平台继续运行,并延迟控制上述k8s平台继续运行的情况下,获取执行完上述高危操作后的k8s平台运行数据;
100.第二检测单元,用于检测执行完上述高危操作后的k8s平台运行数据是否异常;
101.第二处理单元,用于在执行完上述高危操作后的k8s平台运行数据异常的情况下,控制上述k8s平台结束运行,并恢复执行上述高危操作前的k8s平台运行数据;
102.第三处理单元,用于在执行完上述高危操作后的k8s平台运行数据正常的情况下,控制上述k8s平台继续运行。
103.上述的第二获取单元、第二检测单元、第二处理单元和第三处理单元,在高危操作执行完毕后,可以检测k8s平台的运行状况,若运行正常,那么k8s平台继续运行,或者结束运行,若运行异常,可以发出提示信息,提示操作员k8s平台异常,终止高危操作,根据备份文件和恢复脚本进行数据回滚,可以由ansible技术实现。
104.上述高危操作的处理装置包括处理器和存储器,上述第一获取单元、第一检测单
元和第一处理单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
105.处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来对k8s平台中的高危操作进行精确地监控和拦截。
106.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。
107.本发明实施例提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现上述高危操作的处理方法。
108.本发明实施例提供了一种处理器,上述处理器用于运行程序,其中,上述程序运行时执行上述高危操作的处理方法。
109.本技术还提供了一种电子设备,包括一个或多个处理器,存储器以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置为由上述一个或多个处理器执行,上述一个或多个程序包括用于执行任意一种上述的方法。
110.本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现至少以下步骤:
111.步骤s101,获取目标对象和高危操作,其中,上述目标对象是指k8s平台运行过程中需要监控的对象,上述高危操作是指导致上述k8s平台运行异常的操作;
112.步骤s102,通过回调函数在上述k8s平台运行过程中检测处理操作,上述处理操作包括以下至少之一:增加操作、删除操作、更新操作,上述回调函数是上述k8s平台的client-go的informer中封装的list-watch api函数;
113.步骤s103,在上述处理操作为上述高危操作的情况下控制上述k8s平台暂停运行。
114.本文中的设备可以是服务器、pc、pad、手机等。
115.本技术还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有至少如下方法步骤的程序:
116.步骤s101,获取目标对象和高危操作,其中,上述目标对象是指k8s平台运行过程中需要监控的对象,上述高危操作是指导致上述k8s平台运行异常的操作;
117.步骤s102,通过回调函数在上述k8s平台运行过程中检测处理操作,上述处理操作包括以下至少之一:增加操作、删除操作、更新操作,上述回调函数是上述k8s平台的client-go的informer中封装的list-watch api函数;
118.步骤s103,在上述处理操作为上述高危操作的情况下控制上述k8s平台暂停运行。
119.为了本领域技术人员能够更加清楚地了解本技术的技术方案,以下将结合具体的实施例来说明本技术的技术方案和技术效果。
120.实施例
121.本实施例涉及一种高危操作的处理方法,如图4所示,包括:
122.s1:定义需要监控的k8s平台的目标对象和高危操作,定义高危等级以及对应的处理措施。
123.s2:k8s平台的监控模块对操作事件监控,触发自主编写的回调函数。
124.s3:在回调函数中命中告警规则,k8s平台暂停运行,同时平台向管理员发出告警。
125.s4:管理员收到告警信息,回复s1中定义的告警措施所对应的数字。
126.s5:k8s平台收到管理员的回复信息后,判断是否执行高危操作:继续则执行s6;否则跳转至s10,直接终止整个高危操作。
127.s6:k8s平台收到管理员的回复信息,触发对应的脚本。
128.s7:备份完成后,k8s平台向操作员发出允许下一步操作的信息,操作员继续执行高危操作。
129.s8:高危操作执行完毕,平台监控模块持续检测k8s平台的运行状况是否正常。若k8s平台运行正常,跳转至s10则流程结束;若检测到s1中定义的资源故障,跳转至s9。
130.s9:提示操作员环境异常,终止高危操作。联系管理员根据备份文件和恢复脚本回滚。
131.s10:流程结束。
132.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
133.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
134.上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
135.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
136.上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例上述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
137.从以上的描述中,可以看出,本技术上述的实施例实现了如下技术效果:
138.1)、本技术的高危操作的处理方法,首先获取目标对象和高危操作,之后通过回调函数在k8s平台运行过程中检测处理操作,最后在处理操作为高危操作的情况下控制k8s平台暂停运行。该方案中,通过对回调函数进行扩展,可以对目标对象的高危操作实现精准地监控,并在检测到高危操作的情况下,可以中断k8s平台运行,这样可以对高危操作进行拦截,进而解决了现有技术中k8s平台无法对一些高危操作精准的监控和拦截的问题。
139.2)、本技术的高危操作的处理装置,第一获取单元获取目标对象和高危操作,第一检测单元通过回调函数在k8s平台运行过程中检测处理操作,第一处理单元在处理操作为高危操作的情况下控制k8s平台暂停运行。该方案中,通过对回调函数进行扩展,可以对目标对象的高危操作实现精准地监控,并在检测到高危操作的情况下,可以中断k8s平台运行,这样可以对高危操作进行拦截,进而解决了现有技术中k8s平台无法对一些高危操作精准的监控和拦截的问题。
140.以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1