基于gitops与k8s容器交互的方法与流程
未命名
09-02
阅读:232
评论:0

1.本技术涉及互联网技术领域,具体涉及一种基于gitops与k8s容器交互的方法。
背景技术:
2.现有技术中,通过web页面对k8s容器的console交互基本上都是通过前端直接建立与k8s容器的websocket连接的方式实现的。这种方式直接暴露了k8s容器的链接地址,增加了交互过程中的安全隐患。同时,由于采用的是websocket连接方式,连接建立后,对k8s容器的整个操作过程无法记录,导致很难对console交互过程进行审计,无法追踪交互信息。
技术实现要素:
3.本技术实施例提供一种基于gitops与k8s容器交互的方法,用以解决现有的web页面与k8s容器的直接交互方式安全性低的技术问题。
4.第一方面,本技术实施例提供一种基于gitops通过web页面与k8s容器交互的方法,包括:
5.根据通过web页面发出的交互请求,建立所述web页面和git仓库之间的交互链接,并通过所述web页面和所述git仓库之间的交互链接将容器待执行命令传递至所述git仓库;
6.通过webhook监听所述git仓库,并根据所述交互请求调用容器链接程序;
7.分别建立所述容器链接程序和所述git仓库之间以及所述容器链接程序和容器console控制台之间的交互链接,并通过所述容器console控制台使k8s容器执行所述容器待执行命令和反馈所述容器待执行命令的执行结果;
8.将操作日志记录到所述git仓库中,以供审计。
9.在一个实施例中,所述git仓库包括console交互请求文件、console请求文件、console响应文件、以及console用户文件,所述console交互请求文件用于存储所述交互请求,所述console请求文件用于存储所述容器待执行命令,所述console响应文件用于存储所述容器待执行命令的执行结果,所述console用户文件用于存储所述操作日志。
10.在一个实施例中,所述根据通过web页面发出的交互请求,建立所述web页面和git仓库之间的交互链接,包括:
11.通过所述web页面将所述交互请求写入所述git仓库的console交互请求文件;
12.根据所述交互请求,建立所述web页面与所述git仓库的console请求文件以及console响应文件之间的交互链接。
13.在一个实施例中,所述通过webhook监听所述git仓库,并根据所述交互请求调用容器链接程序,包括:
14.通过webhook监听所述git仓库的console交互请求文件,并从所述console交互请求文件中提取所述交互请求的链接信息;
15.根据所述链接信息调用所述容器链接程序。
16.在一个实施例中,所述分别建立所述容器链接程序和所述git仓库之间以及所述容器链接程序和容器console控制台之间的交互链接,包括:
17.建立所述容器链接程序与所述git仓库的console请求文件以及console响应文件之间的交互链接;
18.建立所述容器链接程序和所述容器console控制台之间的交互链接。
19.在一个实施例中,还包括:
20.根据通过web页面发出的退出命令,清空所述git仓库中console交互请求文件、console请求文件、以及console响应文件的文件内容,并关闭所述web页面和所述git仓库之间、所述容器链接程序和所述git仓库之间、以及所述容器链接程序和所述容器console控制台之间的交互链接。
21.在一个实施例中,还包括:
22.分别设置所述web页面和所述容器链接程序对所述git仓库的访问权限。
23.第二方面,本技术实施例提供一种一种基于gitops通过web页面与k8s容器交互的装置,包括:
24.交互请求模块,用于:根据通过web页面发出的交互请求,建立所述web页面和git仓库之间的交互链接,并通过所述web页面和所述git仓库之间的交互链接将容器待执行命令传递至所述git仓库;
25.监听模块,用于:通过webhook监听所述git仓库,并根据所述交互请求调用容器链接程序;
26.交互模块,用于:分别建立所述容器链接程序和所述git仓库之间以及所述容器链接程序和容器console控制台之间的交互链接,并通过所述容器console控制台使k8s容器执行所述容器待执行命令和反馈所述容器待执行命令的执行结果;
27.审计模块,用于:将操作日志记录到所述git仓库中,以供审计。
28.第三方面,本技术实施例提供一种电子设备,包括处理器和存储有计算机程序的存储器,所述处理器执行所述程序时实现第一方面所述的基于gitops通过web页面与k8s容器交互的方法的步骤。
29.第四方面,本技术实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现第一方面所述的基于gitops通过web页面与k8s容器交互的方法的步骤。
30.本技术实施例提供的基于gitops与k8s容器交互的方法,基于gitops的思想,借助git仓库和webhook技术建立web页面和git仓库之间、容器链接程序和git仓库、以及容器链接程序和容器console控制台之间的交互链接,以实现web页面和k8s容器之间的隔离式交互,避免直接暴露k8s容器的链接地址,极大提高交互安全性;再者,web页面与k8s容器交互期间的所有操作记录都记录到git仓库中,使得所有操作可跟踪、可追溯,对web页面与k8s容器交互期间的审计只需要针对git仓库进行,既有效提高审计准确性,也降低审计风险。
附图说明
31.为了更清楚地说明本技术或现有技术中的技术方案,下面将对实施例或现有技术
描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
32.图1是本技术实施例提供的基于gitops通过web页面与k8s容器交互的方法的流程示意图;
33.图2示出git仓库的部分内部结构图;
34.图3是本技术实施例提供的基于gitops通过web页面与k8s容器交互的装置的模块示意图;
35.图4是本技术实施例提供的电子设备的结构示意图。
具体实施方式
36.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
37.图1为本技术实施例提供一种基于gitops通过web页面与k8s容器交互的方法的流程示意图。
38.参照图1,本技术实施例提供一种基于gitops通过web页面与k8s容器交互的方法,可以包括:
39.s110、根据通过web页面发出的交互请求,建立所述web页面和git仓库之间的交互链接,并通过所述web页面和所述git仓库之间的交互链接将容器待执行命令传递至所述git仓库。
40.s120、通过webhook监听所述git仓库,并根据所述交互请求调用容器链接程序。
41.s130、分别建立所述容器链接程序和所述git仓库之间以及所述容器链接程序和容器console控制台之间的交互链接,并通过所述容器console控制台使k8s容器执行所述容器待执行命令和反馈所述容器待执行命令的执行结果。
42.s140、将操作日志记录到所述git仓库中,以供审计。
43.需要说明的是,本发明提供的一种基于gitops通过web页面与k8s容器交互的方法的执行主体可以是任何网络侧设备,例如页面与容器交互系统等等。
44.在执行步骤s110-s140之间,网络侧设备会先执行步骤s100:
45.设置git仓库。
46.为实现web页面和k8s容器的隔离式交互,需要在git仓库中增加与中转功能相关的目录及文件设计,例如参见图2,可以在git仓库的根目录下增设container目录,再在container目录中创建关于某用户(usern)的console交互请求文件(console.opt文件)、console请求文件(consolerequest.opt文件)、console响应文件(consoleresponse.opt文件)、以及console用户文件(consoleuserx.log文件),console交互请求文件用于存储交互请求,console请求文件用于存储容器待执行命令,console响应文件用于存储容器待执行命令的执行结果,console用户文件用于存储操作日志。
47.具体的,步骤s100可以包括:
48.s1001、在git仓库的根目录下,增设container目录。
49.s1002、为用户创建用户目录和console交互文件;
50.具体的,在应用系统或git上创建用户后,可以通过api接口(如gitlab api)调用git创建目录和文件的服务在container目录下创建该用户对应的子目录(usern)和userxconsole交互请求文件、console请求文件、console响应文件、以及console用户文件。
51.其中,console交互请求文件可以设置为用于:暂存来自web页面的交互请求,当交互请求被处理后,删除该条交互请求;console请求文件可以设置为用于:暂存来自web页面的容器待执行命令,当容器待执行命令被处理后,删除该条容器待执行命令;console响应文件可以设置为用于:暂存容器待执行命令的执行结果,当容器待执行的执行结果成功返给web页面后,删除该条容器待执行命令的执行结果;console用户文件可以设置为用于:记录用户(usern)进行交互的整个过程。
52.console用户文件可以例如记录如下信息:
53.1)记录用户与容器console控制台建立双向交互长链接的过程:
54.记录用户在web页面上通过功能按钮发起与k8s容器建立交互的交互请求,网络侧设备将交互请求写入console交互请求文件的操作信息;
55.记录web页面与容器git仓库建立双向交互长链接的过程信息。
56.2)记录用户通过web页面发出容器待执行命令的过程:
57.记录用户通过web页面的命令交互界面窗口,输入容器待执行命令,网络侧设备将容器待执行命令写入console请求文件的操作;
58.记录web页面读取console响应文件中的容器待执行命令的执行结果,并将执行结果显示到交互界面窗口中的过程。
59.3)记录关闭web页面与k8s容器之间的交互时的过程:
60.记录用户通过web页面的命令交互界面窗口发出exit命令(退出命令)的操作;
61.记录网络侧设备断开web页面与console请求文件、console响应文件之间的双向交互长链接、断开容器链接程序和git仓库之间的双向交互长链接、以及断开容器链接程序和容器console控制台之间的双向交互长链接的过程。
62.在步骤s110中,网络侧设备会根据通过web页面发出的交互请求,建立所述web页面和git仓库之间的交互链接,并通过所述web页面和所述git仓库之间的交互链接将容器待执行命令传递至所述git仓库。
63.需要说明的是,步骤s110可以包括:
64.通过所述web页面将所述交互请求写入所述git仓库的console交互请求文件;
65.根据所述交互请求,建立所述web页面与所述git仓库的console请求文件以及console响应文件之间的双向交互长链接。
66.在步骤s120中,网络侧设备会通过webhook监听所述git仓库,并根据所述交互请求调用容器链接程序。
67.需要说明的是,步骤s120可以包括:
68.通过webhook监听程序监听所述git仓库的console交互请求文件,并从所述console交互请求文件中提取所述交互请求的链接信息;
69.根据所述链接信息调用所述容器链接程序。
70.在步骤s130中,网络侧设备会分别建立所述容器链接程序和所述git仓库之间以及所述容器链接程序和容器console控制台之间的交互链接,并通过所述容器console控制台使k8s容器执行所述容器待执行命令和反馈所述容器待执行命令的执行结果。
71.需要说明的是,步骤s130可以包括:
72.建立所述容器链接程序与所述git仓库的console请求文件以及console响应文件之间的双向交互长链接;
73.通过调用api接口(例如k8s apiserver接口)建立所述容器链接程序和所述容器console控制台之间的双向交互长链接。
74.需要说明的是,可以通过容器链接程序与console请求文件之间的双向交互长链接使得容器链接程序从console请求文件读取容器待执行命令,再通过容器链接程序和容器console控制台之间的双向交互长链接使得容器console控制台控制k8s容器执行容器待执行命令,k8s容器执行容器待执行命令后会得到容器待执行命令的执行结果,可以通过容器链接程序和容器console控制台之间的双向交互长链接使容器链接程序获取待执行命令的执行结果,再通过容器链接程序与console响应文件之间的双向交互长链接将待执行命令的执行结果反馈至console响应文件,然后通过web页面与console响应文件之间的双向交互长链接将待执行命令的执行结果反馈至web页面。
75.在步骤s140中,网络侧设备会将操作日志记录到所述git仓库中,以供审计。
76.需要说明的是,可以将操作日志记录到git仓库的console用户文件中。例如将所有用户通过web页面与k8s容器的交互操作行为都记录到git仓库中对应该用户的用户目录下consoleuserx.log日志文件中。
77.通过对console用户文件的审计,可以实现对所有通过web页面与k8s容器交互的操作行为的审计。
78.审计内容可以例如包括:
79.1)用户在web页面上通过功能按钮发起与k8s容器建立交互的交互请求,网络侧设备将交互请求写入console交互请求文件的操作。
80.2)web页面与console请求文件和console响应文件建立双向交互长链接的过程、容器链接程序与console请求文件和console响应文件建立双向交互长链接的过程、以及容器链接程序与容器console控制台建立双向交互长链接的过程。
81.3)用户通过web页面的命令交互界面窗口输入容器待执行命令,网络侧设备将容器待执行命令写入console请求文件的操作。
82.4)web页面读取console响应文件中的容器待执行命令的执行结果并将容器待执行命令的执行结果显示到web页面的交互界面窗口中的过程。
83.5)用户通过web页面的命令交互界面窗口发起退出命令的操作。
84.6)断开web页面与console请求文件和console响应文件建立双向交互长链接的过程、断开容器链接程序与console请求文件和console响应文件建立双向交互长链接的过程、以及断开容器链接程序与容器console控制台建立双向交互长链接的过程。
85.可以采用灵活的审计方式来进行审计,例如实时在线审计、离线审计等,使得审计过程更加简单和方便,提高审计效率和可信度,降低审计风险。
86.本技术实施例提供的基于gitops通过web页面与k8s容器交互的方法,基于gitops
的思想,借助git仓库和webhook技术建立web页面和git仓库之间、容器链接程序和git仓库、以及容器链接程序和容器console控制台之间的交互链接,以实现web页面和k8s容器之间的隔离式交互,避免直接暴露k8s容器的链接地址,极大提高交互安全性;再者,web页面与k8s容器交互期间的所有操作记录都记录到git仓库中,使得所有操作可跟踪、可追溯,对web页面与k8s容器交互期间的审计只需要针对git仓库进行,既有效提高审计准确性,也降低审计风险。另外,本技术实施例提供的基于gitops通过web页面与k8s容器交互的方法既可以保证环境一致性,还可以实现对资源配置的版本管理和稳定可重现的回滚。
87.在一种实施例中,所述基于gitops通过web页面与k8s容器交互的方法还可以包括步骤:
88.根据通过web页面发出的退出命令,清空所述git仓库中console交互请求文件、console请求文件、以及console响应文件的文件内容,并关闭所述web页面和所述git仓库之间、所述容器链接程序和所述git仓库之间、以及所述容器链接程序和所述容器console控制台之间的交互链接。
89.需要说明的是,用户与k8s容器交互过程结束后,可以通过web页面发出exit命令(退出命令),网络侧设备根据退出命令会同时关闭web页面与git仓库的console请求文件和console响应文件的双向交互长链接,然后web页面会将退出命令发送至容器链接程序,容器链接程序接收到退出命令后,网络侧设备会关闭容器链接程序和git仓库的console请求文件以及console响应文件之间的双向交互长链接,容器链接程序会调用k8s apiserver接口关闭容器链接程序和容器console控制台之间的双向交互长链接;同时,容器链接程序会将断开链接信息发送给webhook监听程序,由webhook监听程序清空git仓库中console交互请求文件、console请求文件、以及console响应文件的文件内容。在该过程中,所有的操作均会被记录到git仓库的console用户文件中,为审计提供完整的资料。
90.在一种实施例中,所述基于gitops通过web页面与k8s容器交互的方法还可以包括步骤:
91.分别设置所述web页面和所述容器链接程序对所述git仓库的访问权限。
92.需要说明的是,可以设置只有web页面拥有对git仓库的console请求文件的写权限;设置web页面对git仓库的console响应文件仅拥有读权限;设置容器链接程序对git仓库的console请求文件仅拥有读权限;设置只有容器链接程序拥有对git仓库的console响应文件的写权限;即对于git仓库的console请求文件,只有web页面可以写入信息,而容器链接程序只可以读取信息,对于git仓库的console响应文件,只有容器链接程序可以写入信息,而web页面只可以读取信息,,防止资源争用,再者,通过对git仓库的文件的访问权限控制,限制对k8s容器的访问,能够有效提高安全性。
93.本技术实施例提供的基于gitops通过web页面与k8s容器交互的方法可以通过vue编写前端程序提供用户操作界面,基于go语言编写程序监听git和集群事件,不用在前后端建立长连接占用网络资源,将前端与git解耦,使用户直接操作git也能实时更新集群资源,也可根据git和集群事件有针对性地检查、更新资源状态,避免定时遍历git中的大量配置文件导致的资源损耗。
94.下面对本技术实施例提供的基于gitops通过web页面与k8s容器交互的装置进行描述,下文描述的基于gitops通过web页面与k8s容器交互的装置与上文描述的基于gitops
通过web页面与k8s容器交互的方法可相互对应参照。
95.图3为本技术实施例提供一种基于gitops通过web页面与k8s容器交互的装置的结构示意图。
96.参照图3,本技术实施例提供一种基于gitops通过web页面与k8s容器交互的装置,可以包括:
97.交互请求模块310,用于:根据通过web页面发出的交互请求,建立所述web页面和git仓库之间的交互链接,并通过所述web页面和所述git仓库之间的交互链接将容器待执行命令传递至所述git仓库;
98.监听模块320,用于:通过webhook监听所述git仓库,并根据所述交互请求调用容器链接程序;
99.交互模块330,用于:分别建立所述容器链接程序和所述git仓库之间以及所述容器链接程序和容器console控制台之间的交互链接,并通过所述容器console控制台使k8s容器执行所述容器待执行命令和反馈所述容器待执行命令的执行结果;
100.审计模块340,用于:将操作日志记录到所述git仓库中,以供审计。
101.需要说明的是,所述git仓库包括console交互请求文件、console请求文件、console响应文件、以及console用户文件,所述console交互请求文件用于存储所述交互请求,所述console请求文件用于存储所述容器待执行命令,所述console响应文件用于存储所述容器待执行命令的执行结果,所述console用户文件用于存储所述操作日志。
102.在一种实施例中,所述交互请求模块310可以包括:
103.交互请求写入子模块,用于:通过所述web页面将所述交互请求写入所述git仓库的console交互请求文件;
104.第一交互链接建立子模块,用于:根据所述交互请求,建立所述web页面与所述git仓库的console请求文件以及console响应文件之间的交互链接。
105.在一种实施例中,所述监听模块320可以包括:
106.链接信息提取子模块,用于:通过webhook监听所述git仓库的console交互请求文件,并从所述console交互请求文件中提取所述交互请求的链接信息;
107.容器链接程序调用子模块,用于:根据所述链接信息调用所述容器链接程序。
108.在一种实施例中,所述交互模块330可以包括:
109.第二交互链接建立子模块,用于:建立所述容器链接程序与所述git仓库的console请求文件以及console响应文件之间的交互链接;
110.第三交互链接建立子模块,用于:建立所述容器链接程序和所述容器console控制台之间的交互链接。
111.在一种实施例中,还包括:
112.交互退出模块,用于:根据通过web页面发出的退出命令,清空所述git仓库中console交互请求文件、console请求文件、以及console响应文件的文件内容,并关闭所述web页面和所述git仓库之间、所述容器链接程序和所述git仓库之间、以及所述容器链接程序和所述容器console控制台之间的交互链接。
113.在一种实施例中,还包括:
114.访问权限设置模块,用于:分别设置所述web页面和所述容器链接程序对所述git
仓库的访问权限。
115.图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)810、通信接口(communication interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的计算机程序,以执行基于gitops通过web页面与k8s容器交互的方法的步骤,例如包括:
116.根据通过web页面发出的交互请求,建立所述web页面和git仓库之间的交互链接,并通过所述web页面和所述git仓库之间的交互链接将容器待执行命令传递至所述git仓库;
117.通过webhook监听所述git仓库,并根据所述交互请求调用容器链接程序;
118.分别建立所述容器链接程序和所述git仓库之间以及所述容器链接程序和容器console控制台之间的交互链接,并通过所述容器console控制台使k8s容器执行所述容器待执行命令和反馈所述容器待执行命令的执行结果;
119.将操作日志记录到所述git仓库中,以供审计。
120.此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
121.另一方面,本技术实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各实施例所提供的基于gitops通过web页面与k8s容器交互的方法的步骤,例如包括:
122.根据通过web页面发出的交互请求,建立所述web页面和git仓库之间的交互链接,并通过所述web页面和所述git仓库之间的交互链接将容器待执行命令传递至所述git仓库;
123.通过webhook监听所述git仓库,并根据所述交互请求调用容器链接程序;
124.分别建立所述容器链接程序和所述git仓库之间以及所述容器链接程序和容器console控制台之间的交互链接,并通过所述容器console控制台使k8s容器执行所述容器待执行命令和反馈所述容器待执行命令的执行结果;
125.将操作日志记录到所述git仓库中,以供审计。
126.另一方面,本技术实施例还提供一种处理器可读存储介质,所述处理器可读存储介质存储有计算机程序,所述计算机程序用于使处理器执行上述各实施例所提供的基于gitops通过web页面与k8s容器交互的方法的步骤,例如包括:
127.根据通过web页面发出的交互请求,建立所述web页面和git仓库之间的交互链接,并通过所述web页面和所述git仓库之间的交互链接将容器待执行命令传递至所述git仓
库;
128.通过webhook监听所述git仓库,并根据所述交互请求调用容器链接程序;
129.分别建立所述容器链接程序和所述git仓库之间以及所述容器链接程序和容器console控制台之间的交互链接,并通过所述容器console控制台使k8s容器执行所述容器待执行命令和反馈所述容器待执行命令的执行结果;
130.将操作日志记录到所述git仓库中,以供审计。
131.所述处理器可读存储介质可以是处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nand flash)、固态硬盘(ssd))等。
132.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
133.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
134.最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
技术特征:
1.一种基于gitops通过web页面与k8s容器交互的方法,其特征在于,包括:根据通过web页面发出的交互请求,建立所述web页面和git仓库之间的交互链接,并通过所述web页面和所述git仓库之间的交互链接将容器待执行命令传递至所述git仓库;通过webhook监听所述git仓库,并根据所述交互请求调用容器链接程序;分别建立所述容器链接程序和所述git仓库之间以及所述容器链接程序和容器console控制台之间的交互链接,并通过所述容器console控制台使k8s容器执行所述容器待执行命令和反馈所述容器待执行命令的执行结果;将操作日志记录到所述git仓库中,以供审计。2.根据权利要求1所述的基于gitops通过web页面与k8s容器交互的方法,其特征在于,所述git仓库包括console交互请求文件、console请求文件、console响应文件、以及console用户文件,所述console交互请求文件用于存储所述交互请求,所述console请求文件用于存储所述容器待执行命令,所述console响应文件用于存储所述容器待执行命令的执行结果,所述console用户文件用于存储所述操作日志。3.根据权利要求2所述的基于gitops通过web页面与k8s容器交互的方法,其特征在于,所述根据通过web页面发出的交互请求,建立所述web页面和git仓库之间的交互链接,包括:通过所述web页面将所述交互请求写入所述git仓库的console交互请求文件;根据所述交互请求,建立所述web页面与所述git仓库的console请求文件以及console响应文件之间的交互链接。4.根据权利要求3所述的基于gitops通过web页面与k8s容器交互的方法,其特征在于,所述通过webhook监听所述git仓库,并根据所述交互请求调用容器链接程序,包括:通过webhook监听所述git仓库的console交互请求文件,并从所述console交互请求文件中提取所述交互请求的链接信息;根据所述链接信息调用所述容器链接程序。5.根据权利要求2所述的基于gitops通过web页面与k8s容器交互的方法,其特征在于,所述分别建立所述容器链接程序和所述git仓库之间以及所述容器链接程序和容器console控制台之间的交互链接,包括:建立所述容器链接程序与所述git仓库的console请求文件以及console响应文件之间的交互链接;建立所述容器链接程序和所述容器console控制台之间的交互链接。6.根据权利要求2-5任一项所述的基于gitops通过web页面与k8s容器交互的方法,其特征在于,还包括:根据通过web页面发出的退出命令,清空所述git仓库中console交互请求文件、console请求文件、以及console响应文件的文件内容,并关闭所述web页面和所述git仓库之间、所述容器链接程序和所述git仓库之间、以及所述容器链接程序和所述容器console控制台之间的交互链接。7.根据权利要求1-5任一项所述的基于gitops通过web页面与k8s容器交互的方法,其特征在于,还包括:分别设置所述web页面和所述容器链接程序对所述git仓库的访问权限。
8.一种基于gitops通过web页面与k8s容器交互的装置,其特征在于,包括:交互请求模块,用于:根据通过web页面发出的交互请求,建立所述web页面和git仓库之间的交互链接,并通过所述web页面和所述git仓库之间的交互链接将容器待执行命令传递至所述git仓库;监听模块,用于:通过webhook监听所述git仓库,并根据所述交互请求调用容器链接程序;交互模块,用于:分别建立所述容器链接程序和所述git仓库之间以及所述容器链接程序和容器console控制台之间的交互链接,并通过所述容器console控制台使k8s容器执行所述容器待执行命令和反馈所述容器待执行命令的执行结果;审计模块,用于:将操作日志记录到所述git仓库中,以供审计。9.一种电子设备,包括处理器和存储有计算机程序的存储器,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的基于gitops通过web页面与k8s容器交互的方法的步骤。10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的基于gitops通过web页面与k8s容器交互的方法的步骤。
技术总结
本申请提供基于gitops与k8s容器交互的方法,涉及互联网技术领域。所述方法包括:建立web页面和git仓库的交互链接,并将容器待执行命令传递至git仓库;通过webhook监听git仓库并根据交互请求调用容器链接程序;建立容器链接程序和git仓库以及容器链接程序和容器console控制台的交互链接,使k8s容器执行容器待执行命令;将操作日志记录到git仓库中,以供审计。本申请实施例实现web页面和k8s容器的隔离式交互,避免直接暴露k8s容器的链接地址,提高交互安全性;对交互期间的审计只针对git仓库进行,既有效提高审计准确性,也降低审计风险。险。险。
技术研发人员:陈国 张一波 魏宝辉 张春 王庆栋
受保护的技术使用者:中国移动通信集团有限公司
技术研发日:2022.02.17
技术公布日:2023/8/31
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/