本发明涉及计算机数据处理,尤其涉及一种基于kubernetes的自动化前置准入管理方法及系统。
背景技术:
1、随着云源生概念的普及以及云计算技术的高速发展,容器技术凭借其发布敏捷高效、资源安全隔离、多环境版本统一等技术特点,迅速被各大企业接受,越来越多的公司开始将业务从传统的主机环境迁移到容器环境内。
2、基于容器的轻量化的特点,用容器来承载业务,容器数量一般会比较多,因此需要一个高效便捷的分布式集群管理方案。而kubernetes在众多方案中凭借其先进的设计理念、强悍的可扩展性以及高效的编排效率等诸多技术特点,成为了目前众多企业用于管理容器云的首选方案。
3、然而,在真实的业务数据处理过程中,错误的kubernetes请求可能会对集群或者业务带来不可预估的严重影响,如错误的修改了需要发布的pod(在kubernetes 方案内容器组以pod对象的形式对外提供服务,且承载应用服务的基础单位)数量,由于误操作对正在提供业务的核心组件进行了删除,或在得知了集群的全局组件,包括csi(信道状态信息),cni(容器网络接口),cri(容器运行时接口),coredns(dns服务器/转发器),ingresscontroller(准入管理器)的访问方式后,对其进行恶意的攻击等。目前常见的方案是通过使用kube-apiserver 组件打开审计功能,将所有请求信息记录到本地的日志文件中。但仅仅是做信息的记录,只能做到对请求的记录和追溯,无法做到对非法、错误请求的拦截以及对可疑请求的及时预警。
4、因此现有技术还有待于进一步发展。
技术实现思路
1、针对上述技术问题,本发明提供了一种基于kubernetes的自动化前置准入管理方法及系统,可实现对错误请求的拦截与预警。
2、本发明的第一方面,提供一种基于kubernetes的自动化前置准入管理方法,包括:
3、拦截所有对kube-apiserver(kubernetes 方案内提供api server的组件,是所有请求调用入口)的请求,将所述请求前置并解析所述请求的信息报文;
4、基于所述信息报文获取需要审计的字段,利用静态准入机制与动态准入机制检查所述需要审计的字段用以管理所述请求是否准入或需要修改;
5、根据检查结果汇总所述请求的信息并存储,并将准入的所述请求发送至所述kube-apiserver执行后续对应的资源创建流程。
6、在一些实施方式中,所述将所述请求前置并解析所述请求的信息报文,包括:
7、将所有对kube-apiserver的请求转发至准入前置机上,由所述准入前置机解析所述请求的信息报文,所述准入前置机存在于kubernetes集群外部。
8、在一些实施方式中,所述利用静态准入机制与动态准入机制检查所述需要审计的字段用以管理所述请求是否准入或需要修改,包括:
9、利用静态准入机制检查所述请求中的镜像下载地址、服务暴露端口号以及请求地址,将符合静态准入机制的镜像下载地址、服务暴露端口号以及请求地址对应的所述请求确定为准入请求,将不符合静态准入机制的镜像下载地址、服务暴露端口号以及请求地址对应的所述请求进行拦截或发出需要修改的通知。
10、在一些实施方式中,所述利用静态准入机制与动态准入机制检查所述需要审计的字段用以管理所述请求是否准入或需要修改,还包括:
11、利用动态准入机制检查所述请求中的单个容器资源使用限制数、资源副本数、资源弹性扩容数量限制数,对于请求资源数量未超过kubernetes系统中的单个容器资源使用限制数、资源副本数、资源弹性扩容数量限制数的所述请求确定为准入请求,对于请求资源数量未超过kubernetes系统中的单个容器资源使用限制数、资源副本数、资源弹性扩容数量限制数的所述请求进行拦截或发出需要修改的通知。
12、在一些实施方式中,所述静态准入机制由用户手动配置而成,所述动态准入机制根据当前kubernetes集群的监控数据动态检查所述请求的资源申请情况,根据当前kubernetes集群的资源状态对资源申请的数量、大小进行预警或修改。
13、本发明的第二方面,提供一种基于kubernetes的自动化前置准入管理系统,包括:
14、准入前置机,被配置为获取已拦截所有对kube-apiserver的请求,并解析所述请求的信息报文,发送至规则服务器;
15、规则服务器,被配置为基于所述信息报文获取需要审计的字段,利用静态准入机制与动态准入机制检查所述需要审计的字段用以管理所述请求是否准入或需要修改;以及将准入的所述请求发送至所述kube-apiserver执行后续对应的资源创建流程,根据检查结果汇总所述请求的信息并将汇总后的所述请求的信息发生至审计报表系统存储。
16、在一些实施方式中,所述规则服务器包括静态规则模块,所述静态规则模块被配置为:利用静态准入机制检查所述请求中的镜像下载地址、服务暴露端口号以及请求地址,将符合静态准入机制的镜像下载地址、服务暴露端口号以及请求地址对应的所述请求确定为准入请求,将不符合静态准入机制的镜像下载地址、服务暴露端口号以及请求地址对应的所述请求进行拦截或发出需要修改的通知。
17、在一些实施方式中,所述规则服务器包括动态规则模块,所述动态规则模块被配置为:利用动态准入机制检查所述请求中的单个容器资源使用限制数、资源副本数、资源弹性扩容数量限制数,对于请求资源数量未超过kubernetes系统中的单个容器资源使用限制数、资源副本数、资源弹性扩容数量限制数的所述请求确定为准入请求,对于请求资源数量未超过kubernetes系统中的单个容器资源使用限制数、资源副本数、资源弹性扩容数量限制数的所述请求进行拦截或发出需要修改的通知。
18、在一些实施方式中,所述静态准入机制由用户手动配置而成,所述动态准入机制根据当前kubernetes集群的监控数据动态检查所述请求的资源申请情况,根据当前kubernetes集群的资源状态对资源申请的数量、大小进行预警或修改。
19、本发明的第三方面,提供一种电子设备,包括:
20、至少一个处理器;以及与所述处理器通信连接的至少一个存储器,其中:所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如本发明实施例的第一方面所述的方法。
21、本发明的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被计算机运行时,执行如本发明实施例的第一方面所述的方法。
22、本发明拦截所有对kube-apiserver的请求,并将所述请求前置,可以有效的降低kube-apiserver的性能焦虑;同时在管理请求过程中的利用静态准入机制与动态准入机制检查所有请求,对不符合准入规则的请求进行拦截或预警,实现对非法、错误请求的拦截以及对可疑请求的及时预警,防止因人为操作失误产生的不利影响。