本发明涉及软件运维,尤其涉及一种阻断k8s平台部署不合法镜像的方法及系统。
背景技术:
1、kubernetes,简称k8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,kubernetes的目标是让部署容器化的应用简单并且高效(powerful),kubernetes提供了应用部署,规划,更新,维护的一种机制。
2、镜像安全,容器镜像作为容器运行的前提,更是容器的核心内容,在其中定义了容器运行时所需进程、环境、参数等各种信息,如果容器在运行时被入侵并获取了主机的操作权限,就可能会为系统甚至整个企业运行环境带来巨大的损害,因此镜像的安全对于容器化运行环境至关重要。
3、准入控制器是kubernetes提供的扩展功能,它是一段代码,通过这段代码我们可以在对象被持久化之前拦截、验证k8s api server请求。其中mutatingadmissionwebhook和validatingadmissionwebhook是2个特殊的控制器,它们可以根据各自api中的配置分别执行变更、验证准入控制webhook。整体步骤如图2所示。
技术实现思路
1、本发明的目的是提供一种阻断k8s平台部署不合法镜像的方法及系统,以解决如何在不破坏业务逻辑的前提下实现动态判断镜像是否合法,及时、准确的阻止不合法镜像的部署,保证k8s平台的安全和稳定性的技术问题。
2、本发明是采用以下技术方案实现的:一种阻断k8s平台部署不合法镜像的方法,包括如下步骤:
3、s1:查看k8s集群信息,并检查k8s集群是否开启准入控制回调钩子admissionwebhook;
4、s2:编写回调钩子webhook服务程序,并将回调钩子webhook服务程序构建成镜像;
5、s3:将步骤s2构建的镜像推送至harbor镜像仓库,并通过工作资源负载deployment方式部署webhook服务;
6、s4:创建服务service对webhook服务进行负载。
7、进一步的,步骤s1包括如下子步骤:
8、s11:通过执行kubectl cluster-info指令查看k8s集群信息;
9、s12:确认k8s集群是否存在,若k8s集群不存在时,搭建k8s集群;
10、s13:检查k8s集群是否开启准入控制回调钩子admission webhook。
11、进一步的,步骤s13包括如下子步骤:
12、s131:若k8s集群已开启准入控制回调钩子admission webhook,则进入步骤s2;
13、s132:若k8s集群未开启准入控制回调钩子admission webhook,则手动配置开启准入控制回调钩子admissionwebhook,并重启apiserver服务。
14、进一步的,步骤s2包括如下子步骤:
15、s21:webhook中调用trivy镜像扫描功能进行镜像扫描并生成镜像扫描报告;
16、s22:webhook解析镜像扫描报告,若报告中存在critical漏洞,则返回allowedfalse和镜像不合法错误,否则返回allowed true;
17、s23:通过dockerfile 将webhook构建成镜像。
18、进一步的,步骤s3包括如下子步骤:
19、s31:将webhook程序服务镜像推送到指定harbor镜像仓库上;
20、s32:在kubernetes集群内通过deployment方式部署webhook服务。
21、进一步的,步骤s32包括如下子步骤:
22、s321:从harbor镜像仓库拉取webhook服务镜像;
23、s322:使用webhook镜像启动web server服务。
24、进一步的,步骤s4包括如下子步骤:
25、s41:创建service对webhook server进行负载;
26、s42:配置webhook到webhook链上。
27、一种阻断k8s平台部署不合法镜像的系统,包括查看模块、编写模块、推送模块和创建模块,所述查看模块用以查看k8s集群信息,并检查k8s集群是否开启准入控制回调钩子admission webhook;所述编写模块用以编写回调钩子webhook服务程序,并将回调钩子webhook服务程序构建成镜像;所述推送模块用以将步骤s2构建的镜像推送至harbor镜像仓库,并通过工作资源负载deployment方式部署webhook服务;所述创建模块用以创建服务service对webhook服务进行负载。
28、本发明的有益效果在于:本发明利用动态准入控制器技术实现了阻止在kubernetes平台部署不合法镜像的方法,在不破坏业务逻辑的前提下实现动态判断镜像是否合法,及时、准确的阻止不合法镜像的部署,保证了平台的安全和稳定性。
1.一种阻断k8s平台部署不合法镜像的方法,其特征在于,包括如下步骤:
2.如权利要求1所述的一种阻断k8s平台部署不合法镜像的方法,其特征在于,步骤s1包括如下子步骤:
3.如权利要求2所述的一种阻断k8s平台部署不合法镜像的方法,其特征在于,步骤s13包括如下子步骤:
4.如权利要求1所述的一种阻断k8s平台部署不合法镜像的方法,其特征在于,步骤s2包括如下子步骤:
5.如权利要求1所述的一种阻断k8s平台部署不合法镜像的方法,其特征在于,步骤s3包括如下子步骤:
6.如权利要求1所述的一种阻断k8s平台部署不合法镜像的方法,其特征在于,步骤s32包括如下子步骤:
7.如权利要求1所述的一种阻断k8s平台部署不合法镜像的方法,其特征在于,步骤s4包括如下子步骤:
8. 一种阻断k8s平台部署不合法镜像的系统,用以实现权利要求1~7任意一项所述的一种阻断k8s平台部署不合法镜像的方法,其特征在于,包括查看模块、编写模块、推送模块和创建模块,所述查看模块用以查看k8s集群信息,并检查k8s集群是否开启准入控制回调钩子admission webhook;所述编写模块用以编写回调钩子webhook服务程序,并将回调钩子webhook服务程序构建成镜像;所述推送模块用以将步骤s2构建的镜像推送至harbor镜像仓库,并通过工作资源负载deployment方式部署webhook服务;所述创建模块用以创建服务service对webhook服务进行负载。