一种服务配置文件处理方法、装置、存储介质及电子设备转让专利
申请号 : CN202110364580.2
文献号 : CN112732412B
文献日 : 2021-08-03
发明人 : 杨涛 , 俞鸣园 , 曹亚曦 , 王克彦
申请人 : 浙江华创视讯科技有限公司
摘要 :
权利要求 :
1.一种服务配置文件处理方法,其特征在于,应用于业务服务,所述方法包括:检测待启动容器的容器启动请求;
响应于所述容器启动请求,发送获取所述待启动容器的配置文件的文件获取请求至文件存储服务;
接收所述文件存储服务响应于所述文件获取请求的响应信息,所述响应信息用于示出所述待启动容器的配置文件的获取结果;
根据所述响应信息,判断所述待启动容器的启动结果;
在所述启动结果示出所述待启动容器成功启动的情况下,更新容器的服务配置文件;
上传更新后的服务配置文件至文件存储服务,以固化所述服务配置文件;
其中,所述在所述启动结果示出所述待启动容器成功启动的情况下,更新容器的服务配置文件,包括:
通过Linux系统的inotify机制监听容器的服务配置文件的变化;
在监听到所述容器的服务配置文件变化的情况下,上传所述容器的最新服务配置文件,以更新所述容器的服务配置文件;
检测容器的应用程序运行情况;
在所述应用程序退出的情况下,上传所述容器的最新配置文件,以更新所述容器的服务配置文件。
2.根据权利要求1所述的方法,其特征在于,所述根据所述响应信息,判断所述待启动容器的启动结果,包括:
在所述响应信息示出以下之一的情况下,判定所述待启动容器启动成功:所述待启动容器的服务配置文件获取成功;
所述待启动容器的服务配置文件为空。
3.根据权利要求2所述的方法,其特征在于,在所述响应信息示出所述待启动容器的服务配置文件获取成功的情况下,所述响应信息还包括所述待启动容器的服务配置文件。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述应用程序退出后,间隔设定时间,结束容器运行。
5.根据权利要求1所述的方法,其特征在于,在所述响应信息示出所述待启动容器的服务配置文件获取成功的情况下,在监听容器的服务配置文件的变化之前,所述根据所述响应信息,更新所述待启动容器的服务配置文件,还包括:
从所述响应信息中提取服务配置文件,以覆盖所述待启动容器的默认配置文件。
6.根据权利要求1所述的方法,其特征在于,所述根据所述响应信息,判断所述待启动容器的启动结果,包括:
在所述响应信息示出以下之一的情况下,判定所述待启动容器启动失败:所述待启动容器的服务配置文件获取过程连接失败;
所述待启动容器的服务配置文件获取过程连接错误。
7.根据权利要求6所述的方法,其特征在于,所述方法,还包括:在判定所述待启动容器启动失败的情况下,重启所述待启动容器。
8.一种服务配置文件处理装置,其特征在于,应用于业务服务,所述装置包括:启动检测模块,用于检测待启动容器的容器启动请求;
文件获取模块,用于响应于所述容器启动请求,发送获取所述待启动容器的配置文件的文件获取请求至文件存储服务;
接收模块,用于接收所述文件存储服务响应于所述文件获取请求的响应信息,所述响应信息用于示出所述待启动容器的配置文件的获取结果;
启动判断模块,用于根据所述响应信息,判断所述待启动容器的启动结果;
更新模块,用于在所述启动结果示出所述待启动容器成功启动的情况下,更新容器的服务配置文件;
固化模块,用于上传更新后的服务配置文件至文件存储服务,以固化所述服务配置文件;
其中,所述更新模块包括:
监听子模块,用于通过Linux系统的inotify机制监听容器的服务配置文件的变化;
第一更新子模块,用于在监听到容器的服务配置文件变化的情况下,上传容器的最新服务配置文件,以更新容器的服务配置文件;
检测子模块,用于检测容器的应用程序运行情况;
第二更新子模块,用于在应用程序退出的情况下,上传容器的最新配置文件,以更新容器的服务配置文件。
9.一种计算机可读存储介质,其特征在于,所述存储介质包括一组计算机可执行指令,当所述指令被执行时用于执行权利要求1‑7中任一项所述的服务配置文件处理方法。
10.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现权利要求1‑7中任一项所述的服务配置文件处理方法。
说明书 :
一种服务配置文件处理方法、装置、存储介质及电子设备
技术领域
背景技术
和回滚等操作。由此,提出了通过创建虚拟机进行应用程序部署的方式,但是虚拟机的可移
植性非常差。
Google开源的一个容器编排引擎,它支持多机集群、自动化部署、大规模可伸缩管理,并且
提供完善的管理工具。因此,目前基于Kubernetes的集群方案已成为云原生中主流的方案
之一。
发明内容
件的文件获取请求;接收响应于所述文件获取请求的响应信息,所述响应信息用于示出所
述待启动容器的配置文件的获取结果;根据所述响应信息,判断所述待启动容器的启动结
果;在所述启动结果示出所述待启动容器成功启动的情况下,更新容器的服务配置文件;上
传更新后的服务配置文件,以固化所述服务配置文件。
启动容器的服务配置文件获取成功;所述待启动容器的服务配置文件为空。
器的服务配置文件变化的情况下,上传所述容器的最新服务配置文件,以更新所述容器的
服务配置文件。
退出的情况下,上传所述容器的最新配置文件,以更新所述容器的服务配置文件。
述待启动容器的服务配置文件,还包括:从所述响应信息中提取服务配置文件,以覆盖所述
待启动容器的默认配置文件。
启动容器的服务配置文件获取过程连接失败;所述待启动容器的服务配置文件获取过程连
接错误。
请求,发送获取所述待启动容器的配置文件的文件获取请求;接收模块,用于接收响应于所
述文件获取请求的响应信息,所述响应信息用于示出所述待启动容器的配置文件的获取结
果;启动判断模块,用于根据所述响应信息,判断所述待启动容器的启动结果;更新模块,用
于在所述启动结果示出所述待启动容器成功启动的情况下,更新容器的服务配置文件;固
化模块,用于上传更新后的服务配置文件,以固化所述服务配置文件。
存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述服务配置文件处理
方法。
件的文件获取请求,接收响应于文件获取请求的响应信息,响应信息用于示出待启动容器
的配置文件的获取结果,并根据响应信息,判断待启动容器的启动结果,在启动结果示出待
启动容器成功启动的情况下,更新容器的服务配置文件,上传更新后的服务配置文件,以固
化服务配置文件。如此,可以部署一个云端的文件存储服务,实现云原生私有化部署,使得
业务节点检测到容器启动请求时,从文件存储服务获取服务配置文件。由此,可以在实现云
原生部署的同时,不对外暴露任何连接端口,安全可靠的跨机进行配置存取,而且无需修改
业务节点的容器中的主体业务应用程序,实现高效的实时配置文件同步保存。此外,该方法
还可以通过主备机制,实现服务配置文件的多机备份,有效保障数据安全。
的有益效果。
附图说明
干实施方式,其中:
具体实施方式
式限制本发明的范围。相反,提供这些实施方式是为使本发明更加透彻和完整,并能够将本
发明的范围完整地传达给本领域的技术人员。
(Hypertext Transfer Protocol,超文本传输协议)的文件存储服务,支持上传和下载操
作,并为之配置数据卷。业务服务不直接挂载数据卷,而是通过HTTP请求实现文件的存储和
获取。如此,有效避免了业务服务被本地存储的主机限定和影响,使得业务服务能够自由的
在Kubemetes集群内的任意节点运行。
储服务返回包括配置文件获取成功的标识的报文,例如:“200 OK”,并在报文中携带配置文
件的内容。业务服务容器替换对应配置文件。如果业务服务容器的配置文件不存在,则文件
存储服务容器返回包括配置文件为空的标识的报文,例如:“404 Not Found”,此时业务服
务容器可以确定该容器的配置文件尚未归档过,并继续执行启动过程。如果文件存储服务
容器返回包括其他异常报错或业务服务无法与文件存储服务正常连接的报文,则认为业务
服务启动失败,业务服务容器处于运行结束状态,等待Kubernetes稍后重启容器,并再次请
求获取配置文件。
时,Linux操作系统在内核层面会给予回调;业务服务容器收到回调后,触发通过HTTP上传
最新的配置文件到文件服务容器的操作。
前可能产生的配置文件同步完毕。
的操作。
置文件处理方法应用于其他适用的场景。
端口,在服务更新较慢的私有化部署环境下,使用NFS安全隐患很高。
业务服务配置文件的存储过程,有效提升算力,节省计算和存储资源。
配置为监听端口不对外暴露监听,仅可以在Kubernetes集群内连接。
负载均衡。
以保证服务配置文件的安全性。并设置主备文件存储服务,即实际上配置文件同步存储不
同的物理节点。
要求而无法启动。运维人员只需要将主节点的服务配置路径的绑定PVC从原有的主PVC切换
到备份PVC,并移除备份配置路径的卷映射关系,即可保证存储服务的继续正常运行,从而
保证业务服务能够正常运行。
发现的作用范围仅限于集群内;当工作负载对应的Pod数大于1时,服务发现还可以起到负
载均衡的作用。
是http://configsvr/bussiness/config.ini。即可以按照以下规则配置存储:http://文
件存储服务的服务发现名/业务服务的工作负载名/配置文件名。如果为单实例工作的业务
服务,可以利用上述的规则进行写入操作。
调度服务完成,或通过在无状态服务启动后通过业务上的信令协议完成通讯;工作服务在
运行时,不再监听本地配置文件变化,通过重新启动工作服务或追加协议让工作服务重新
拉取完成同步。
状态服务,利用有状态服务的固定Pod名,区分不同节点;以一个名为business的业务服务
为例,第一个Pod实例名为business‑0,第二个Pod实例名为business‑1。那么第一个Pod的
配置文件config.ini对应的地址为http://configsvr/bussiness/business‑0/
config.ini ,即按以下规则配置存储:http://文件存储服务的服务发现名/业务服务的工
作负载名/Pod名/配置文件名,实现不同Pod独立配置文件的需求。
容器的容器启动请求;操作202,响应于容器启动请求,发送获取待启动容器的配置文件的
文件获取请求;操作203,接收响应于文件获取请求的响应信息,响应信息用于示出待启动
容器的配置文件的获取结果;操作204,根据响应信息,判断待启动容器的启动结果;操作
205,在启动结果示出待启动容器成功启动的情况下,更新容器的服务配置文件;操作206,
上传更新后的服务配置文件,以固化服务配置文件。
隔时间,还可以设置为实时检测。
器的配置文件的文件获取请求。文件获取请求中可以携带文件名称。
服务配置文件获取过程连接失败;待启动容器的服务配置文件获取过程连接错误。
件获取过程连接错误。
式发送至业务服务,报文的设定位置的信息是服务配置文件获取结果的标识,可以用标识
“200 OK”表示待启动容器的服务配置文件获取成功,标识“404 Not Found”表示未找到相
应的服务配置文件,也即待启动容器的服务配置文件为空。
配置文件的变化的方式,在监听到容器的服务配置文件变化的情况下,上传容器的最新服
务配置文件,以更新容器的服务配置文件。
文件的变化之前,还从响应信息中提取服务配置文件,以覆盖待启动容器的默认配置文件。
以更新容器的服务配置文件。
是基于容器的私有化部署、公有化部署还是传统的非容器化部署方案,业务服务的主程序
均可以适应服务配置文件的不同的物理存储位置和存储方式。有效提高服务配置文件处理
方法的可用性和安全性。
服务容器当前的最新配置文件。
作流程:
启动操作,并在Kubernetes重启容器的情况下,返回执行操作401。
服务配置文件至业务服务容器。业务服务容器接收到当前的最新服务配置文件时,利用当
前的最新服务配置文件覆盖业务服务容器的应用程序的默认配置文件。
未在文件存储服务容器中存档。但是,该业务服务容器能够正常启动,业务服务容器包括的
应用程序能够正常运行。此时,可以监听该业务服务容器的配置文件,在配置文件发生变化
时,执行操作406。监听操作可以通过Linux系统的inotify机制实现,也可以采用其他适用
的方式。本发明对此不作具体限定。
至文件存储服务。这里需要在确认上传最新配置文件完成后再执行操作410,将容器运行结
束。通常配置文件上传为毫秒级别的,这里等待设定时间可以设置为1s、1.5s或者2s等。
现过程,此处不再赘述。
件的文件获取请求,接收响应于文件获取请求的响应信息,响应信息用于示出待启动容器
的配置文件的获取结果,并根据响应信息,判断待启动容器的启动结果,在启动结果示出待
启动容器成功启动的情况下,更新容器的服务配置文件,上传更新后的服务配置文件,以固
化服务配置文件。如此,可以部署一个云端的文件存储服务,实现云原生私有化部署,使得
业务节点检测到容器启动请求时,从文件存储服务获取服务配置文件。由此,可以在实现云
原生部署的同时,不对外暴露任何连接端口,安全可靠的跨机进行配置存取,而且无需修改
业务节点的容器中的主体业务应用程序,实现高效的实时配置文件同步保存。此外,该方法
还可以通过主备机制,实现服务配置文件的多机备份,有效保障数据安全。
下的操作步骤:操作201,检测待启动容器的容器启动请求;操作202,响应于容器启动请求,
发送获取待启动容器的配置文件的文件获取请求;操作203,接收响应于文件获取请求的响
应信息,响应信息用于示出待启动容器的配置文件的获取结果;操作204,根据响应信息,判
断待启动容器的启动结果;操作205,在启动结果示出待启动容器成功启动的情况下,更新
容器的服务配置文件;操作206,上传更新后的服务配置文件,以固化服务配置文件。
请求;文件获取模块502,用于响应于容器启动请求,发送获取待启动容器的配置文件的文
件获取请求;接收模块503,用于接收响应于文件获取请求的响应信息,响应信息用于示出
待启动容器的配置文件的获取结果;启动判断模块504,用于根据响应信息,判断待启动容
器的启动结果;更新模块505,用于在启动结果示出待启动容器成功启动的情况下,更新容
器的服务配置文件;固化模块506,用于上传更新后的服务配置文件,以固化服务配置文件。
功;待启动容器的服务配置文件为空。
器的最新服务配置文件,以更新容器的服务配置文件。
件,以更新容器的服务配置文件。
从响应信息中提取服务配置文件,以覆盖待启动容器的默认配置文件。
过程连接失败;待启动容器的服务配置文件获取过程连接错误。
中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信;存储器603,
用于存放计算机程序;处理器601,用于执行存储器603上所存放的程序时,实现上述服务配
置文件处理方法。
例相似的有益效果,因此不做赘述。对于本发明服务配置文件处理装置实施例中未披露的
技术细节,请参照本发明前述图1至4所示的方法实施例的描述而理解,为节约篇幅,因此不
再赘述。
且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有
的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该
要素的过程、方法、物品或者装置中还存在另外的相同要素。
逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以
集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相
互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通
信连接,可以是电性的、机械的或其它形式的。
元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存
储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,
该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以
是个人计算机、服务器、或者网络设备等)执行本发明各个实施例方法的全部或部分。而前
述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。