CN113329077A - 一种面向微服务系统的跨容器通信框架设计方法 - Google Patents

一种面向微服务系统的跨容器通信框架设计方法 Download PDF

Info

Publication number
CN113329077A
CN113329077A CN202110586695.6A CN202110586695A CN113329077A CN 113329077 A CN113329077 A CN 113329077A CN 202110586695 A CN202110586695 A CN 202110586695A CN 113329077 A CN113329077 A CN 113329077A
Authority
CN
China
Prior art keywords
container
log
file
module
communication
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.)
Pending
Application number
CN202110586695.6A
Other languages
English (en)
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.)
Southeast University
Original Assignee
Southeast University
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 Southeast University filed Critical Southeast University
Priority to CN202110586695.6A priority Critical patent/CN113329077A/zh
Publication of CN113329077A publication Critical patent/CN113329077A/zh
Pending legal-status Critical Current

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
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • G06F16/1794Details of file format conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • 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/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/566Grouping or aggregating service requests, e.g. for unified processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种微服务跨容器通信框架的设计方法,针对部署在Kubernetes集群中的容器,通过采用新建中间转发节点的方式,实现集群外部与集群中节点的通信。与现有通信方法相比,本发明方法具有无需重启容器、可在转发时进行负载均衡以及可定制转发策略等优点。本发明还包括一种通过对以上通信框架采集到的日志的兼容性格式转换方法,能够帮助分析出容器中运行程序的轨迹,该方案实现分发请求的负载均衡以及安全传输日志等功能,方便对用户感兴趣的容器进行统一的管理和操作。

Description

一种面向微服务系统的跨容器通信框架设计方法
技术领域
本发明属于软件工程中的构件框架方法领域,尤其涉及一种面向微服务系统的框架通信设计方法。
背景技术
近年来,现有的多种容器集群管理平台功能已经较为完善,主要体现在:1)专注于对平台中部署的容器进行统一管理,保证容器能稳定的运行。2)平台能对各个容器以及服务进行监控,能根据目前的运行状态以及负载情况进行多种指标的动态伸缩,保证各种情况都能满足性能的需求。3)能对容器的整个生命周期进行管控,方便的进行项目的上线、测试、下线等管理。被广泛使用的Kubernetes还自带可视化组件,方便运维人员对服务进行管理。
由于集群管理系统的目的为管控整个容器集群,因此都着重于管理、部署整个集群系统,对于单种容器的关注度较少,而在某些情况下,对于某一容器中运行的web程序却恰好是用户所关注的。如动态轨迹验证时,用户需要根据该容器中运行的web程序所产生的日志信息,提取到平台外部,并进行分析,从而确定web程序是否按照正常的流程运行。这种情况下,Kubernetes平台就很难给出一种好的策略来处理这个问题,除此之外,由于容器网络已经被Kubernetes所管理,想要在容器内部部署新的web程序监听外部请求以及收集该web程序的日志存在困难,所以迫切的需要一种针对目标容器进行通信的工具。
在解决上述问题上,通常有以下几种做法。第一种方法是先手动找到容器ip,然后使用iptables增加转发链,转发请求到单个容器。但这种做法不适用于部署到Kubernetes平台的容器,因为在Kubernetes管理的平台上由于网络请求都被服务管理,因此请求也无法到达目标容器。第二种方法是重新创建docker容器,并在配置文件中添加开放多个端口。由于该方案需要重启容器修改配置文件,因此也不可行。以动态轨迹验证的应用场景为例,采用第一种方式,无法完成一般的功能需求,插桩请求无法传输到目标容器中。采用第二种方式时,能满足插桩需求,但却需要销毁容器并重新创建目标容器,这就违背了对程序进行动态验证的初衷——不能对被验证程序的正常使用造成影响。由此在许多实际应用中迫切的需要一种工具,能解决上述的问题,并且不对容器中的正常程序运行造成干扰。
发明内容
本发明的目的是设计并开发出一个微服务跨容器通信框架,使得外部能通过该工具转发与部署在Kubernetes集群中的容器进行通信,并具有管理容器生命周期、实现分发请求的负载均衡以及安全传输日志等功能,方便对用户感兴趣的容器进行统一的管理和操作。
为了实现上述目的,本发明的模块组成如下:一种面向微服务系统的跨容器通信框架设计方法,其特征在于,所述方法包括如下功能模块:容器监视与通信模块、请求分发负载均衡模块、传输信息加密模块、文件传输模块以及文件格式转换模块。
其中容器监视与通信模块,通信指的是平台外部能通过工具转发http请求到目标容器,实现监视目标容器运行状态等功能。在与目标容器通信时,能做到用户在直接跟容器通信一般。通信是一切其他功能的基础;
请求分发负载均衡模块,该工具在访问多个容器的服务时,可以根据设置的负载均衡策略(轮询、随机选择等)选择一个容器发送请求;
传输信息加密模块,该工具能对传输的关键内容(如日志信息)进行加密以及解密,保证客户端与容器间通信的安全性。
文件传输模块,该工具能将在目标容器中收集到的日志信息通过转发容器转发到本地,进行分析。
文件格式转换模块,该工具能对采集到的日志信息进行文件兼容性检测以及标准化的转换,方便用户分析日志信息。
相对于现有技术,本发明的优点如下:本发明方法基于部署在Kubernetes集群中的容器,通过部署一个新的转发节点,能在不影响原容器的情况下,实现集群外部与只开放一个端口的容器之间的通信。本发明方法与现有技术相比,主要有以下一些优点:
(1)对目标容器的运行没有影响。通常做法是将容器停止后,修改容器的配置文件增加端口映射,并重新启动容器之后,才能实现与容器间的通信,而且对于每个容器都要重新操作。而本方法只需要新部署一个程序即可,对运行的容器没有影响,并且一次部署,可以多次重复使用;
(2)在转发请求的过程中能自定义转发策略。由于本设计方法采用的是构建两端间的消息中间件的方式,因此可以对转发请求进行自定义的转发策略,可以较为轻松的在应用层实现负载均衡等转发策略;
(3)本发明所提出的框架具有较好的可扩展性,能轻松的定制新的功能。本发明在通信的两端以及中间的转发节点都有扩展功能,如在用户端增加日志转发、在通信节点增加日志加密等功能。
附图说明
图1是本发明的架构图。
图2是本发明在应用在插桩过程时的位置图,表示本发明中涉及的功能模块及数据信息之间的联系。
图3是文件格式转换的流程图。
图4是插桩时序图。
图5是取消插桩时序图。
图6是源日志信息。
图7是验证结果。
具体实施方式
为了加深对本发明的认识和理解,下面结合附图对本发明的技术方案进行详细说明:一种面向微服务系统的跨容器通信框架设计方法,其特征在于,所述方法包括如下功能模块:容器监视与通信模块、请求分发负载均衡模块、传输信息加密模块、文件传输模块以及文件格式转换模块。图1给出了本发明的架构图,按照功能,可以分为五个模块,包括容器监视与通信模块、请求分发负载均衡模块、传输信息安全模块、文件传输模块以及文件格式转换模块。按照在通信中所处的位置,可以分为目标容器以及转发容器,其中转发容器能集成上述的多个功能模块。
下面依次介绍一下上述的各个功能模块:
第一个,容器监视与通信模块。
与目标容器通信的主要目的是为了传输请求到目标容器内,这些请求主要包括发起操作请求、发起取消操作请求、传输文件等。实现方式为:建立转发容器,在该容器中运行通信工具。由于该容器可以被任意调控,因此可以打开多个端口供接收请求,同时该容器运行在相同服务器上,可以直接与目标容器进行通信,因此可以利用该转发容器作为请求的中转站,实现跨容器间的通信。
第二个,请求分发负载均衡模块。
负载均衡通常是指,将请求分发到多台web服务器上,从而分散一台web服务器的压力,通常负载均衡被用于容器集群中,当一台web服务器所在的容器挂掉之后,应该可以实现不再分发请求到此容器。负载均衡的实现通常有几种方式。1.重定向方式,重定向是指将请求首先发送到前置机,前置机通过负载均衡算法得出该请求需要分配的容器,同时将响应返回给客户端,然后客户端跟目标容器再次进行通信,这种方式由于对于每个请求都需要进行重定向,因此效率较低。2.反向代理,这种方式是指当请求发送到前置机时,前置机根据负载均衡算法,直接将请求转发给目标容器,客户端不用重新发送请求到目标容器,从而省去了一次重定向的步骤,因此相比第一种方式效率有了一定的提高,但是这种方式需要交换机的支持,或需要实现类似nginx反向代理的功能。在这里负载均衡模块采用第二种方式实现,因此本工具需要实现类似nginx反向代理的功能。
第三个,传输信息安全模块。
多数情况下,由于后端部署在自己的服务器上,客户很难接触到后端应用产生的日志文件,因此大多没有加密的必要,但是在动态轨迹验证中,日志信息需要被用来展示以及分析,并且日志中包含许多服务器的端口、应用程序内部的信息,为了安全起见,这些信息需要进行加密处理。
常见的加密算法有以下几种:DES、AES以及RSA。其中最为安全的就是RSA算法,它基于对大数的因式分解,但是解密效率较另外两种较低,在需要实时传输并展示日志的应用场景中并不适合。DES是一种美国联邦政府曾经使用过的一种加密方式,这种方式使用一种长为56位的密钥,随着计算机算力的不断提高,这种长度的秘钥已经不能提供足够的安全性,因此DES算法也被排除。AES算法是目前使用最为广泛的密码算法之一,可以根据密钥长度的不同分为AES-128,AES-192和AES-256。最常使用的128位密钥算法内部需要进行10次轮变换操作迭代,多次迭代使得安全性有了保证,AES算法具有速度快、安全性较高的特点,因此在这里被采用作为日志加密解密的算法。
第四个,文件传输模块。
用户可以在前端通过界面将目标容器中的日志文件传输到本地,在本地进行查看和分析,该模块是文件格式转换模块的前置模块,通过该模块,用户可以得到日志的原始文件,方便用户进行自定义的分析。
第五步,文件格式转换模块。
在采集到日志信息之后,由于生成的日志中信息比较杂乱,很难进行感兴趣的信息获取,因此需要对日志进行格式转换。收集到的日志信息是txt格式的,最后需要转成将日志中方法编码的csv格式,供轨迹验证使用。
日志的格式转换包括以下步骤:
(1)预处理:预处理是指将采集到的日志txt文件的一行,按照分隔符分隔后得到一条日志记录,方便程序对日志信息进行处理。
(2)排序:按照方法的执行时刻对所有的日志信息进行排序,方便后续轨迹验证中的顺序验证。
(3)方法编码:将日志中包含的方法进行编码处理,便于后续轨迹验证中将方法的执行关系转换为图关系。
(4)根据访问url得到方法集合:根据访问的url,将日志信息分成多组,这时一组日志信息就代表了访问网站的一次日志集合,重点关注这些日志中含有的方法。
(5)输出到csv文件:将得到的方法编码输出到csv文件中,完成日志文件从txt文件的到csv文件的格式转换。
具体实施例:
下面以对容器中的程序进行插桩举例,表现出该通信框架在插桩过程中的作用。
一、发起操作请求
发起操作请求,指的是用户对容器发起执行指令,这里以发起开始插桩命令为例。用户使用浏览器输入需要进行动态验证的容器所在的服务器IP以及生成的日志ID,经服务端处理后转发到指定IP的服务器,然后经通信工具进行转发,当接收到对目标程序进行插桩的请求时,一方面开始对请求的解析,将请求中包含的关键信息,如、插桩的方式等信息封装成新的请求信息,转发给目标容器。另一方面打开socket监听指定端口,尝试连接目标容器中的web程序获得目标容器中的日志信息。插桩信息转发到目标容器之后,首先执行插桩命令对目标web程序进行插桩,与此同时开启serversocket准备传输日志信息。待插桩指令执行完成之后,一方面开启对日志文件的监听,一旦日志长度有变化,即通过socket传输生成的日志信息,另一方面将插桩成功的信息响应给通信工具,工具接收到该信息之后提示浏览器插桩已经成功,正在监听程序日志。
二、发起取消操作请求
发起取消操作请求,指的是用户对容器发起取消之前的操作指令,这里以发起取消插桩命令为例。用户在浏览器中发起停止插桩指令,经服务器处理之后,发送到指定IP所在的服务器上,经通信工具分析请求后,将取消插桩指令发送到目标容器,同时关闭插桩请求时开启的socket和相关流。目标容器接收到取消插桩请求时,一方面执行移除插桩命令,另一方面杀死回传进程,停止回传日志。同时删除本机上的日志,防止之前插桩生成的日志对后续插桩造成影响。等待停止插桩命令完成之后,目标容器也会响应取消插桩信息到通信工具,通信工具接收到后转发到浏览器,这样用户便会得到取消插桩成功的提示。值得一提的是,取消插桩之后,web程序的日志信息便只存到了通信工具中,等待用户发起日志回传请求。
三、文件格式转换
以附图6日志为例,图6是源日志信息,为方便查看,这里仅展示了一条信息。该日志首先按照发生的时间进行排序,然后可以看出其中包含两个方法serviceHello以及hello方法,分别编码serviceHello为1,hello方法为2。而且他们属于同一个url为/hello中,因此这个日志文件的输出结果如图7所示。
需要说明的是上述实施例仅仅是本发明的优选实施例,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和等同替换,这些对本发明权利要求进行改进和等同替换后的技术方案,均属于本发明的保护范围。

Claims (7)

1.一种面向微服务系统的跨容器通信框架设计方法,其特征在于,所述方法包括如下功能模块:容器监视与通信模块、请求分发负载均衡模块、传输信息加密模块、文件传输模块以及文件格式转换模块。
2.根据权利要求1所述的面向微服务系统的跨容器通信框架设计方法,其特征在于,所述容器监视与通信模块,具体如下,通信指的是平台外部能通过工具转发http请求到目标容器,实现监视目标容器运行状态功能。
3.根据权利要求1所述的面向微服务系统的跨容器通信框架设计方法,其特征在于,请求分发负载均衡模块,该工具在访问多个容器的服务时,可以根据设置的负载均衡策略选择一个容器发送请求。
4.根据权利要求1所述的面向微服务系统的跨容器通信框架设计方法,其特征在于,传输信息加密模块,该工具能对传输的关键内容进行加密以及解密,保证客户端与容器间通信的安全性。
5.根据权利要求1所述的面向微服务系统的跨容器通信框架设计方法,其特征在于,文件传输模块,该工具能将在目标容器中收集到的日志信息通过转发容器转发到本地,进行分析。
6.根据权利要求1所述的面向微服务系统的跨容器通信框架设计方法,其特征在于,文件格式转换模块,该工具能对采集到的日志信息进行文件兼容性检测以及标准化的转换,方便用户分析日志信息。
7.根据权利要求5所述的面向微服务系统的跨容器通信框架设计方法,其特征在于,文件格式转换模块中,日志的格式转换包括以下步骤:
(1)预处理:预处理是指将采集到的日志txt文件的一行,按照分隔符分隔后得到一条日志记录,方便程序对日志信息进行处理;
(2)排序:按照方法的执行时刻对所有的日志信息进行排序,方便后续轨迹验证中的顺序验证;
(3)方法编码:将日志中包含的方法进行编码处理,便于后续轨迹验证中将方法的执行关系转换为图关系;
(4)根据访问url得到方法集合:根据访问的url,将日志信息分成多组,这时一组日志信息就代表了访问网站的一次日志集合,重点关注这些日志中含有的方法;
(5)输出到csv文件:将得到的方法编码输出到csv文件中,完成日志文件从txt文件的到csv文件的格式转换。
CN202110586695.6A 2021-05-27 2021-05-27 一种面向微服务系统的跨容器通信框架设计方法 Pending CN113329077A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110586695.6A CN113329077A (zh) 2021-05-27 2021-05-27 一种面向微服务系统的跨容器通信框架设计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110586695.6A CN113329077A (zh) 2021-05-27 2021-05-27 一种面向微服务系统的跨容器通信框架设计方法

Publications (1)

Publication Number Publication Date
CN113329077A true CN113329077A (zh) 2021-08-31

Family

ID=77421913

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110586695.6A Pending CN113329077A (zh) 2021-05-27 2021-05-27 一种面向微服务系统的跨容器通信框架设计方法

Country Status (1)

Country Link
CN (1) CN113329077A (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104023082A (zh) * 2014-06-23 2014-09-03 浪潮电子信息产业股份有限公司 一种集群负载均衡的实现方法
CN111124670A (zh) * 2019-12-05 2020-05-08 航天科工网络信息发展有限公司 一种面向战术云的微服务平台

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104023082A (zh) * 2014-06-23 2014-09-03 浪潮电子信息产业股份有限公司 一种集群负载均衡的实现方法
CN111124670A (zh) * 2019-12-05 2020-05-08 航天科工网络信息发展有限公司 一种面向战术云的微服务平台

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
UMCLOUD优铭云 PAVEL CHEKIN: ""多容器POD及Kubernetes容器通信"", 《HTTPS://WWW.KUBERNETES.ORG.CN/2767.HTML》 *
李伟等: "Windows Mobile的智能终端上内存泄露检测研究", 《计算机技术与发展》 *
蒋杰等: "基于运行时代码修改的动态性能监控关键技术研究", 《计算机工程与科学》 *

Similar Documents

Publication Publication Date Title
KR101936758B1 (ko) 정보 조회 기록의 무결성을 위한 암호화 장치, 방법 및 블록체인에서 정보 조회 기록의 무결성을 위한 분산 원장 장치
US7792939B2 (en) Method and system for obtaining secure shell host key of managed device
CN101640682B (zh) 一种改善Web服务安全性的方法
CN111428225A (zh) 数据交互方法、装置、计算机设备及存储介质
CN106713320A (zh) 终端数据传输的方法和装置
CN105247529A (zh) 在目录服务之间同步凭证散列
CN111614683B (zh) 一种数据处理方法、装置、系统及一种网卡
CN108156178A (zh) 一种ssl/tls数据监控系统和方法
CN111460503B (zh) 数据分享方法、装置、设备和存储介质
CN114629678B (zh) 一种基于tls的内网穿透方法及装置
CN111082929A (zh) 一种加密即时通讯的实现方法
CN114938312B (zh) 一种数据传输方法和装置
CN105592121B (zh) 一种rdp数据采集装置及方法
CN115442029A (zh) 一种用于智能工厂的云平台
Cai et al. A secure transmission method of network communication data based on symmetric key encryption algorithm
KR102096637B1 (ko) 블록체인에서 정보 조회 시간의 기록을 위한 분산 원장 장치
CN113329077A (zh) 一种面向微服务系统的跨容器通信框架设计方法
CN115001744B (zh) 一种云平台数据完整性验证方法及系统
CN113992734A (zh) 会话连接方法及装置、设备
KR102096639B1 (ko) Uuid를 이용한 블록체인에서 정보 조회 기록의 무결성을 위한 분산 원장 장치
CN113691510A (zh) 一种跨域访问控制方法、系统、存储介质及设备
KR20020083551A (ko) 멀티에이전트 기반 다단계 사용자 인증 시스템 개발과운용 방법
CN115914417B (zh) 暗网威胁情报的获取方法、装置、设备及介质
CN111698192A (zh) 监控交易系统的方法、交易设备、监管设备及系统
CN117319083B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20210831

RJ01 Rejection of invention patent application after publication