CN114884955B - 透明代理部署系统和方法 - Google Patents

透明代理部署系统和方法 Download PDF

Info

Publication number
CN114884955B
CN114884955B CN202210667836.1A CN202210667836A CN114884955B CN 114884955 B CN114884955 B CN 114884955B CN 202210667836 A CN202210667836 A CN 202210667836A CN 114884955 B CN114884955 B CN 114884955B
Authority
CN
China
Prior art keywords
data
ngnix
cluster
configuration data
kubernetes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210667836.1A
Other languages
English (en)
Other versions
CN114884955A (zh
Inventor
郑卫星
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN202210667836.1A priority Critical patent/CN114884955B/zh
Publication of CN114884955A publication Critical patent/CN114884955A/zh
Application granted granted Critical
Publication of CN114884955B publication Critical patent/CN114884955B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

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

Description

透明代理部署系统和方法
技术领域
本申请涉及容器云技术领域,特别是涉及一种透明代理部署系统、方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
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)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (10)

1.一种透明代理部署系统,其特征在于,所述系统包括控制管理中心、Consul集群、Nginx代理服务器、Kubernetes集群和防火墙;
所述控制管理中心获取所述Kubernetes集群中的应用提交的外网访问工单,当所述外网访问工单数据满足预设外网访问条件时,将所述外网访问工单中防护配置数据发送至所述防火墙、将所述外网访问工单中Ngnix配置数据发送至Consul集群以及将所述外网访问工单数据中应用编排变更数据和外部系统通信参数至所述Kubernetes集群;
所述防火墙根据防护配置数据变更访问控制列表,允许所述Nginx代理服务器通过防火墙访问外部系统;
所述Consul集群根据所述Ngnix配置数据更新已存的Ngnix配置数据;
所述Nginx代理服务器当监听到所述Consul集群的Ngnix配置数据发生变更时,根据变更后的Ngnix配置数据更新Ngnix配置模板;
所述Kubernetes集群根据所述应用编排变更数据和所述外部系统参数,将应用需访问的目标地址重新定向至所述Nginx代理服务器,执行Kubernetes透明代理部署。
2.根据权利要求1所述的透明代理部署系统,其特征在于,所述Nginx代理服务器部署有consul-template程序,所述consul-template程序用于监听到所述Consul集群上已存的Ngnix配置数据发生变更时,获取Ngnix配置变更数据,根据所述Ngnix配置变更数据渲染已存的Ngnix配置模板、并加载更新后的Ngnix配置模板,触发Ngnix配置更新。
3.根据权利要求1所述的透明代理部署系统,其特征在于,所述防火墙还用于识别所述防护配置数据的类型,根据识别出的防护配置数据的类型触发对应的策略,以变更所述访问控制列表。
4.根据权利要求1至3任意一项所述的透明代理部署系统,其特征在于,所述Kubernetes集群还用于根据所述应用编排变更数据变更应用的编排,增加初始化容器,根据所述外部系统通信参数配置容器的网络命名空间的iptables,以将应用需访问的目标地址重新定向至所述预设Nginx代理服务器,执行Kubernetes透明代理部署。
5.根据权利要求4所述的透明代理部署系统,其特征在于,所述Kubernetes集群还用于调度pod实例,执行所述初始化容器中的iptables指令,将应用需访问的目标地址重新定向至所述预设Nginx代理服务器,执行Kubernetes透明代理部署。
6.根据权利要求1至3任意一项所述的透明代理部署系统,其特征在于,所述Nginx代理服务器还用于获取应用访问记录,根据所述应用访问记录,审计所述Kubernetes集群中应用的访问数据。
7.根据权利要求1至3任意一项所述的透明代理部署系统,其特征在于,所述控制管理中心还用于调用防火墙API,传递所述防护配置数据至所述防火墙。
8.根据权利要求1至3任意一项所述的透明代理部署系统,其特征在于,所述控制管理中心还用于调用consul server API,传递所述Ngnix配置数据至Consul集群。
9.根据权利要求1至3任意一项所述的透明代理部署系统,其特征在于,所述控制管理中心用于还调用Kubernetes API,传递所述应用编排变更数据和外部系统通信参数至所述Kubernetes集群。
10.一种透明代理部署系统的透明代理部署方法,其特征在于,所述透明代理系统包括控制管理中心、Consul集群、Nginx代理服务器、Kubernetes集群和防火墙,所述方法包括:
获取外网访问工单数据,所述外网访问工单数据包括外部系统通信参数、Ngnix配置数据、应用编排变更数据和防护配置数据;
当所述外网访问工单数据满足预设外网访问条件时,发送携带所述防护配置数据的防护配置请求至所述防火墙、发送携带所述Ngnix配置数据的Ngnix配置请求至所述Consul集群、以及发送携带所述应用编排变更数据和所述外部系统通信参数的代理部署请求至所述Kubernetes集群;
其中,所述防护配置请求用于使所述防火墙根据防护配置数据变更访问控制列表,允许所述Nginx代理服务器通过防火墙访问外部系统,所述Ngnix配置请求用于触发所述Consul集群变更已存的Ngnix配置数据,以使所述Nginx代理服务器根据变更后的Ngnix配置数据更新Ngnix配置模板,所述代理部署请求用于使所述Kubernetes集群根据所述应用编排变更数据和所述外部系统参数,将应用需访问的目标地址重新定向至所述Nginx代理服务器,执行Kubernetes透明代理部署。
CN202210667836.1A 2022-06-14 2022-06-14 透明代理部署系统和方法 Active CN114884955B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210667836.1A CN114884955B (zh) 2022-06-14 2022-06-14 透明代理部署系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210667836.1A CN114884955B (zh) 2022-06-14 2022-06-14 透明代理部署系统和方法

