首页> 中国专利> 透明代理部署系统和方法

透明代理部署系统和方法

摘要

本申请涉及容器云技术领域,提供一种透明代理部署系统和方法。所述系统包括:控制管理中心、Consul集群、Nginx代理服务器、kubernetes集群和防火墙,控制管理中心获取外网访问工单数据,当外网访问工单数据满足预设外网访问条件时,将外网访问工单中防护配置数据发送至防火墙、将外网访问工单中Ngnix配置数据发送至consul集群以及将外网访问工单数据中应用编排变更数据和外部系统通信参数至Kubernetes集群,将防火墙、consul和Kubernetes统筹调配起来以部署Kubernetes透明代理。采用本方案能满足应用在IP动态可变的情况下访问外网的需求。

著录项

  • 公开/公告号CN114884955A

    专利类型发明专利

  • 公开/公告日2022-08-09

    原文格式PDF

  • 申请/专利权人 平安科技(深圳)有限公司;

    申请/专利号CN202210667836.1

  • 发明设计人 郑卫星;

    申请日2022-06-14

  • 分类号H04L67/10(2022.01);H04L67/1074(2022.01);

  • 代理机构华进联合专利商标代理有限公司 44224;

  • 代理人黄恕

  • 地址 518000 广东省深圳市福田区福田街道福安社区益田路5033号平安金融中心23楼

  • 入库时间 2023-06-19 16:20:42

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-05-30

    授权

    发明专利权授予

  • 2022-08-26

    实质审查的生效 IPC(主分类):H04L67/10 专利申请号:2022106678361 申请日:20220614

    实质审查的生效

  • 2022-08-09

    公开

    发明专利申请公布

说明书

技术领域

本申请涉及容器云技术领域,特别是涉及一种透明代理部署系统、方法、装置、计算机设备、存储介质和计算机程序产品。

背景技术

kubernetes,是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes提供了应用部署、规划、更新、维护的一种机制。

随着应用容器化的推广,部署在kubernetes平台上的应用,将会遇到应用所使用的IP(Internet Protocol,网际互联协议)随时可变的情况,若是kubernetes集群内部应用之间的通信,可通过创建service资源对象,以不变的cluster ip向内部宣告,提供稳定的访问端点。若是集群内的服务与外部通信,特别是有防火墙做严格IP访问受控的情况下,如何解决瞬息可变的IP与及时通知到防火墙做策略变更显得尤为关键。

因此,需要提供一种能够支持在IP动态可变的情况下,实现集群内的应用与外部网络通信的方案。

发明内容

基于此,有必要针对上述技术问题,提供一种能够支持IP动态可变的情况下,实现集群内应用于外部网络通信的透明代理部署系统、方法、装置、计算机设备、存储介质和计算机程序产品。

第一方面,本申请提供了一种透明代理部署系统。系统包括:控制管理中心、Consul集群、Nginx代理服务器、kubernetes集群和防火墙;

控制管理中心获取kubernetes集群中的应用提交的外网访问工单,当外网访问工单数据满足预设外网访问条件时,将外网访问工单中防护配置数据发送至防火墙、将外网访问工单中Ngnix配置数据发送至consul集群以及将外网访问工单数据中应用编排变更数据和外部系统通信参数至Kubernetes集群;

防火墙根据防护配置数据变更访问控制列表,允许Nginx代理服务器通过防火墙访问外部系统;

consul集群根据Ngnix配置数据更新已存的Ngnix配置数据;

Ngnix代理服务器当监听到consul集群的Ngnix配置数据发生变更时,根据变更后的Ngnix配置数据更新Ngnix配置模板;

Kubernetes集群根据应用编排变更数据和外部系统参数,将应用需访问的目标地址重新定向至Ngnix代理服务器,执行Kubernetes透明代理部署。

在其中一个实施例中,Ngnix代理服务器部署有consul-template程序,consul-template程序用于监听到consul集群上已存的Ngnix配置数据发生变更时,获取Ngnix配置变更数据,根据所述Ngnix配置变更数据渲染已存的Ngnix配置模板、并加载更新后的Ngnix配置模板,触发Ngnix配置更新。

在其中一个实施例中,防火墙还用于识别防护配置数据的类型,根据识别出的防护配置数据的类型触发对应的策略,以变更访问控制列表。

在其中一个实施例中,Kubernetes集群还用于根据应用编排变更数据变更应用的编排,增加初始化容器,根据外部系统通信参数配置容器的网络命名空间的iptables,将应用需访问的目标地址重新定向至Ngnix代理服务器,执行Kubernetes透明代理部署。

