一种阻断K8s平台部署不合法镜像的方法及系统技术方案

技术编号:38053822 阅读:10 留言:0更新日期:2023-06-30 11:19
本发明专利技术公开了一种阻断K8s平台部署不合法镜像的方法及系统,该方法包括如下步骤:S1:查看K8s集群信息,并检查K8s集群是否开启准入控制回调钩子admission webhook;S2:编写回调钩子webhook服务程序,并将回调钩子webhook服务程序构建成镜像;S3:将步骤S2构建的镜像推送至Harbor镜像仓库,并通过工作资源负载Deployment方式部署webhook服务;S4:创建服务Service对webhook服务进行负载。本发明专利技术可及时、准确的阻止不合法镜像的部署。准确的阻止不合法镜像的部署。准确的阻止不合法镜像的部署。

【技术实现步骤摘要】
一种阻断K8s平台部署不合法镜像的方法及系统


[0001]本专利技术涉及软件运维
,尤其涉及一种阻断K8s平台部署不合法镜像的方法及系统。

技术介绍

[0002]kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。
[0003]镜像安全,容器镜像作为容器运行的前提,更是容器的核心内容,在其中定义了容器运行时所需进程、环境、参数等各种信息,如果容器在运行时被入侵并获取了主机的操作权限,就可能会为系统甚至整个企业运行环境带来巨大的损害,因此镜像的安全对于容器化运行环境至关重要。
[0004]准入控制器是Kubernetes提供的扩展功能,它是一段代码,通过这段代码我们可以在对象被持久化之前拦截、验证K8s API Server请求。其中MutatingAdmissionWebhook和ValidatingAdmissionWebhook是2个特殊的控制器,它们可以根据各自API中的配置分别执行变更、验证准入控制webhook。整体步骤如图2所示。

技术实现思路

[0005]本专利技术的目的是提供一种阻断K8s平台部署不合法镜像的方法及系统,以解决如何在不破坏业务逻辑的前提下实现动态判断镜像是否合法,及时、准确的阻止不合法镜像的部署,保证K8s平台的安全和稳定性的技术问题。
[0006]本专利技术是采用以下技术方案实现的:一种阻断K8s平台部署不合法镜像的方法,包括如下步骤:S1:查看K8s集群信息,并检查K8s集群是否开启准入控制回调钩子admission webhook;S2:编写回调钩子webhook服务程序,并将回调钩子webhook服务程序构建成镜像;S3:将步骤S2构建的镜像推送至Harbor镜像仓库,并通过工作资源负载Deployment方式部署webhook服务;S4:创建服务Service对webhook服务进行负载。
[0007]进一步的,步骤S1包括如下子步骤:S11:通过执行kubectl cluster

info指令查看K8s集群信息;S12:确认K8s集群是否存在,若K8s集群不存在时,搭建K8s集群;S13:检查K8s集群是否开启准入控制回调钩子admission webhook。
[0008]进一步的,步骤S13包括如下子步骤:S131:若K8s集群已开启准入控制回调钩子admission webhook,则进入步骤S2;
S132:若K8s集群未开启准入控制回调钩子admission webhook,则手动配置开启准入控制回调钩子admissionwebhook,并重启apiserver服务。
[0009]进一步的,步骤S2包括如下子步骤:S21:webhook中调用Trivy镜像扫描功能进行镜像扫描并生成镜像扫描报告;S22:webhook解析镜像扫描报告,若报告中存在critical漏洞,则返回allowed false和镜像不合法错误,否则返回allowed true;S23:通过Dockerfile 将webhook构建成镜像。
[0010]进一步的,步骤S3包括如下子步骤:S31:将webhook程序服务镜像推送到指定Harbor镜像仓库上;S32:在Kubernetes集群内通过Deployment方式部署webhook服务。
[0011]进一步的,步骤S32包括如下子步骤:S321:从Harbor镜像仓库拉取webhook服务镜像;S322:使用webhook镜像启动web server服务。
[0012]进一步的,步骤S4包括如下子步骤:S41:创建Service对webhook server进行负载;S42:配置webhook到webhook链上。
[0013]一种阻断K8s平台部署不合法镜像的系统,包括查看模块、编写模块、推送模块和创建模块,所述查看模块用以查看K8s集群信息,并检查K8s集群是否开启准入控制回调钩子admission webhook;所述编写模块用以编写回调钩子webhook服务程序,并将回调钩子webhook服务程序构建成镜像;所述推送模块用以将步骤S2构建的镜像推送至Harbor镜像仓库,并通过工作资源负载Deployment方式部署webhook服务;所述创建模块用以创建服务Service对webhook服务进行负载。
[0014]本专利技术的有益效果在于:本专利技术利用动态准入控制器技术实现了阻止在Kubernetes平台部署不合法镜像的方法,在不破坏业务逻辑的前提下实现动态判断镜像是否合法,及时、准确的阻止不合法镜像的部署,保证了平台的安全和稳定性。
附图说明
[0015]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
[0016]图1为本专利技术流程图;图2为k8s应用程序接口请求生命周期流程图。
具体实施方式
[0017]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本专利技术实施例的组件可以以各种不同的配置来布置和设计。
[0018]应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0019]下面结合附图,对本专利技术的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
[0020]实施例1:参见图1,一种阻断K8s平台部署不合法镜像的方法,包括如下步骤:S1:通过执行kubectl cluster

info查看k8s集群相关信息,确认集群是否已存在。
[0021]S2:当k8s集群不存在时搭建k8s集群。
[0022]S3:通过kubectl getpod kube

apiserver

xxx
ꢀ‑
o yaml 查看k8s集群是否开启动态准入控制(即apiserver pod是否包含如下配置:
‑‑
enable

admission

plugins=NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook)。
[0023]S本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种阻断K8s平台部署不合法镜像的方法,其特征在于,包括如下步骤:S1:查看K8s集群信息,并检查K8s集群是否开启准入控制回调钩子admission webhook;S2:编写回调钩子webhook服务程序,并将回调钩子webhook服务程序构建成镜像;S3:将步骤S2构建的镜像推送至Harbor镜像仓库,并通过工作资源负载Deployment方式部署webhook服务;S4:创建服务Service对webhook服务进行负载。2.如权利要求1所述的一种阻断K8s平台部署不合法镜像的方法,其特征在于,步骤S1包括如下子步骤:S11:通过执行kubectl cluster

info指令查看K8s集群信息;S12:确认K8s集群是否存在,若K8s集群不存在时,搭建K8s集群;S13:检查K8s集群是否开启准入控制回调钩子admission webhook。3.如权利要求2所述的一种阻断K8s平台部署不合法镜像的方法,其特征在于,步骤S13包括如下子步骤:S131:若K8s集群已开启准入控制回调钩子admission webhook,则进入步骤S2;S132:若K8s集群未开启准入控制回调钩子admission webhook,则手动配置开启准入控制回调钩子admission webhook,并重启apiserver服务。4.如权利要求1所述的一种阻断K8s平台部署不合法镜像的方法,其特征在于,步骤S2包括如下子步骤:S21:webhook中调用Trivy镜像扫描功能进行镜像扫描并生成镜像扫描报告;S22:webhook解析镜像扫描报告,若报告中存在critical漏洞,则返回allo...

【专利技术属性】
技术研发人员:王超田吉李佳刘彪娄江南李成杨爽牛建平孙大臣管春元谢斌焦质晔滕训超孙增强
申请(专利权)人:启明信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1