System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,特别涉及一种k8s集群中容器组停止方法、装置、设备及存储介质。
技术介绍
1、目前,在k8s(kubernetes,一个用于管理容器的开源平台)集群中,当需要重启pod(即容器组,是kubernetes集群中能够被创建和管理的最小部署单元)或缩容pod副本等操作时,不能立即停止接收新的请求,只能将当前pod正在处理的请求完全处理完成后才能进行pod重启或缩容pod副本等操作。
2、另外,针对pod中的应用服务,目前还不能做到自主的、完全优雅的停止pod服务,且在停止服务后不能保留pod现场,从而不能使运维或研发人员进入pod现场进行问题排查。并且,在某些场景下,不能保障业务的连续性和稳定性,例如,当重启pod时,不能控制将pod上的流量切掉,并在检测到pod正常时接收流量;或对pod副本进行缩容时,不能控制将流量切掉,使得有些还在处理中的请求由于调用不到相应的pod导致请求执行失败,从而影响了pod的可用性,并且在对当前请求进行处理的同时,还会不断有新的请求进入,从而进一步导致pod无法优雅停机。
3、综上,如何对k8s集群中的容器组进行优雅的停止是本领域技术人员需要解决的问题。
技术实现思路
1、有鉴于此,本申请的目的在于提供一种k8s集群中容器组停止方法、装置、设备及存储介质,能够自主的控制容器组的生命周期,优雅的停止容器服务。其具体方案如下:
2、第一方面,本申请公开了一种k8s集群中容器组停止方法,包括:
3
4、通过预先创建的容器组就绪检测探针控制器封装所述k8s集群的client-go接口,并通过所述client-go接口对容器组事件进行监听,以为监听到的打上所述预设属性标签的所述名称空间中的相应容器组配置就绪检测网关属性;
5、当接收到客户端发送的针对所述目标名称空间中容器组的业务请求时,获取当前通过所述k8s集群监听到的所述目标名称空间中相应容器组的状态信息,得到当前状态信息;
6、根据所述当前状态信息判断所述目标名称空间中对应容器组的状态是否为就绪状态,若是,则将所述就绪检测网关属性中的上下线控制属性设置为下线状态,以停止对应容器组的容器服务并对所述业务请求进行响应。
7、可选的,所述将所述就绪检测网关属性中的上下线控制属性设置为下线状态,包括:
8、通过所述容器组就绪检测探针控制器将所述就绪检测网关属性中的就绪状态开关设置为开启状态,并将所述就绪检测网关属性设置为允许修改状态,以便通过手动的方式对所述就绪检测网关属性中的上下线控制属性进行修改;
9、当接收到所述客户端发送的针对所述上下线控制属性的下线修改请求时,将所述上下线控制属性设置为下线状态。
10、可选的,所述k8s集群中容器组停止方法,还包括:
11、若所述目标名称空间中对应容器组的状态为未就绪状态,则判断所述就绪检测网关属性的状态是否就绪;
12、若所述就绪检测网关属性的状态为未就绪状态,则将所述就绪检测网关属性设置为允许修改状态,以便通过手动的方式对所述就绪检测网关属性中的上下线控制属性进行修改;
13、当接收到所述客户端发送的针对所述上下线控制属性的下线修改请求时,将所述上下线控制属性设置为下线状态,以停止对应容器组的容器服务并对所述业务请求进行响应。
14、可选的,所述k8s集群中容器组停止方法,还包括:
15、当监测到所述目标名称空间中容器组的状态发生变化时,采集相应的状态变化信息,并通过所述容器组就绪检测探针控制器提供的http接口将所述状态变化信息发送至所述客户端,以便所述客户端根据所述状态变化信息对当前容器服务列表中记录的容器组进行相应的调整。
16、可选的,所述当接收到客户端发送的针对所述目标名称空间中容器组的业务请求时,获取当前通过所述k8s集群监听到的所述目标名称空间中相应容器组的状态信息,得到当前状态信息,包括:
17、当接收到客户端发送的重启所述目标名称空间中容器组的业务请求时,获取当前通过所述k8s集群监听到的所述目标名称空间中相应容器组的状态信息,得到当前状态信息;
18、相应的,所述停止对应容器组的容器服务并对所述业务请求进行响应,包括:
19、停止对应容器组的容器服务,并对相应容器组进行重启;
20、当监测到相应容器组重启成功后,生成容器组重启成功的提示信息,并通过所述http接口将所述提示信息发送至所述客户端。
21、可选的,所述当接收到客户端发送的针对所述目标名称空间中容器组的业务请求时,获取当前通过所述k8s集群监听到的所述目标名称空间中相应容器组的状态信息,得到当前状态信息,包括:
22、当接收到客户端发送的缩容容器组副本的业务请求时,获取当前通过所述k8s集群监听到的所述目标名称空间中相应容器组的状态信息,得到当前状态信息;
23、相应的,所述停止对应容器组的容器服务并对所述业务请求进行响应,包括:
24、停止对应容器组的容器服务,并对相应容器组的副本进行缩容;
25、当监测到相应容器组的副本缩容完成后,生成容器组副本缩容成功的提示信息,并通过所述http接口将所述提示信息发送至所述客户端。
26、可选的,所述通过所述client-go接口对容器组事件进行监听,包括:
27、通过所述client-go接口及所述k8s集群的informer机制对容器组事件进行监听。
28、第二方面,本申请公开了一种k8s集群中容器组停止装置,包括:
29、标记模块,用于对k8s集群中目标名称空间打上预设属性标签;
30、接口封装模块,用于通过预先创建的容器组就绪检测探针控制器封装所述k8s集群的client-go接口;
31、监听模块,用于通过所述client-go接口对容器组事件进行监听,以为监听到的打上所述预设属性标签的所述名称空间中的相应容器组配置就绪检测网关属性;
32、信息获取模块,用于当接收到客户端发送的针对所述目标名称空间中容器组的业务请求时,获取当前通过所述k8s集群监听到的所述目标名称空间中相应容器组的状态信息,得到当前状态信息;
33、判断模块,用于根据所述当前状态信息判断所述目标名称空间中对应容器组的状态是否为就绪状态;
34、状态设置模块,用于如果所述目标名称空间中对应容器组的状态为就绪状态,则将所述就绪检测网关属性中的上下线控制属性设置为下线状态,以停止对应容器组的容器服务并对所述业务请求进行响应。
35、第三方面,本申请公开了一种电子设备,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的计算机程序时实现前述的k8s集群中容器组停止方法。
36、第四方面,本申请公开了一种本文档来自技高网...
【技术保护点】
1.一种k8s集群中容器组停止方法,其特征在于,包括:
2.根据权利要求1所述的k8s集群中容器组停止方法,其特征在于,所述将所述就绪检测网关属性中的上下线控制属性设置为下线状态,包括:
3.根据权利要求1所述的k8s集群中容器组停止方法,其特征在于,还包括:
4.根据权利要求1所述的k8s集群中容器组停止方法,其特征在于,还包括:
5.根据权利要求4所述的k8s集群中容器组停止方法,其特征在于,所述当接收到客户端发送的针对所述目标名称空间中容器组的业务请求时,获取当前通过所述k8s集群监听到的所述目标名称空间中相应容器组的状态信息,得到当前状态信息,包括:
6.根据权利要求4所述的k8s集群中容器组停止方法,其特征在于,所述当接收到客户端发送的针对所述目标名称空间中容器组的业务请求时,获取当前通过所述k8s集群监听到的所述目标名称空间中相应容器组的状态信息,得到当前状态信息,包括:
7.根据权利要求1至6任一项所述的k8s集群中容器组停止方法,其特征在于,所述通过所述client-go接口对容器组事件进行监
8.一种k8s集群中容器组停止装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的计算机程序时实现如权利要求1至7任一项所述的k8s集群中容器组停止方法。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的k8s集群中容器组停止方法。
...【技术特征摘要】
1.一种k8s集群中容器组停止方法,其特征在于,包括:
2.根据权利要求1所述的k8s集群中容器组停止方法,其特征在于,所述将所述就绪检测网关属性中的上下线控制属性设置为下线状态,包括:
3.根据权利要求1所述的k8s集群中容器组停止方法,其特征在于,还包括:
4.根据权利要求1所述的k8s集群中容器组停止方法,其特征在于,还包括:
5.根据权利要求4所述的k8s集群中容器组停止方法,其特征在于,所述当接收到客户端发送的针对所述目标名称空间中容器组的业务请求时,获取当前通过所述k8s集群监听到的所述目标名称空间中相应容器组的状态信息,得到当前状态信息,包括:
6.根据权利要求4所述的k8s集群中容器组停止方法,其特征在于,所述当接收到客户端...
【专利技术属性】
技术研发人员:黄岭林,吴辰阳,吕勇,王伟,岑浩明,
申请(专利权)人:税友信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。