在其中一个实施例中,Nginx代理服务器还用于获取应用访问记录,根据应用访问记录,审计kubernetes集群中应用的访问数据。

在其中一个实施例中,控制管理中心还用于调用防火墙API(ApplicationProgramming Interface,应用程序编程接口),传递防护配置数据至防火墙。

在其中一个实施例中,控制管理中心还用于调用consul server API,传递Ngnix配置数据至consul集群。

在其中一个实施例中,控制管理中心用于还调用Kubernetes API,传递应用编排变更数据和外部系统通信参数至Kubernetes集群。

第二方面,本申请还提供了透明代理部署系统的透明代理部署方法,透明代理系统包括控制管理中心、Consul集群、Nginx代理服务器、kubernetes集群和防火墙,方法包括:

获取外网访问工单数据,外网访问工单数据包括外部系统通信参数、Ngnix配置数据、应用编排变更数据和防护配置数据;

当外网访问工单数据满足预设外网访问条件时,发送携带防护配置数据的防护配置请求至防火墙、发送携带Ngnix配置数据的Ngnix配置请求至consul集群、以及发送携带应用编排变更数据和外部系统通信参数的代理部署请求至Kubernetes集群;

其中,防护配置请求用于使防火墙根据防护配置数据变更访问控制列表,允许Nginx代理服务器通过防火墙访问外部系统,Ngnix配置请求用于触发consul集群变更已存的Ngnix配置数据,以使Ngnix代理服务器根据变更后的Ngnix配置数据更新Ngnix配置模板,代理部署请求用于使Kubernetes集群根据应用编排变更数据和外部系统参数,将应用需访问的目标地址重新定向至Ngnix代理服务器,执行Kubernetes透明代理部署。

第三方面,本申请还提供了一种透明代理部署装置。装置包括:

数据获取模块,用于获取外网访问工单数据,外网访问工单数据包括外部系统通信参数、Ngnix配置数据、应用编排变更数据和防护配置数据;

透明代理部署模块,用于当外网访问工单数据满足预设外网访问条件时,发送携带防护配置数据的防护配置请求至防火墙、发送携带Ngnix配置数据的Ngnix配置请求至consul集群、以及发送携带应用编排变更数据和外部系统通信参数的代理部署请求至Kubernetes集群;

其中,防护配置请求用于使防火墙根据防护配置数据变更访问控制列表,允许Nginx代理服务器通过防火墙访问外部系统,Ngnix配置请求用于触发consul集群变更已存的Ngnix配置数据,以使Ngnix代理服务器根据变更后的Ngnix配置数据更新Ngnix配置模板,代理部署请求用于使Kubernetes集群根据应用编排变更数据和外部系统参数,将应用需访问的目标地址重新定向至Ngnix代理服务器,执行Kubernetes透明代理部署。

第四方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

获取外网访问工单数据,外网访问工单数据包括外部系统通信参数、Ngnix配置数据、应用编排变更数据和防护配置数据;

当外网访问工单数据满足预设外网访问条件时,发送携带防护配置数据的防护配置请求至防火墙、发送携带Ngnix配置数据的Ngnix配置请求至consul集群、以及发送携带应用编排变更数据和外部系统通信参数的代理部署请求至Kubernetes集群;

其中,防护配置请求用于使防火墙根据防护配置数据变更访问控制列表,允许Nginx代理服务器通过防火墙访问外部系统,Ngnix配置请求用于触发consul集群变更已存的Ngnix配置数据,以使Ngnix代理服务器根据变更后的Ngnix配置数据更新Ngnix配置模板,代理部署请求用于使Kubernetes集群根据应用编排变更数据和外部系统参数,将应用需访问的目标地址重新定向至Ngnix代理服务器,执行Kubernetes透明代理部署。

第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

获取外网访问工单数据,外网访问工单数据包括外部系统通信参数、Ngnix配置数据、应用编排变更数据和防护配置数据;

当外网访问工单数据满足预设外网访问条件时,发送携带防护配置数据的防护配置请求至防火墙、发送携带Ngnix配置数据的Ngnix配置请求至consul集群、以及发送携带应用编排变更数据和外部系统通信参数的代理部署请求至Kubernetes集群;

