本发明属于嵌入式操作系统,尤其涉及一种轻量级容器集群的容器api网关及维护方法。
背景技术:
1、针对容器服务平台的api网关,现有的技术几乎都是基于linux操作系统以及它上面的容器引擎以及容器服务平台(如:docker、k8s等)。要将这些容器引擎或者容器服务平台的api网关移植到嵌入式轻量化实时容器操作系统之中,存在如下问题:
2、1)功能复杂,相较于嵌入式轻量化实时容器操作系统,无论是docker所提供的api网关还是k8s提供的api server,都过于复杂;
3、2)安全性不高,嵌入式轻量化实时容器操作系统研制的目的是应用于任务关键领域,而像docker所提供的api网关、k8s所提供的api server由于功能复杂、代码量庞大,要想通过功能安全认证会付出巨大的人力、财力成本;
4、3)协议不一样,无论是docker所提供的api网关还是k8s所提供的api server都提供了数量庞大的接口,而嵌入式轻量级实时容器api网关所提供的接口仅仅是它们的很小一部分的子集;
5、4)所运行的环境不一样,docker所提供的api网关以及k8s所提供的api server皆是依赖于linux操作系统提供的运行环境,而嵌入式轻量级实时容器api网关则是比较灵活,既可以运行在专有的设备和操作系统之上也可以运行国产linux操作系统之上。
6、综上所述,现有的docker引擎提供的api网关和k8s提供的api server都不满足嵌入式轻量化实时容器操作系统对于api网关的要求。
技术实现思路
1、有鉴于此,本发明实施例提供了一种轻量级容器集群的容器api网关及维护方法,该容器api网关部署在与轻量级容器集群任一节点均独立的硬件资源上,在对轻量级容器集群进行维护时通过热插拔连接轻量级容器集群的控制节点,通过命令执行引擎把从对轻量级容器集群维护的外部工具获得的容器api网关的命令行命令转化为轻量级容器集群的控制节点的维护命令,通过节点通信代理转发该维护命令至控制节点,并从控制节点接收该维护命令的执行结果,从而实现外部工具对轻量级容器集群的维护。本发明实施例的容器api网关独立于轻量级容器集群,通过热插拔连接轻量级容器集群,既保持轻量级容器集群的实时性和安全性,又使其容器的部署、升级更为灵活和方便。
2、第一方面,本发明实施例提供了一种轻量级容器集群的容器api网关,部署在与轻量级容器集群任一节点均独立的硬件资源上,在对所述容器集群进行维护时通过热插拔连接所述容器集群的控制节点,包括:命令执行引擎和节点通信代理;所述命令执行引擎用于把第一命令转换为第二命令,第一命令为所述网关对所述容器集群维护的命令行命令,从外部工具获得,第二命令为所述控制节点对所述容器集群进行维护的命令;所述节点通信代理用于把第二命令转发至所述控制节点,并接收第二命令的执行结果。
3、由上,本发明实施例的容器api网关独立于轻量级容器集群,通过热插拔连接轻量级容器集群,既保持轻量级容器集群的实时性和安全性,又使其容器的部署、升级更为灵活和方便。
4、在第一方面的一种可能实施方式中,第一命令被转换为多个依次执行的第二命令,所述命令执行引擎还用于根据第二命令的执行结果判断是否进行继续第二命令。
5、由上,命令执行引擎不仅进行命令转换,还控制第二命令的执行进程,使外部工具通过容器api网关进行容器维护时可以处理各种意外情况。
6、在第一方面的一种可能实施方式中,所述节点通信代理具体用于对第二命令进行加密和封装,并转发至所述控制节点,还用于对所述控制节点的反馈结果进行解封和解密,获得第二命令的执行结果;所述节点通信代理还具体用于在所述控制节点对所述网关进行身份认证时提供相关身份和授权信息。
7、由上,通过节点通信代理为容器api网关的身份认证提供信息和对第二命令进行加密,从而使外部工具通过容器api网关对轻量级容器集群进行维护时,不影响轻量级容器集群的安全。
8、在第一方面的一种可能实施方式中,所述网关还通过热插拔连接所述容器集群的镜像仓库,还包括:镜像拉取工具,用于在部署容器时从所述镜像仓库拉取相关容器的镜像至本地,并转发至所述容器集群的存储系统;所述命令执行引擎还用于把从所述控制节点接收的镜像拉取命令发送至镜像拉取工具。
9、由上,通过镜像拉取工具从镜像仓库拉取镜像,实现从镜像仓库部署容器。
10、在第一方面的一种可能实施方式中,还包括:外部认证单元,用于对外部工具进行身份认证,所述外部工具至少包括下列之一:命令行工具和第三方工具;命令行工具用于通过第一命令对所述容器集群进行维护的工具;第三方工具用于通过所述网关对所述容器集群进行维护的工具。
11、由上,通过外部单元对外部工具的身份认证,从而使外部工具不影响容器api网关和轻量级容器集群的安全。
12、在第一方面的一种可能实施方式中,还包括:外部集成代理,用于向第三方工具提供api接口,该api接口用于把第三命令转换为第一命令,并向第三方工具反馈第三命令的执行结果,第三命令为第三方工具通过所述网关对所述容器集群进行维护的命令,第三命令的执行结果根据第二命令的执行结果获得。在一些实施例中,api接口为基于http或https的格式。
13、由上,通过外部集成代理实现从使用it生态语言和协议的平台接入容器api网关,从而实现对轻量级容器集群的维护。
14、在第一方面的一种可能实施方式中,所述外部集成代理还用于与第三方工具建立基于http或https的连接,用于传输第三命令和其执行结果;所述外部集成代理还调用所述外部认证单元对第三方工具进行身份认证。
15、由上,外部集成代理通过调用外部认证单元对第三方工具进行身份认证,从而使第三方工具不影响容器api网关和轻量级容器集群的安全。
16、在第一方面的一种可能实施方式中,所述容器集群中容器为实时容器。
17、由上,本发明提供容器api网关具有独立的资源,不降低轻量级容器集群中实时容器的实时性。
18、在第一方面的一种可能实施方式中,所述网关的操作系统为实时操作系统。
19、由上,容器api网关通过使用实时操作系统,从而不降低轻量级实时容器集群的实时性。
20、第二方面,本发明实施例提供了一种轻量级容器集群的维护方法,通过容器api网关对容器集群进行维护,所述容器api网关部署在与所述容器集群任一节点均独立的硬件资源上,在对所述容器集群进行维护时通过热插拔连接所述容器集群的控制节点,包括:所述网关从对所述容器集群维护的外部工具的交互信息中获得第一命令,第一命令为所述网关对所述容器集群维护的命令行命令;所述网关把第一命令转换为第二命令,第二命令为所述控制节点对所述容器集群进行维护的命令;把第二命令转发至所述控制节点,并接收第二命令的执行结果。
21、由上,本发明实施例的容器api网关独立于轻量级容器集群,通过热插拔连接轻量级容器集群,既保持轻量级容器集群的实时性和安全性,又使其容器的部署、升级更为灵活和方便。
22、在第二方面的一种可能实施方式中,第一命令被转换为多个依次执行的第二命令;所述方法还包括:所述网关根据第二命令的执行结果判断是否进行继续第二命令。
23、由上,通过容器api网关控制第二命令的执行进程,使外部工具通过容器api网关进行容器维护时可以处理各种意外情况。
24、在第二方面的一种可能实施方式中,所述把第二命令转发至所述控制节点,包括:对第二命令进行加密和封装,并转发至所述控制节点;所述接收第二命令的执行结果,包括:对所述控制节点的反馈结果进行解封和解密,获得第二命令的执行结果;所述方法还包括:在所述控制节点对所述网关进行身份认证。
25、由上,通过控制节点对容器api网关进行身份认证和容器api网关对第二命令进行加密,从而使外部工具通过容器api网关对轻量级容器集群进行维护时,不影响轻量级容器集群的安全。
26、在第二方面的一种可能实施方式中,所述网关还通过热插拔连接所述容器集群的镜像仓库,所述方法还包括:在部署容器时,所述网关把从所述控制节点接收的镜像拉取命令,从所述镜像仓库拉取相关容器的镜像至本地,并转发至所述容器集群的存储系统。
27、由上,通过从镜像仓库拉取镜像,实现从镜像仓库部署容器。
28、在第二方面的一种可能实施方式中,还包括:所述网关对待连接的外部工具进行身份认证,所述外部工具至少包括下列之一:命令行工具和第三方工具;命令行工具用于通过第一命令对所述容器集群进行维护的工具;第三方工具用于通过所述网关对所述容器集群进行维护的工具。
29、由上,通过对外部工具的身份认证,从而使外部工具不影响容器api网关和轻量级容器集群的安全。
30、在第二方面的一种可能实施方式中,还包括:所述容器api网关对第三方工具进行身份认证,并与第三方工具建立基于http或https的连接;所述容器api网关利用该连接传输第三命令和其执行结果。
31、由上,通过对第三方工具进行身份认证,从而使第三方工具不影响容器api网关和轻量级容器集群的安全,使用it生态语言和协议的平台接入容器api网关,从而实现对轻量级容器集群的维护。
32、在第二方面的一种可能实施方式中,所述容器集群中容器为实时容器。
33、由上,本发明提供容器api网关具有独立的资源,不降低轻量级容器集群中实时容器的实时性。
34、在第二方面的一种可能实施方式中,所述网关的操作系统为实时操作系统。
35、由上,容器api网关通过使用实时操作系统,从而不降低轻量级实时容器集群的实时性。
1.一种轻量级容器集群的容器api网关,其特征在于,部署在与轻量级容器集群任一节点均独立的硬件资源上,在对所述容器集群进行维护时通过热插拔连接所述容器集群的控制节点,包括:命令执行引擎和节点通信代理;
2.根据权利要求1所述网关,其特征在于,第一命令被转换为多个依次执行的第二命令,所述命令执行引擎还用于根据第二命令的执行结果判断是否进行继续第二命令。
3.根据权利要求1所述网关,其特征在于,所述节点通信代理具体用于对第二命令进行加密和封装,并转发至所述控制节点,还用于对所述控制节点的反馈结果进行解封和解密,获得第二命令的执行结果;
4.根据权利要求1所述网关,其特征在于,所述网关还通过热插拔连接所述容器集群的镜像仓库,还包括:镜像拉取工具,用于在部署容器时从所述镜像仓库拉取相关容器的镜像至本地,并转发至所述容器集群的存储系统;
5.根据权利要求1所述网关,其特征在于,还包括:外部认证单元,用于对外部工具进行身份认证,所述外部工具至少包括下列之一:命令行工具和第三方工具;
6.根据权利要求5所述网关,其特征在于,还包括:外部集成代理,用于向第三方工具提供api接口,该api接口用于把第三命令转换为第一命令,并向第三方工具反馈第三命令的执行结果,第三命令为第三方工具通过所述网关对所述容器集群进行维护的命令,第三命令的执行结果根据第二命令的执行结果获得。
7.根据权利要求6所述网关,其特征在于,所述外部集成代理还用于与第三方工具建立基于http或https的连接,用于传输第三命令和其执行结果;
8.根据权利要求1所述网关,其特征在于,所述容器集群中容器为实时容器。
9.根据权利要求1所述网关,其特征在于,所述网关的操作系统为实时操作系统。
10.一种轻量级容器集群的维护方法,其特征在于,通过容器api网关对容器集群进行维护,所述容器api网关部署在与所述容器集群任一节点均独立的硬件资源上,在对所述容器集群进行维护时通过热插拔连接所述容器集群的控制节点,包括:
