在容器集群内转发访问请求的方法、装置以及存储介质与流程

文档序号:19737332发布日期:2020-01-18 04:40阅读:178来源:国知局
本申请涉及互联网
技术领域
:,特别是涉及一种在容器集群内转发访问请求的方法、装置以及存储介质。
背景技术
::目前,容器集群得到了越来越普遍的使用。例如,kubernetes是以容器为中心的集群管理系统,该系统将多个容器组合成一个service,该service中的容器可以互相访问。参考图2所示,现有的容器集群内转发访问请求,容器访问service时使用service的ip地址以及在每个服务器上设置iptables转发规则。然而容器访问service时使用service的ip地址,因为请求方和被请求方都是多个容器,是多对多的关系,同时这些容器都是随机分布在不同的宿主服务器上,集群中的请求交织成网状,请求日志分散在多个容器中,使得容器难以查阅。并且用iptables规则修改请求报文目的地址,不能识别7层应用协议,不能按协议内容进行转发,且无转发日志。针对上述的现有技术中存在的容器集群内转发访问请求时,请求日志分散在多个容器中,使得容器难以查阅,以及不能识别7层应用协议,不能按协议内容进行转发,且无转发日志的技术问题,目前尚未提出有效的解决方案。技术实现要素:本公开的实施例提供了一种在容器集群内转发访问请求的方法、装置以及存储介质,以至少解决现有技术中存在的容器集群内转发访问请求时,请求日志分散在多个容器中,使得容器难以查阅,以及不能识别7层应用协议,不能按协议内容进行转发,且无转发日志的技术问题。根据本公开实施例的一个方面,提供了一种在容器集群内转发访问请求的方法,包括:通过在容器集群内预设的基于七层负载均衡的程序组件,从第一容器接收对第二容器内的服务进行访问的访问请求,其中。第一容器和第二容器均是设置于容器集群内的容器,并且访问请求包括与服务关联的基于应用层协议的访问信息;通过程序组件,根据访问信息确定第二容器在容器集群内的地址信息;以及通过程序组件,根据地址信息将访问请求发送至所述第二容器。根据本公开实施例的另一个方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时由处理器执行以上任意一项所述的方法。根据本公开实施例的另一个方面,还提供了一种在容器集群内转发访问请求的装置,包括:接收模块,用于通过在容器集群内预设的基于七层负载均衡的程序组件,从第一容器接收对第二容器内的服务进行访问的访问请求,其中第一容器和第二容器均是设置于容器集群内的容器,并且访问请求包括与服务关联的基于应用层协议的访问信息;确定模块,用于通过程序组件,根据访问信息确定第二容器在容器集群内的地址信息;以及第一发送模块,用于通过程序组件,根据地址信息将访问请求发送至第二容器。根据本公开实施例的另一个方面,还提供了一种在容器集群内转发访问请求的装置,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:通过在容器集群内预设的基于七层负载均衡的程序组件,从第一容器接收对第二容器内的服务进行访问的访问请求,其中第一容器和第二容器均是设置于容器集群内的容器,并且访问请求包括与服务关联的基于应用层协议的访问信息;通过程序组件,根据访问信息确定第二容器在容器集群内的地址信息;以及通过程序组件,根据地址信息将访问请求发送至第二容器。在本公开实施例中通过七层负载均衡的程序组件(例如,ingress组件)接收请求方容器对被请求方容器的访问请求,程序组件根据访问请求信息确定被请求方容器在容器集群中的地址信息,并且根据地址信息将该访问请求发送至被请求方容器。从而通过七层负载均衡的程序组件,容器集群中的请求访问更加系统化,方便查阅,并且能够识别七层应用层协议,通过协议内容进行转发。进而解决了现有技术中存在的容器集群内转发访问请求时,请求日志分散在多个容器中,使得容器难以查阅,以及不能识别7层应用协议,不能按协议内容进行转发,且无转发日志的技术问题。附图说明此处所说明的附图用来提供对本公开的进一步理解,构成本申请的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:图1是用于实现根据本公开实施例1所述的方法的计算机终端的硬件结构框图;图2是根据
背景技术
:所述的现有的容器集群内转发访问请求的示意图;图3是根据本公开实施例1的第一个方面所述的在容器集群内转发访问请求的方法的示意图;图4是根据本公开实施例1的第一个方面所述的在容器集群内转发访问请求的方法的流程示意图;图5是根据本公开实施例2所述的在容器集群内转发访问请求的装置的示意图;以及图6是根据本公开实施例3所述的在容器集群内转发访问请求的装置的示意图。具体实施方式为了使本
技术领域
:的人员更好地理解本公开的技术方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。实施例1根据本实施例,还提供了一种在容器集群内转发访问请求的的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。本实施例所提供的方法实施例可以在服务器或者类似的计算设备中执行。图1示出了一种用于实现在容器集群内转发访问请求的方法的计算设备的硬件结构框图。如图1所示,计算设备可以包括一个或多个处理器(处理器可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器、以及用于通信功能的传输装置。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为i/o接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算设备中的其他元件中的任意一个内。如本公开实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。存储器可用于存储应用软件的软件程序以及模块,如本公开实施例中的在容器集群内转发访问请求对应的程序指令/数据存储装置,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的在容器集群内转发访问请求的方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算设备的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。显示器可以例如触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够与计算设备的用户界面进行交互。此处需要说明的是,在一些可选实施例中,上述图1所示的计算设备可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算设备中的部件的类型。图3是根据本实施例所述的在容器集群内转发访问请求的示意图。参照图3所示,该系统包括:基于七层负载均衡的程序组件(例如,ingress组件)、日志收集系统、容器1、容器2、容器3、容器a、容器b、和容器c。其中,容器2和容器3组合成一个服务,以及容器b和容器c组合成一个服务。在上述运行环境下,根据本实施例的第一个方面,提供了一种在容器集群内转发访问请求的方法。图4示出了该方法的流程示意图,参考图4所示,该方法包括:s402:通过在容器集群内预设的基于七层负载均衡的程序组件,从第一容器接收对第二容器内的服务进行访问的访问请求,其中第一容器和第二容器均是设置于容器集群内的容器,并且访问请求包括与服务关联的基于应用层协议的访问信息;s404:通过程序组件,根据访问信息确定第二容器在容器集群内的地址信息;以及s406:通过程序组件,根据地址信息将访问请求发送至第二容器。正如前面
背景技术
:中的,参考图2所示,现有的容器集群内转发访问请求,容器访问service时使用service的ip地址以及在每个服务器上设置iptables转发规则。然而容器访问service时使用service的ip地址,因为请求方和被请求方都是多个容器,是多对多的关系,同时这些容器都是随机分布在不同的宿主服务器上,集群中的请求交织成网状,请求日志分散在多个容器中,使得容器难以查阅。并且用iptables规则修改请求报文目的地址,不能识别7层应用协议,不能按协议内容进行转发,且无转发日志。针对上述
背景技术
:中存在的问题,结合图3所示,本实施例中提供了一种在容器集群内转发访问请求的方法。在容器集群中,容器2和容器3组合成一个服务,并且容器b和容器c组合成一个服务,并且在该容器集群中预先设置基于七层负载均衡的程序组件(例如,该程序组件可以是ingress组件)。其中七层负载均衡是按照网络层次osi来划分的负载均衡类型。首先当第一容器(例如容器1或容器a)需要访问第二容器内的服务时(例如该服务可以是容器2中提供的服务),可以向该程序组件发送访问请求。其中,访问请求中包含与该服务对应的访问信息。其中,该访问信息是7层协议的访问信息,例如域名、url链接地址,或者其他路径。然后,该程序组件接收该访问请求(s402),并且根据访问请求中的访问信息确定第二容器在容器集群中的地址信息(s404)。例如该程序组件可以对访问请求中的域名进行解析,从而得到容器2在该容器集群中的地址信息。最后该程序组件可以根据所确定的地址信息将访问请求发送至第二容器(例如容器2)。从而通过这种方式,本实例的技术方案通过七层负载均衡的程序组件(例如ingress组件)接收请求方容器对被请求方容器的访问请求,该程序组件根据访问请求信息确定被请求方容器在容器集群中的地址信息,并且根据地址信息将该访问请求发送至被请求方容器。从而通过七层负载均衡的程序组件,容器集群中的请求访问更加系统化,方便查阅,并且能够识别七层应用层协议,通过协议内容进行转发。进而解决了现有技术中存在的容器集群内转发访问请求时,请求日志分散在多个容器中,使得容器难以查阅,并且不能识别7层应用协议,不能按协议内容进行转发,且无转发日志的技术问题。可选地,访问信息包括以下所述的至少一项:服务的域名、服务的链接地址以及服务的访问路径。具体地,请求访问信息包括以下所述的至少一项:请求服务的域名、请求服务的链接地址以及请求服务的访问路径path等信息。从而程序组件通过这些信息找到被请求方的容器的地址信息,以便将请求发送至被请求方的容器。可选地,还包括:通过程序组件记录与访问请求相关的日志。具体地,程序组件通过访问信息找到被请求方的容器的地址信息同时为该请求记录一条日志。从而以便后续可以通过这条日志查询对应的请求。可选地,还包括:通过程序组件将所记录的日志发送至预先设置的日志收集系统。具体地,程序组件为请求记录一条日志后,会将该日志发送到日志收集系统。从而在日志收集系统中可以查看集群内部的请求记录。此外,参考图1所示,根据本实施例的第二个方面,提供了一种存储介质104。所述存储介质104包括存储的程序,其中,在所述程序运行时由处理器执行以上任意一项所述的方法。从而根据本实施例,通过七层负载均衡的程序组件(例如ingress组件)接收请求方容器对被请求方容器的访问请求,程序组件根据访问请求信息确定被请求方容器在容器集群中的地址信息,并且根据地址信息将该访问请求发送至被请求方容器。从而通过七层负载均衡的程序组件,容器集群中的请求访问更加系统化,方便查阅,并且能够识别七层应用层协议,通过协议内容进行转发。进而解决了现有技术中存在的容器集群内转发访问请求时,容器访问service时使用service的ip地址会使得集群中的请求交织成网状,请求日志分散在多个容器中,使得容器难以查阅。并且用iptables规则修改请求报文目的地址,不能识别7层应用协议,不能按协议内容进行转发,且无转发日志的技术问题。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。实施例2图5示出了根据本实施例所述的在容器集群内转发访问请求的装置500,该装置500与根据实施例1的第一个方面所述的方法相对应。参考图5所示,该装置500包括:接收模块510,用于通过在容器集群内预设的基于七层负载均衡的程序组件,从第一容器接收对第二容器内的服务进行访问的访问请求,其中第一容器和第二容器均是设置于容器集群内的容器,并且访问请求包括与服务关联的基于应用层协议的访问信息;确定模块520,用于通过程序组件,根据访问信息确定第二容器在容器集群内的地址信息;以及第一发送模块530,用于通过程序组件,根据地址信息将访问请求发送至第二容器。可选地,访问信息包括以下所述的至少一项:服务的域名、服务的链接地址以及服务的访问路径。可选地,该装置500还包括:记录模块,用于通过程序组件记录与访问请求相关的日志。可选地,该装置500还包括:第二发送模块,用于通过程序组件将所记录的日志发送至预先设置的日志收集系统。从而根据本实施例,通过装置500,利用七层负载均衡的程序组件(例如ingress组件)接收请求方容器对被请求方容器的访问请求,程序组件根据访问请求信息确定被请求方容器在容器集群中的地址信息,并且根据地址信息将该访问请求发送至被请求方容器。从而通过七层负载均衡的程序组件,容器集群中的请求访问更加系统化,方便查阅,并且能够识别七层应用层协议,通过协议内容进行转发。进而解决了现有技术中存在的容器集群内转发访问请求时,容器访问service时使用service的ip地址会使得集群中的请求交织成网状,请求日志分散在多个容器中,使得容器难以查阅。并且用iptables规则修改请求报文目的地址,不能识别7层应用协议,不能按协议内容进行转发,且无转发日志的技术问题。实施例3图6示出了根据本实施例所述的在容器集群内转发访问请求的的装置600,该装置600与根据实施例1的第一个方面所述的方法相对应。参考图6所示,该装置600包括:处理器610;以及存储器620,与处理器610连接,用于为处理器610提供处理以下处理步骤的指令:通过在容器集群内预设的基于七层负载均衡的程序组件,从第一容器接收对第二容器内的服务进行访问的访问请求,其中第一容器和第二容器均是设置于容器集群内的容器,并且访问请求包括与服务关联的基于应用层协议的访问信息;通过程序组件,根据访问信息确定第二容器在容器集群内的地址信息;以及通过程序组件,根据地址信息将访问请求发送至第二容器。可选地,访问信息包括以下所述的至少一项:服务的域名、服务的链接地址以及服务的访问路径。可选地,该装置600还包括:通过程序组件记录与访问请求相关的日志。可选地,该装置600还包括:通过程序组件将所记录的日志发送至预先设置的日志收集系统。从而根据本实施例,通过装置600,利用七层负载均衡的程序组件(例如ingress组件)接收请求方容器对被请求方容器的访问请求,程序组件根据访问请求信息确定被请求方容器在容器集群中的地址信息,并且根据地址信息将该访问请求发送至被请求方容器。从而通过七层负载均衡的程序组件,容器集群中的请求访问更加系统化,方便查阅,并且能够识别七层应用层协议,通过协议内容进行转发。进而解决了现有技术中存在的容器集群内转发访问请求时,容器访问service时使用service的ip地址会使得集群中的请求交织成网状,请求日志分散在多个容器中,使得容器难以查阅。并且用iptables规则修改请求报文目的地址,不能识别7层应用协议,不能按协议内容进行转发,且无转发日志的技术问题。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1