其中,防护配置请求用于使防火墙根据防护配置数据变更访问控制列表,允许Nginx代理服务器通过防火墙访问外部系统,Ngnix配置请求用于触发consul集群变更已存的Ngnix配置数据,以使Ngnix代理服务器根据变更后的Ngnix配置数据更新Ngnix配置模板,代理部署请求用于使Kubernetes集群根据应用编排变更数据和外部系统参数,将应用需访问的目标地址重新定向至Ngnix代理服务器,执行Kubernetes透明代理部署。

第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:

获取外网访问工单数据,外网访问工单数据包括外部系统通信参数、Ngnix配置数据、应用编排变更数据和防护配置数据;

当外网访问工单数据满足预设外网访问条件时,发送携带防护配置数据的防护配置请求至防火墙、发送携带Ngnix配置数据的Ngnix配置请求至consul集群、以及发送携带应用编排变更数据和外部系统通信参数的代理部署请求至Kubernetes集群;

其中,防护配置请求用于使防火墙根据防护配置数据变更访问控制列表,允许Nginx代理服务器通过防火墙访问外部系统,Ngnix配置请求用于触发consul集群变更已存的Ngnix配置数据,以使Ngnix代理服务器根据变更后的Ngnix配置数据更新Ngnix配置模板,代理部署请求用于使Kubernetes集群根据应用编排变更数据和外部系统参数,将应用需访问的目标地址重新定向至Ngnix代理服务器,执行Kubernetes透明代理部署。

上述透明代理部署系统、方法、装置、计算机设备、存储介质和计算机程序产品,当外网访问工单数满足预设外网访问条件时,则同时将防火墙、consul和Kubernetes统筹调配起来进行透明代理部署,发送防护配置数据至防火墙,以使防火墙开放Nginx代理服务器的外网访问权限,发送Ngnix配置数据至consul集群,触发consul集群变更已存的Ngnix配置数据,以使Ngnix代理服务器根据变更后的Ngnix配置数据更新Ngnix配置模板,发送应用编排变更数据和外部系统通信参数至Kubernetes集群,以使Kubernetes集群将应用需访问的目标地址重定向至Ngnix代理服务器,上述过程,实现了通过提交一次外网访问工单数据,便能完成kubernetes集群的透明代理部署,做到应用无需任何改造即可达到访问外网的目的,从而满足了应用在IP动态可变的情况下访问外网的需求。

附图说明

图1为一个实施例中透明代理部署系统的结构框图;

图2为一个实施例中透明代理部署系统的详细架构图;

图3为一个实施例中透明代理部署方法的流程示意图;

图4为一个实施例中透明代理部署装置的结构框图;

图5为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

在其中一个实施例中,如图1所示,提供了一种透明代理部署系统。系统包括:控制管理中心100、Consul集群102、kubernetes集群104、Nginx代理服务器106和防火墙108,其中;

控制管理中心获取kubernetes集群中的应用提交的外网访问工单,当外网访问工单数据满足预设外网访问条件时,将外网访问工单中防护配置数据发送至防火墙、将外网访问工单中Ngnix配置数据发送至consul集群以及将外网访问工单数据中应用编排变更数据和外部系统通信参数至Kubernetes集群;

防火墙根据防护配置数据变更访问控制列表,允许Nginx代理服务器通过防火墙访问外部系统;

consul集群根据Ngnix配置数据更新已存的Ngnix配置数据;

Ngnix代理服务器当监听到consul集群的Ngnix配置数据发生变更时,根据变更后的Ngnix配置数据更新Ngnix配置模板;

Kubernetes集群根据应用编排变更数据和外部系统参数,将应用需访问的目标地址重新定向至Ngnix代理服务器,执行Kubernetes透明代理部署。

Consul集群即consul server集群,控制着Nginx配置文件,Kubernetes集群为应用编排调度系统。如图2所示,Kubernetes集群中部署有微服务集群,该微服务集群包括多个应用程序(以下简称应用),Ngnix代理服务器用于代理应用访问对外请求。

具体实施时,本申请开发有一套对接Kubernetes管理平台的控制管理中心Pampas,该控制管理中心部署有工单系统、Nginx管理模块、kubernetes管理模块和防火墙管理模块,且预设有透明代理部署机制。其中,工单系统主要负责对接用户端的需求输入、对内对接各种管理系统API接口,起桥梁、纽带作用。工单系统用于采集用户所提交的所述kubernetes集群中的应用的访问外部系统的需求数据,包括外部系统通信参数、Ngnix配置数据、应用编排变更数据和防护配置数据,然后,创建外网访问工单数据。具体的,防护配置数据包括透明代理部署IP信息,外部系统IP或域名,协议,端口,所需访问时间等数据。Ngnix配置数据包括外部系统IP或域名,协议,端口等数据。外部系统通信参数包括外部系统IP或域名,协议,端口以及透明代理部署IP信息等数据。