Publications (2)

Publication Number Publication Date
CN114884955A CN114884955A (zh) 2022-08-09
CN114884955B true CN114884955B (zh) 2023-05-30

Family

ID=82681823

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210667836.1A Active CN114884955B (zh) 2022-06-14 2022-06-14 透明代理部署系统和方法

Country Status (1)

Country Link
CN (1) CN114884955B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115988078A (zh) * 2022-11-28 2023-04-18 中国联合网络通信集团有限公司 通信方法、系统、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107426206A (zh) * 2017-07-17 2017-12-01 北京上元信安技术有限公司 一种对web服务器的防护装置和方法
CN109472437A (zh) * 2018-09-12 2019-03-15 国网浙江省电力有限公司嘉兴供电公司 设备能效综合控制平台及其控制方法
CN109660466A (zh) * 2019-02-26 2019-04-19 浪潮软件集团有限公司 一种面向云数据中心租户的多活负载均衡实现方法
CN113612778A (zh) * 2021-08-05 2021-11-05 中国工商银行股份有限公司 一种资源池化的防火墙集群系统及通信方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11095445B2 (en) * 2019-01-30 2021-08-17 Dell Products L.P. Key management and recovery

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107426206A (zh) * 2017-07-17 2017-12-01 北京上元信安技术有限公司 一种对web服务器的防护装置和方法
CN109472437A (zh) * 2018-09-12 2019-03-15 国网浙江省电力有限公司嘉兴供电公司 设备能效综合控制平台及其控制方法
CN109660466A (zh) * 2019-02-26 2019-04-19 浪潮软件集团有限公司 一种面向云数据中心租户的多活负载均衡实现方法
CN113612778A (zh) * 2021-08-05 2021-11-05 中国工商银行股份有限公司 一种资源池化的防火墙集群系统及通信方法

Also Published As

Publication number Publication date
CN114884955A (zh) 2022-08-09

Similar Documents

Publication Publication Date Title
CN110198231B (zh) 用于多租户的容器网络管理方法和系统以及中间件
US10771344B2 (en) Discovery of hyper-converged infrastructure devices
CN108449197B (zh) 一种基于软件定义网络的多云环境网络构建方法
US20210056125A1 (en) Discovery of database and related services
US20110302647A1 (en) Automating network reconfiguration during migrations
US10970107B2 (en) Discovery of hyper-converged infrastructure
CN105074692A (zh) 使用基于逻辑多维标签的策略模型的分布式网络管理系统
US10749889B2 (en) Rule-based remediation of vulnerabilities in a managed network
CN105765901B (zh) 智能防火墙访问规则
WO2019005399A1 (en) FIREWALL CONFIGURATION MANAGER
CN112291298B (zh) 异构系统的数据传输方法、装置、计算机设备和存储介质
US10708755B2 (en) Discovery and service mapping of serverless resources
CN114884955B (zh) 透明代理部署系统和方法
US11064046B2 (en) Distributed queueing in a remote network management architecture
CN113849266A (zh) 多Kubernetes集群的业务部署方法及装置
US10785056B1 (en) Sharing a subnet of a logically isolated network between client accounts of a provider network
US10541898B2 (en) System and method for creating, deploying, and administering distinct virtual computer networks
BRPI0919394B1 (pt) Meio de armazenamento legível por computador tendo um método para vincular um contrato implementado a um serviço alvo dentro de um ambiente de computação distribuído, método computadorizado para vincular um contrato vinculado a um serviço de cliente em um ambiente de computação distribuída e sistema computadorizado para realizar um método que liga automaticamente um serviço de cliente a um serviço alvo por meio da implementação e vinculação de um contrato disponibilizado por um ambiente de computação distribuído
US10963314B2 (en) Discovery and mapping of a platform-as-a-service environment
US11296981B2 (en) Serverless packet processing service with configurable exception paths
CN116566656A (zh) 资源访问方法、装置、设备及计算机存储介质
CN107959674B (zh) 网关设备、对第三方ldap服务器用户的访问控制方法及系统
CN108270718A (zh) 一种基于Hadoop集群的控制方法和系统
US11665167B2 (en) Dynamically deployed limited access interface to computational resources
WO2022241939A1 (zh) 一种网络安全管理方法及计算机设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant