一种基于Kubernetes构建动态资源准入控制器的方法技术

技术编号:26761903 阅读:21 留言:0更新日期:2020-12-18 23:04
本发明专利技术公开了一种基于Kubernetes构建动态资源准入控制器的方法,属于云原生的技术领域。其包括补丁控制器、验证控制器、自动生成控制器和命令行控制器四个组件,包括如下步骤:初始化系统配置至kubernetes集群中,如果配置出错,则退出系统;初始化命令行控制器、启动补丁控制器、验证控制器、自动生成控制器,若任意一个控制器出错则不断重试,直至所有控制器均正常运行,当所有组件正常运行时表示准入系统正常运行。本发明专利技术能够确保应用程序在不断变化的控制环境中保持合规,加强系统的安全性,并降低运维人员集群管理的复杂度。

【技术实现步骤摘要】
一种基于Kubernetes构建动态资源准入控制器的方法
本专利技术属于云原生的
,尤其涉及一种基于Kubernetes构建动态资源准入控制器的方法。
技术介绍
近年来,容器技术和Kubernetes平台持续升温,Kubernetes极大地提高了应用部署的速度和可管理性。全球范围内各行各业都在这一轻量级虚拟化方案上进行着积极而富有成效的探索,由于其灵活性、可扩展性和易用性,Kubernetes已成为容器编排器的事实标准,迅速落地并赋能产业,大大提高了资源利用效率和生产力。随着容器化的重要甚至核心业务越来越多,容器安全的重要性也在不断提高。作为一项依然处于发展阶段的新技术,容器的安全性在不断地提高,也在不断地受到挑战。目前尚未存在针对kubernetes平台的动态资源准入方案,运维人员无法进行标准化的容器治理与配置管理,这无疑增大了Kubernetes集群管理的复杂程度。更重要的,没有一个合理的安全基准来提高kubernetes集群安全性,当集群被运行未授权的容器进而用于非法目的甚至反向控制集群,一旦造成客户损失将对企业造成了无法估量的影响。
技术实现思路
本专利技术的专利技术目的是提供一种基于Kubernetes构建动态资源准入控制器的方法,能够确保应用程序在不断变化的控制环境中保持合规,加强系统的安全性,并降低运维人员集群管理的复杂度。为达到上述目的,本专利技术所采用的技术方案是:一种基于Kubernetes构建动态资源准入控制器的方法,其包括补丁控制器、验证控制器、自动生成控制器和命令行控制器四个组件,包括如下步骤:S1、初始化系统配置至kubernetes集群中,如果配置出错,则退出系统;S2、初始化命令行控制器、启动补丁控制器、验证控制器、自动生成控制器,若任意一个控制器出错则不断重试,直至所有控制器均正常运行,当所有组件正常运行时表示准入系统正常运行;S3、所述命令行控制器除了初始化时自动与kube-apiserver交互,其余皆由操作人员直接操作,用于验证和应用准入策略,与apiserver进行交互;S4、所述补丁控制器、验证控制器、自动生成控制器在kube-apiserver处理请求的流程中分别实现三个钩子拦截请求,完成准入控制的逻辑。进一步的,所述步骤S1中,所述系统配置包括:补丁控制器、验证控制器的连接信息;补丁控制器、验证控制器的验证信息;处理来自补丁控制器、验证控制器的无法识别的错误信息提示。进一步的,所述步骤S3中,所述命令控制器的操作步骤如下:S3.1、命令行控制器启动后,验证系统已有的准入策略,如有不完整或出错的策略,打印到日志中并将该策略配置为停用状态,正常的策略配置为激活状态。命令行控制器将一直运行在后台中,等待新的命令;S3.2、管理员或开发者进入命令行控制器,可以验证或应用准入策略,可将多个准入策略用于多个资源,S3.3、命令行控制器通过kube-apiserver进行策略的读取、写入和激活等操作,策略最终由kube-apiserver写入etcd存储中;S3.4、命令行控制器针对策略进行验证时,会判断该策略由哪个控制器进行操作,再调用响应的控制器进行策略验证,验证的内容包括格式是否准确,与现有策略是否冲突;S3.5:命令行控制器针对策略进行应用时,先按照步骤S3.4进行策略验证,验通过后通过kube-apiserver将其写入集群,验证不通过则不允许提交。进一步的,所述步骤S3.2中,所述准入策略包括补丁策略、验证策略和自动自动生成策略,每种策略分别对应一个控制器,分别为补丁控制器、验证控制器、自动生成控制器。进一步的,所述步骤S4中,所述补丁控制器的操作步骤如下:A1、补丁控制器收到kube-apiserver的请求;A2、补丁控制器根据资源的类型,筛选出已激活的补丁策略,如果存在已激活的补丁策略,则初始化一个空白的补丁结构,进入下一个步骤,如不包含该种类型已激活的补丁策略,进入步骤A6;A3、循环该种类型的所有补丁策略,如还有未处理的补丁策略,进入下一个步骤,循环结束后进入步骤A6;A4、确认kube-apiserver传输的请求是否适用当前补丁策略,如果适用则进入下一个步骤,如不适用,返回步骤A3;A5、使用补丁策略中的内容注入步骤A2中的补丁结构,返回步骤A3;A6、构造一个响应,与步骤A2中的补丁一起编组,然后将其发送回kube-apiserver。进一步的,所述步骤S4中,所述验证控制器的操作步骤如下:B1、验证控制器收到kube-apiserver的请求;B2、验证控制器根据资源的类型,筛选出已激活的验证策略,如果存在已激活的验证策略则进入下一个步骤,如不包含该种类型已激活的验证策略,标记验证通过并进入步骤B6;B3、循环该种类型的所有验证策略,如还有未处理的验证策略,进入下一个步骤,循环结束后,标记验证通过并进入步骤B6;B4、确认kube-apiserver传输的请求是否适用当前验证策略,如果适用则进入下一个步骤,如不适用,返回步骤B3。B5、验证kube-apiserver的请求是否通过验证策略,如果不通过,标记验证不通过并进入步骤B6,如果通过,返回步骤B3;B6、如果请求标记为验证通过,构造一个验证成功的响应,如果标记为失败,则构造一个验证失败的响应。然后将响应发送回kube-apiserver。进一步的,所述步骤S4中,所述验证控制器的操作步骤如下:C1、自动生成控制器监听kube-apiserver的事件,当有新的自动生成策略应用,如还未监听触发事件,便增加一个监听,使得自动生成控制器得以自动生成资源;C2、收到kube-apiserver的事件后,生成控制器根据事件的类型,筛选出已激活的自动生成策略,如果存在已激活的自动生成策略,则初始化一个空白的资源描述yaml,进入下一个步骤,如不包含该种类型已激活的自动生成策略,直接结束;C3、循环该种类型的所有自动生成策略,如还有未处理的自动生成策略,进入下一个步骤,循环结束后进入步骤C6;C4、确认当前的事件是否适用自动生成策略,如果适用则进入下一个步骤,如不适用,返回步骤C3;C5、使用自动生成策略中的内容补充到步骤C2中的资源描述yaml,返回步骤C3;C6、构造一个请求,将资源描述yaml发至kube-apiserver,请求kube-apiserver生成该yaml文件中的资源。由于采用上述技术方案,本专利技术具有以下有益效果:本专利技术中的命令行控制器用于查看或修改准入系统配置和策略调试与开发,补丁控制器、验证控制器、自动生成控制器分别用于标准化kubernetes资源、拒绝运行kubernetes资源和自动生成kubernetes资源,本专利技术能够对kubernetes集群中的所有资源进行准入控制,能够确本文档来自技高网...