防火墙管理模块用于调用防火墙API,传递防护配置数据,以使防火墙根据防护配置数据变更防火墙上的ACL(Access Control List,访问控制列表),允许Nginx代理服务器通过防火墙访问外部系统,即开放许Nginx代理服务器的外网访问权限。

Nginx管理模块用于调用consul server API,传递Ngnix配置数据至consul集群,触发consul上key配置变化。consul集群接收到Ngnix配置数据后,会变更已存的Ngnix配置数据,以使Ngnix代理服务器根据变更后的Ngnix配置数据更新自身已存的最新的Ngnix配置模板。具体的,consul上key的变化分为两种场景:第一种,新增key,即首次添加Ngnix配置数据;第二种,修改Ngnix配置数据,即因业务变化需求,原先的配置已无法满足当前需求,需要修改配置,以满足业务需求。

kubernetes管理模块用于调用Kubernetes API,传递应用编排变更数据和外部系统通信参数至Kubernetes集群,触发预设Kubernetes集群根据应用编排变更数据和外部系统参数,将应用需访问的目标地址重新定向至Ngnix代理服务器,即修改数据包和数据流向,将应用程序访问外部的请求DNAT到代理服务器上。

当控制管理中心判断外网访问工单数据满足预设外网访问条件(如数据完整、规范)时,便触发透明代理部署机制。同时调用触发防火墙管理模块调用防火墙API、触发Nginx管理模块调用consul server API、触发kubernetes管理模块调用Kubernetes API,执行kubernetes透明代理部署。部署完成后,当有应用提交外网访问请求时,流量流入Ngnix代理服务器,进而可以访问外网。

上述透明代理部署系统,当外网访问工单数满足预设外网访问条件时,则同时将防火墙、consul和Kubernetes统筹调配起来进行透明代理部署,发送防护配置数据至防火墙,以使防火墙开放Nginx代理服务器的外网访问权限,发送Ngnix配置数据至consul集群,触发consul集群变更已存的Ngnix配置数据,以使Ngnix代理服务器根据变更后的Ngnix配置数据更新Ngnix配置模板,发送应用编排变更数据和外部系统通信参数至Kubernetes集群,以使Kubernetes集群将应用需访问的目标地址重定向至Ngnix代理服务器,上述过程,实现了通过提交一次外网访问工单数据,便能完成kubernetes集群的透明代理部署,做到应用无需任何改造即可达到访问外网的目的,从而满足了应用在IP动态可变的情况下访问外网的需求。

在其中一个实施例中,Ngnix代理服务器部署有consul-template程序,consul-template程序用于监听到consul集群上已存的Ngnix配置数据发生变更时,获取Ngnix配置变更数据,根据所述Ngnix配置变更数据渲染已存的Ngnix配置模板、并加载更新后的Ngnix配置模板,触发Ngnix配置更新。

Consul-template,是用于从consul上获取存储的key/value存储值,然后去渲染制定的模板。本实施例中,Consul-template用于监听consul集群上已存的Ngnix配置数据是否发生变更,若发生变更,则获取产生变更的Ngnix配置数据(即Ngnix配置变更数据),根据Ngnix配置变更数据渲染已存的Ngnix配置模板、并加载更新后的Ngnix配置模板,触发Ngnix配置的更新,以便透明代理部署的进行。本实施例中,通过在Ngnix代理服务器部署consul-template程序,能够及时更新Ngnix配置数据。

在其中一个实施例中,防火墙还用于识别防护配置数据的类型,根据识别出的防护配置数据的类型触发对应的策略,以变更访问控制列表。

在实际应用中,防火墙是根据工单类型及防护配置数据的类型,触发相应的策略变化。具体的,防护配置数据的类型包括新增数据、更新数据和删除数据,则对应触发防火墙的新增策略、修改策略和删除策略。若是新增策略,则直接根据传递的防护配置数据在防火墙上增加新的ACL(访问控制列表);若是更新策略,则查询已存在的策略,根据防护配置数据将其更新为最新策略;若是删除策略,则查到已存在的策略,删除即可。本实施例中,通过识别防护配置数据的类型,能够有针对性的触发防火墙的策略,以变更访问控制列表。

在其中一个实施例中,Kubernetes集群还用于根据应用编排变更数据变更应用的编排,增加initContainer容器(初始化容器),根据外部系统通信参数配置容器的网络命名空间的iptables,将应用需访问的目标地址重新定向至Ngnix代理服务器,执行Kubernetes透明代理部署。

具体实施时,Kubernetes管理模块调用Kubernetes API,提交应用编排变更数据至Kubernetes集群,Kubernetes集群根据应用编排变更数据对应用编排进行变更,通过在应用编排文件中,增加initContainer容器,进行容器网络命名空间的iptables配置,即将外部系统IP或域名,协议,端口、透明代理部署IP信息,数据刷到容器的网络命名空间,将应用访问外部的请求DNAT到代理服务器上,即将应用访问的目标地址,重定向到指定的代理集群上。本实施例中,通过根据外部系统参数配置容器的网络命名空间的iptables,将访问目标重定向至代理服务器,能够满足在IP动态可变的情况下,应用访问外网的需求。

在其中一个实施例中,Nginx代理服务器还用于获取应用访问记录,根据应用访问记录,审计kubernetes集群中应用的访问数据。

具体实施时,应用访问外部系统均会对应保存相应的访问数据,Nginx代理服务器可获取已存的应用访问记录,审计kubernetes集群中各应用的访问数据,以合理管理kubernetes集群中各应用的外网访问工作。

在其中一个实施例中,如图3所示,还提供一种透明代理部署方法,以该方法应用于图1中的控制管理中心为例进行说明,包括以下步骤:

步骤202,获取外网访问工单数据,外网访问工单数据包括外部系统通信参数、Ngnix配置数据、应用编排变更数据和防护配置数据;

步骤204,当外网访问工单数据满足预设外网访问条件时,发送携带防护配置数据的防护配置请求至防火墙、发送携带Ngnix配置数据的Ngnix配置请求至consul集群、以及发送携带应用编排变更数据和外部系统通信参数的代理部署请求至Kubernetes集群;

其中,防护配置请求用于使防火墙根据防护配置数据变更访问控制列表,允许Nginx代理服务器通过防火墙访问外部系统,Ngnix配置请求用于触发consul集群变更已存的Ngnix配置数据,以使Ngnix代理服务器根据变更后的Ngnix配置数据更新Ngnix配置模板,代理部署请求用于使Kubernetes集群根据应用编排变更数据和外部系统参数,将应用需访问的目标地址重新定向至Ngnix代理服务器,执行Kubernetes透明代理部署。

具体实施,可以是当用户对某个应用有访问外网的需求时,于控制管理中心的工单系统提交访问外部系统的需求包括外部系统通信参数、ngnix配置数据、应用编排数据和防护配置数据,通过工单系统发送透明代理部署请求至控制管理中心。具体的,防护配置数据包括透明代理部署IP信息,外部系统IP或域名,协议,端口,所需访问时间等数据。Ngnix配置数据包括外部系统IP或域名,协议,端口等数据。外部系统通信参数包括外部系统IP或域名,协议,端口以及透明代理部署IP信息等数据。

工单系统根据提交的数据创建外网访问工单数据,发送携带该外网访问工单数据的透明代理部署请求至控制管理中心,控制管理中心响应该透明代理部署请求,获取外网访问工单数据,并对外网访问工单数据进行审核,判断其是否满足预设的预设外网访问条件,若审核确定外网访问工单数据无误,则判定满足预设的预设外网访问条件,发送携带防护配置数据的防护配置请求至防火墙、发送携带Ngnix配置数据的Ngnix配置请求至consul集群、以及发送携带应用编排变更数据和外部系统通信参数的代理部署请求至Kubernetes集群,以执行Kubernetes透明代理部署。

具体的,可以是调用防火墙API,传递防护配置数据至外部防火墙,以使防火墙根据防护配置数据变更防火墙上的ACL,允许Nginx代理服务器通过防火墙访问外部系统,即开放许Nginx代理服务器的外网访问权限、调用consul server API,传递Ngnix配置数据至预设consul集群,触发consul集群上key配置变化。consul集群接收到Ngnix配置数据后,会变更已存的Ngnix配置数据,以使预设Ngnix代理服务器根据变更后的Ngnix配置数据更新自身已存的最新的Ngnix配置模板、调用Kubernetes API,传递应用编排变更数据和外部系统通信参数至Kubernetes集群,触发预设Kubernetes集群根据应用编排变更数据和外部系统参数,将应用需访问的目标地址重新定向至Ngnix代理服务器,即修改数据包和数据流向,将应用程序访问外部的请求DNAT到代理服务器上。

具体的,Ngnix代理服务器部署有consul-template程序,当consul-template程序监听consul集群上已存的Ngnix配置数据是否发生变更,若发生变更,则获取产生变更的Ngnix配置数据(即Ngnix配置变更数据),根据Ngnix配置变更数据渲染已存的Ngnix配置模板、并加载更新后的Ngnix配置模板,触发Ngnix配置的更新。Kubernetes集群根据应用编排变更数据对应用编排进行变更,通过在应用编排文件中,增加initContainer容器,进行容器网络命名空间的iptables配置,即将外部系统IP或域名,协议,端口、透明代理部署IP信息,数据刷到容器的网络命名空间,将应用访问外部的请求DNAT到代理服务器上,即将应用访问的目标地址,重定向到指定的代理集群上,以完成透明代理部署的部署。

上述透明代理部署方法,同时将防火墙、consul和Kubernetes统筹调配起来进行透明代理部署,发送防护配置数据至防火墙,以使防火墙开放Nginx代理服务器的外网访问权限,发送Ngnix配置数据至consul集群,触发consul集群变更已存的Ngnix配置数据,以使Ngnix代理服务器根据变更后的Ngnix配置数据更新Ngnix配置模板,发送应用编排变更数据和外部系统通信参数至Kubernetes集群,以使Kubernetes集群将应用需访问的目标地址重定向至Ngnix代理服务器,上述过程,实现了通过提交一次外网访问工单数据,便能完成kubernetes集群的透明代理部署,做到应用无需任何改造即可达到访问外网的目的,从而满足了应用在IP动态可变的情况下访问外网的需求。

应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的透明代理部署方法的透明代理部署装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个透明代理部署装置实施例中的具体限定可以参见上文中对于透明代理部署方法的限定,在此不再赘述。

在一个实施例中,如图4所示,提供了一种透明代理部署装置,包括:数据获取模块410和透明代理部署模块420,其中:

数据获取模块410,用于获取外网访问工单数据,外网访问工单数据包括外部系统通信参数、Ngnix配置数据、应用编排变更数据和防护配置数据;

透明代理部署模块420,用于当外网访问工单数据满足预设外网访问条件时,发送携带防护配置数据的防护配置请求至防火墙、发送携带Ngnix配置数据的Ngnix配置请求至consul集群、以及发送携带应用编排变更数据和外部系统通信参数的代理部署请求至Kubernetes集群;

其中,防护配置请求用于使防火墙根据防护配置数据变更访问控制列表,允许Nginx代理服务器通过防火墙访问外部系统,Ngnix配置请求用于触发consul集群变更已存的Ngnix配置数据,以使Ngnix代理服务器根据变更后的Ngnix配置数据更新Ngnix配置模板,代理部署请求用于使Kubernetes集群根据应用编排变更数据和外部系统参数,将应用需访问的目标地址重新定向至Ngnix代理服务器,执行Kubernetes透明代理部署。

上述透明代理部署装置,当外网访问工单数满足预设外网访问条件时,则同时将防火墙、consul和Kubernetes统筹调配起来进行透明代理部署,发送防护配置数据至防火墙,以使防火墙开放Nginx代理服务器的外网访问权限,发送Ngnix配置数据至consul集群,触发consul集群变更已存的Ngnix配置数据,以使Ngnix代理服务器根据变更后的Ngnix配置数据更新Ngnix配置模板,发送应用编排变更数据和外部系统通信参数至Kubernetes集群,以使Kubernetes集群将应用需访问的目标地址重定向至Ngnix代理服务器,上述过程,实现了通过提交一次外网访问工单数据,便能完成kubernetes集群的透明代理部署,做到应用无需任何改造即可达到访问外网的目的,从而满足了应用在IP动态可变的情况下访问外网的需求。

在其中一个实施例中,透明代理部署模块420还用于根据应用编排变更数据变更应用的编排,增加初始化容器,根据外部系统通信参数配置容器的网络命名空间的iptables,将应用需访问的目标地址重新定向至Ngnix代理服务器,执行Kubernetes透明代理部署。

上述透明代理部署装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储外网访问工单数据等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种透明代理部署方法。

本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在其中一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述透明代理部署方法中的步骤。

在其中一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述透明代理部署方法中的步骤。

在其中一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述透明代理部署方法中的步骤。

需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号