System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及容器化,尤其涉及一种信号发送方法及相关装置。
技术介绍
1、kubernetes集群是一个用于自动化容器化应用部署、扩展和管理的开源平台。kubernetes(简称k8s)集群由多个节点组成,这些节点分为master节点和worker节点。master节点负责控制和管理整个集群,而worker节点则负责运行实际的容器化应用。
2、init进程是内核启动的第一个用户级进程,它负责管理系统的启动过程并确保其他进程的运行。现有技术中kubernetes集群通过dump-init系统或者进程管理器tini启动专业的init进程,实现多进程容器中的多个进程的启停。其中,dump-init是一款专为容器环境设计的轻量级进程监管器及初始化系统,tini是一个极小且安全的unix初始化系统和进程管理器。
3、但是受限于现有的dump-init系统或者tini的应用局限性,当容器启动的第一个进程不是专业的init进程时,主进程接到停止信号被终结后,业务信号不会传递到子进程,而是会自动地往子进程发送sigkill信号,子进程接收到强行终止sigkill信号后被强行终止,因此,影响业务一致性。
技术实现思路
1、鉴于上述问题,本申请提供了一种信号发送方法及相关装置,以实现提高客户端启动效率和开屏视频有效性的目的。具体方案如下:
2、本申请第一方面提供一种信号发送方法,包括:
3、将预设的信号发送脚本挂载至目标容器,所述信号发送脚本包括多个预设的参
4、响应于接收到目标容器的删除指令,获取所述目标容器的信号发送参数,所述信号发送参数包括信号发送标签;
5、以所述目标容器的信号发送参数作为所述信号发送脚本中对应的参数变量的变量值后,执行所述信号发送脚本,以按照所述信号发送标签指示的信号发送规则发送sigterm信号至所述目标容器的各个进程。
6、在一种可能的实现中,信号发送方法还包括:
7、在kubernetes集群中部署配置所述信号发送脚本的资源对象,并添加生命周期钩子;
8、接收目标容器组的创建请求,所述目标容器组的创建请求包括创建指令和资源声明文件,所述创建指令指示按照所述资源声明文件创建所述目标容器组;
9、通过所述生命周期钩子将所述信号发送参数投射进资源声明文件,并在所述资源声明文件中增加预停止钩子后,基于所述资源声明文件创建所述目标容器组;
10、在所述目标容器组内运行所述目标容器,所述目标容器包括多个线程。
11、在一种可能的实现中,获取所述目标容器的信号发送参数,包括:
12、查找所述目标容器的资源声明文件,确定是否存在所述信号发送标签,若存在,从所述目标容器的资源声明文件中,获取所述信号发送参数。
13、在一种可能的实现中,参数变量还包括等待时长变量,所述信号发送参数还包括预设的等待时长,以所述目标容器的信号发送参数作为所述信号发送脚本中对应的参数变量的变量值后,执行所述信号发送脚本,包括:
14、以所述信号发送参数中的等待时长作为所述等待时长变量的变量值,以所述信号发送参数中的信号发送标签作为所述信号发送规则的变量值后,执行所述信号发送脚本,以执行在所述等待时长后,按照所述信号发送规则将发送sigterm信号至所述目标容器的各个进程。
15、在一种可能的实现中,信号发送标签为第一信号发送标签和第二信号发送标签中的一项,所述第一信号发送标签指示按照进程编号从小到大的顺序发送sigterm信号,第二信号发送标签指示按照进程编号从大到小的顺序发送sigterm信号。
16、本申请第二方面提供一种信号发送装置,包括:
17、脚本挂载单元,用于将预设的信号发送脚本挂载至目标容器,所述信号发送脚本包括多个预设的参数变量,所述参数变量包括信号发送规则,所述信号发送脚本用于执行按照参数变量的变量值发送sigterm信号;
18、发送参数获取单元,用于响应于接收到目标容器的删除指令,获取所述目标容器的信号发送参数,所述信号发送参数包括信号发送标签;
19、脚本执行单元,用于以所述目标容器的信号发送参数作为所述信号发送脚本中对应的参数变量的变量值后,执行所述信号发送脚本,以按照所述信号发送标签指示的信号发送规则发送sigterm信号至所述目标容器的各个进程。
20、在一种可能的实现中,信号发送装置还包括容器创建单元,用于:
21、在kubernetes集群中部署配置所述信号发送脚本的资源对象,并添加生命周期钩子;
22、接收目标容器组的创建请求,所述目标容器组的创建请求包括创建指令和资源声明文件,所述创建指令指示按照所述资源声明文件创建所述目标容器组;
23、通过所述生命周期钩子将所述信号发送参数投射进资源声明文件,并在所述资源声明文件中增加预停止钩子后,基于所述资源声明文件创建所述目标容器组。
24、本申请第三方面提供一种计算机程序产品,包括计算机可读指令,当所述计算机可读指令在电子设备上运行时,使得所述电子设备实现上述第一方面或第一方面任一实现方式的信号发送方法。
25、本申请第四方面提供一种电子设备,包括至少一个处理器和与所述处理器连接的存储器,其中:
26、所述存储器用于存储计算机程序;
27、所述处理器用于执行所述计算机程序,以使所述电子设备能够实现上述第一方面或第一方面任一实现方式的信号发送方法。
28、本申请第五方面提供一种计算机存储介质,所述存储介质承载有一个或多个计算机程序,当所述一个或多个计算机程序被电子设备执行时,能够使所述电子设备上述第一方面或第一方面任一实现方式的信号发送方法。
29、借由上述技术方案,本申请提供的一种信号发送方法及相关装置,将预设的信号发送脚本挂载至目标容器,响应于接收到目标容器的删除指令,获取目标容器的信号发送参数。由于,信号发送脚本包括多个预设的参数变量,参数变量包括信号发送规则,信号发送脚本用于执行按照参数变量的变量值发送sigterm信号,且信号发送参数包括信号发送标签,用于指示信号发送规则,因此,以目标容器的信号发送参数作为信号发送脚本中对应的参数变量的变量值后,执行信号发送脚本,以按照信号发送标签指示的信号发送规则发送sigterm信号至目标容器的各个进程。可见,本方法通过基于待删除的目标容器的信号发送参数执行预先挂载的信号发送脚本,实现发送sigterm信号至目标容器的各个进程,从而实现目标容器对应的业务一致性。
本文档来自技高网...【技术保护点】
1.一种信号发送方法,其特征在于,包括:
2.根据权利要求1所述的信号发送方法,其特征在于,所述信号发送方法还包括:
3.根据权利要求2所述的信号发送方法,其特征在于,获取所述目标容器的信号发送参数,包括:
4.根据权利要求2所述的信号发送方法,其特征在于,所述参数变量还包括等待时长变量,所述信号发送参数还包括预设的等待时长,以所述目标容器的信号发送参数作为所述信号发送脚本中对应的参数变量的变量值后,执行所述信号发送脚本,包括:
5.根据权利要求4所述的信号发送方法,其特征在于,所述信号发送标签为第一信号发送标签和第二信号发送标签中的一项,所述第一信号发送标签指示按照进程编号从小到大的顺序发送SIGTERM信号,第二信号发送标签指示按照进程编号从大到小的顺序发送SIGTERM信号。
6.一种信号发送装置,其特征在于,包括:
7.根据权利要求6所述的信号发送装置,其特征在于,所述信号发送装置还包括容器创建单元,用于:
8.一种计算机程序产品,其特征在于,包括计算机可读指令,当所述计算机可读指令在电子
9.一种电子设备,其特征在于,包括至少一个处理器和与所述处理器连接的存储器,其中:
10.一种计算机存储介质,其特征在于,所述存储介质承载有一个或多个计算机程序,当所述一个或多个计算机程序被电子设备执行时,能够使所述电子设备实现如权利要求1至5中任意一项所述的信号发送方法。
...【技术特征摘要】
1.一种信号发送方法,其特征在于,包括:
2.根据权利要求1所述的信号发送方法,其特征在于,所述信号发送方法还包括:
3.根据权利要求2所述的信号发送方法,其特征在于,获取所述目标容器的信号发送参数,包括:
4.根据权利要求2所述的信号发送方法,其特征在于,所述参数变量还包括等待时长变量,所述信号发送参数还包括预设的等待时长,以所述目标容器的信号发送参数作为所述信号发送脚本中对应的参数变量的变量值后,执行所述信号发送脚本,包括:
5.根据权利要求4所述的信号发送方法,其特征在于,所述信号发送标签为第一信号发送标签和第二信号发送标签中的一项,所述第一信号发送标签指示按照进程编号从小到大的顺序发送sigterm信号,第二信号发送标签指示...
【专利技术属性】
技术研发人员:袁继雷,
申请(专利权)人:亚信科技南京有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。