一种提高Kubernetes的WEB能力的方法与流程

文档序号:18738429发布日期:2019-09-21 01:29阅读:384来源:国知局
一种提高Kubernetes的WEB能力的方法与流程

本发明涉及互联网及云服务安全技术领域,尤其涉及一种提高Kubernetes的WEB能力的方法。



背景技术:

Kubernetes是一个开源的、用于容器编排的应用,它提供了应用部署、更新、资源限制的一种机制,让部署容器化的应用简单且高效。在集群内提供服的方式有集群内的service、集群外的ingress。Service是后端真实服务的抽象,一个Service可以代表多个相同的后端服务。Ingress是反向代理规则,用来规定HTTP/S请求应该被转发到哪个Service/pod上,比如根据请求中不同的Host和URL路径让请求落到不同的Service上。Ingress Controller是一个反向代理程序,其负责解析Ingress的反向代理规则,如果Ingress后端服务对应的变动(包含服务pod的增加,删除等),Ingress Controller都会及时、自动更新相应的转发规则。

随着HTTP服务使用越来越广泛,通过明文传输的HTTP服务方式也面临着的越来越多的安全问题,尤其是支付、交易、用户信息等敏感内容。HTTPS作为一种基于公私钥技术的加密传输协议应用应运而生,HTTP/S是通过在TCP和HTTP层中间加入了SSL加密数据传输层防止数据被盗窃和篡改。

但是,现有技术中,Ingress Controller常用的是Nginx Ingress Controller,在对外提供HTTPS服务时,都需要提前准备好HTTPS服务所需的SSL证书。在证书过期后,无任何措施或者提醒,直接无法提供HTTPS服务进而影响业务应用,且无法通过WEB界面直观的查看当前Ingress Controller所监听的服务与服务后端的状态。



技术实现要素:

针对上述问题,本发明提出了一种提高Kubernetes的WEB能力的方法,以解决Kubernetes集群现有的Ingress Controller无管理界面,提供的HTTPS服务无预警,配置繁琐,影响业务等问题。

本发明通过以下技术方案来实现上述目的:

一种提高Kubernetes的WEB能力的方法,包括以下步骤:

根据搭建好的Kubernetes环境中使用Deployment或者Statefulset部署web服务;

在Kubernetes中创建ingress服务,配置web所需要监听的域名地址(ingress);

配置DNS,指定监控的域名地址到ingress controller对应的IP地址,即完成服务的http配置;

通过第一组件根据ingress信息部署https server代理服务;

通过第二组件向Let’s Encrypt申请证书;

通过第三组件监控所部署服务下的SSL证书;

通过第四组件展示所监听的https服务以及所对应的证书信息。

进一步方案为,所述第一组件为基于Kubernetes的ingress controller接口实现程序;根据Ingress配置HTTP/S服务;并通过Kubernetes的Nodeport等方式对外提供HTTP/S服务。

进一步方案为,所述第二组件为基于Golang编写的SSL证书申请程序;如果Ingress已经存在SSL证书内容,直接使用到HTTPS,否则程序根据Ingress配置信息自动向Let’s Encrypt申请SSL证书。

进一步方案为,所述第三组件为证书监控程序;每天在指定时间扫描指定目录下的SSL证书,查询证书相关内容;确认证书有效时间,如果到达指定预警时间,根据配置的报警方式报警;并把证书相关信息存储到指定数据库。

进一步方案为,所述第四组件为web管理程序;包含整个Kubernetes的Ingress服务状态。

本发明的有益效果在于:

本发明通过在Kubernetes集群对外提供web界面查看http监听状态,并自动为对外的WEB服务添加HTTPS能力,为https的证书自动续期,添加证书过期提醒,用户能通过程序提供的http服务,查看现在Kubernetes所有监听的Ingress,后端的service名与对应的pod地址;https证书信息,以及后端服务状态。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要实用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例中系统架构图;

图2为本发明实施例的证书申请程序流程示意图;

图3是本发明实施例中ingress controller功能结构图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。