【技术保护点】
1.一种基于Kubernetes构建动态资源准入控制器的方法,其包括补丁控制器、验证控制器、自动生成控制器和命令行控制器四个组件,其特征在于,包括如下步骤:/nS1、初始化系统配置至kubernetes集群中,如果配置出错,则退出系统;/nS2、初始化命令行控制器、启动补丁控制器、验证控制器、自动生成控制器,若任意一个控制器出错则不断重试,直至所有控制器均正常运行,当所有组件正常运行时表示准入系统正常运行;/nS3、所述命令行控制器除了初始化时自动与kube-apiserver交互,其余皆由操作人员直接操作,用于验证和应用准入策略,与apiserver进行交互;/nS4、所述补丁控制器、验证控制器、自动生成控制器在kube-apiserver处理请求的流程中分别实现三个钩子拦截请求,完成准入控制的逻辑。/n

【技术特征摘要】
1.一种基于Kubernetes构建动态资源准入控制器的方法,其包括补丁控制器、验证控制器、自动生成控制器和命令行控制器四个组件,其特征在于,包括如下步骤:
S1、初始化系统配置至kubernetes集群中,如果配置出错,则退出系统;
S2、初始化命令行控制器、启动补丁控制器、验证控制器、自动生成控制器,若任意一个控制器出错则不断重试,直至所有控制器均正常运行,当所有组件正常运行时表示准入系统正常运行;
S3、所述命令行控制器除了初始化时自动与kube-apiserver交互,其余皆由操作人员直接操作,用于验证和应用准入策略,与apiserver进行交互;
S4、所述补丁控制器、验证控制器、自动生成控制器在kube-apiserver处理请求的流程中分别实现三个钩子拦截请求,完成准入控制的逻辑。


2.如权利要求1所述的基于Kubernetes构建动态资源准入控制器的方法,其特征在于,所述步骤S1中,所述系统配置包括:
补丁控制器、验证控制器的连接信息;
补丁控制器、验证控制器的验证信息;以及
处理来自补丁控制器、验证控制器的无法识别的错误信息提示。


3.如权利要求1所述的基于Kubernetes构建动态资源准入控制器的方法,其特征在于,所述步骤S3中,所述命令控制器的操作步骤如下:
S3.1、命令行控制器启动后,验证系统已有的准入策略,如有不完整或出错的策略,打印到日志中并将该策略配置为停用状态,正常的策略配置为激活状态,命令行控制器将一直运行在后台中,等待新的命令;
S3.2、管理员或开发者进入命令行控制器,可以验证或应用准入策略,可将多个准入策略用于多个资源,
S3.3、命令行控制器通过kube-apiserver进行策略的读取、写入和激活等操作,策略最终由kube-apiserver写入etcd存储中;
S3.4、命令行控制器针对策略进行验证时,会判断该策略由哪个控制器进行操作,再调用响应的控制器进行策略验证,验证的内容包括格式是否准确,与现有策略是否冲突;
S3.5:命令行控制器针对策略进行应用时,先按照步骤S3.4进行策略验证,验通过后通过kube-apiserver将其写入集群,验证不通过则不允许提交。


4.如权利要求1所述的基于Kubernetes构建动态资源准入控制器的方法,其特征在于,所述步骤S3.2中,所述准入策略包括补丁策略、验证策略和自动自动生成策略,每种策略分别对应一个控制器,分别为补丁控制器、验证控制器、自动生成控制器。


5.如权利要求1所述的基于Kubernetes构建动态资源准入控制器的方法,其特征在于,所述步骤S4中,所述补丁控制器的操作步骤如下:
A1、补丁控制器收到kube-apiserver的请求;
A2、补丁控制器根据资源的类型...

【专利技术属性】
技术研发人员:韦克璐王志雄赵凯麟
申请(专利权)人:中国—东盟信息港股份有限公司
类型:发明
国别省市:广西;45

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

1