在任一实施例中,如图1-3所示,本发明的一种提高Kubernetes的WEB能力的方法,包括以下步骤:

根据搭建好的Kubernetes环境中使用Deployment或者Statefulset部署web服务;

在Kubernetes中创建ingress服务,配置web所需要监听的域名地址(ingress);

配置DNS,指定监控的域名地址到ingress controller对应的IP地址,即完成服务的http配置;

通过第一组件根据ingress信息部署https server代理服务;第一组件为基于Kubernetes的ingress controller接口实现程序;根据Ingress配置HTTP/S服务;并通过Kubernetes的Nodeport等方式对外提供HTTP/S服务。

通过第二组件向Let’s Encrypt申请证书;第二组件为基于Golang编写的SSL证书申请程序;如果Ingress已经存在SSL证书内容,直接使用到HTTPS,否则程序根据Ingress配置信息自动向Let’s Encrypt申请SSL证书。

通过第三组件监控所部署服务下的SSL证书;第三组件为证书监控程序;每天在指定时间扫描指定目录下的SSL证书,查询证书相关内容;确认证书有效时间,如果到达指定预警时间,根据配置的报警方式报警;并把证书相关信息存储到指定数据库。

通过第四组件展示所监听的https服务以及所对应的证书信息,第四组件为web管理程序;包含整个Kubernetes的Ingress服务状态。

在一个具体实施例中,如图1-3所示,本发明的一种提高Kubernetes的WEB能力的方法,包括:

根据系统架构如图1搭建好Kubernetes环境;

在集群中使用deployment部署Nginx服务;

配置NDS域名解析,指定监听的域名到Kubernetes的ingress controller对LB地址;

在Kubernetes集群中使用DS完成ingress controller程序部署(功能结构图如图2),程序还集成SSL证书申请功能,证书监控功能,服务展示功能;

程序能根据Ingress配置信息创建并对集群外提供HTTP/S服务;

程序的证书申请功能是根据Ingress配置信息确认是否自动向Let’s Encrypt申请SSL证书;

当正确指定域名,未提供SSL证书,没有显式指定为HTTP时进行自动证书申请流程;

证书申请程序流程(如图3):

生成私钥和CSR;在整套证书基础设施的所有操作中,私钥的明文都是不能经过网络传输的。所以,第一步用户生成一个证书,私钥保存在自己的服务上,然后生成证书签名请求(CSR,Certificate Signing Request)发送给CA机构;如果Ingress信息中未指定CSR与私钥内容,程序会自动生成私钥与CSR,并保存到指定目录;

发送上一步的CSR给Let’s Encrypt;

进行Web验证,完成申请人身份确认;

验证申请人身份一般有几个方法,Email验证、DNS验证、Web验证。Email验证,CA机构向待申请域名的某些固定邮箱发送验证链接,用户点击链接即可进行验证。DNS验证,CA机构要求申请人在待申请域名的某个随机子域名上添加一条指定的TXT记录,如果申请人添加成功,即通过验证。Web验证,CA机构要求申请人在待申请域名的HTTP服务下,放入一个特定的文件,CA机构能正常访问即通过验证。因,Email验证、DNS验证都需要人工干预,所以我们选择了Web验证。根据上一步返回信息,在申请的域名服务的HTTP服务下放入一个指返回指定内容的文件;

Let’s Encrypt签发证书;

程序自动下载签发的证书到ingress controller所在容器指定目录下;

Reload ingress controller的监听程序,使https部署生效;

程序的证书监控功能在每天早上1点时扫描指定目录下的SSL证书,查询证书相关内容,查询流程如下:

证书配置的域名地址;

证书申请人的EMAIL地址;

证书组织信息;

证书有效时间;

确认证书有效时间,如果到达指定预警时间,根据配置的报警方式(webhook或者EMAIL)报警;并把证书相关信息存储到指定数据库;

用户能通过程序提供的http服务,查看现在Kubernetes所有监听的Ingress,后端的service名与对应的pod地址;https证书信息,以及后端服务状态。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1