CN116132366A - 流量管理方法、装置、电子设备及存储介质 - Google Patents

流量管理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN116132366A
CN116132366A CN202210766685.5A CN202210766685A CN116132366A CN 116132366 A CN116132366 A CN 116132366A CN 202210766685 A CN202210766685 A CN 202210766685A CN 116132366 A CN116132366 A CN 116132366A
Authority
CN
China
Prior art keywords
flow
container
target
target container
information
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
CN202210766685.5A
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.)
Mashang Consumer Finance Co Ltd
Original Assignee
Mashang Consumer Finance 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 Mashang Consumer Finance Co Ltd filed Critical Mashang Consumer Finance Co Ltd
Priority to CN202210766685.5A priority Critical patent/CN116132366A/zh
Publication of CN116132366A publication Critical patent/CN116132366A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/20Traffic policing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请实施例提供一种流量管理方法、装置、电子设备及存储介质,在容器中生成应用实例的同时,设置一个辅助实例,通过辅助实例来实现容器的流量管理。通过辅助实例来实现容器的流量管理,既可以对不同语言类型、不同环境架构的容器执行统一的流量管理标准,提升容器管理设备的标准化程度,进而降低容器管理设备的流量管理难度,同时,辅助实例还可以根据容器对应的应用信息,采用不同的切流方法对不同的容器进行切流,以保障容器管理设备的灵活性,从而差异化的满足不同场景下的流量管理需求。

Description

流量管理方法、装置、电子设备及存储介质
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种流量管理方法、装置、电子设备及存储介质。
背景技术
Kubernetes(简称K8s)作为跨主机集群的开源容器管理平台,其可以实现容器集群的自动化部署、自动扩缩容、维护等功能,目前已被广泛应用。
K8s平台通常可以部署多种语言或架构环境,从而实现对不同语言或架构环境下的容器管理和调度,相应的,由负载设备为K8s平台中运行的容器提供业务流量,以通过该容器执行相应业务。
相关技术中,由于负载设备的负载能力有限,为了实现负载设备的负载均衡,K8s平台在启动新的容器时,需要根据容器的运行情况,销毁旧容器,并切断负载设备对待销毁容器的流量供应,例如,当某容器对应的业务执行结束时,则需要切断该容器的流量。然而,不同语言或架构环境下的切流处理方式不同,使得K8s平台的流量管理难度较大。
发明内容
本申请的实施例提供一种流量管理方法、装置、电子设备及存储介质,以提升容器管理设备的标准化程度,进而降低容器管理设备的流量管理难度。
第一方面,本申请的实施例提供一种流量管理方法,应用于容器管理设备,容器管理设备中部署目标容器,目标容器中部署有应用实例和辅助实例,流量管理方法包括:
响应于针对辅助实例的切流接口的第一切流请求,通过辅助实例获取目标容器对应的应用实例的目标应用信息,第一切流请求用于指示切断负载设备为目标容器提供的流量;根据目标应用信息,确定目标切流方法;基于目标切流方法,将负载设备为目标容器提供的流量进行切断处理。
第二方面,本申请实施例提供了另一种流量管理方法,应用于负载设备,流量管理方法包括:响应于容器管理设备基于目标切流方法发送的第二切流请求,获取对目标容器进行切流处理的处理结果;容器管理设备中部署有目标容器,目标容器中部署有应用实例和辅助实例;向容器管理设备发送处理结果,处理结果用于指示容器管理设备基于处理结果确定目标容器的当前流量信息,并根据当前的流量信息生成目标容器对应的切流处理过程的状态信息,并基于状态信息对目标容器进行销毁处理;
其中,目标切流方法是容器管理设备根据目标容器中应用实例对应的目标应用信息确定的;目标应用信息是在容器管理设备响应于针对目标容器中辅助实例的切流接口的第一切流请求,通过辅助实例获取的;处理结果用于确定目标容器当前的流量信息,流量信息用于指示目标容器当前是否还有流量;状态信息用于指示目标容器的流量是否切断成功。
第三方面,本申请实施例提供一种流量管理装置,应用于容器管理设备,容器管理设备中部署目标容器,目标容器中部署有应用实例和辅助实例;流量管理装置包括:
获取单元,用于响应于针对辅助实例的切流接口的第一切流请求,通过辅助实例获取目标容器对应的应用实例的目标应用信息,辅助实例和应用实例均设置于目标容器中,第一切流请求用于指示切断负载设备为目标容器提供的流量;
确定单元,用于通过辅助实例根据目标应用信息,确定目标切流方法;
处理单元,用于通过辅助实例基于目标切流方法,将负载设备为目标容器提供的流量进行切断处理。
第四方面,本申请实施例提供了另一种流量管理装置,应用于负载设备,流量管理装置包括:
获取单元,用于响应于容器管理设备基于目标切流方法发送的第二切流请求,获取对目标容器进行切流处理的处理结果;容器管理设备中部署有目标容器,目标容器中部署有应用实例和辅助实例;
发送单元,用于向容器管理设备发送处理结果,处理结果用于指示容器管理设备基于处理结果确定目标容器的当前流量信息,并根据当前的流量信息生成目标容器对应的切流处理过程的状态信息,并基于状态信息对目标容器进行销毁处理;
其中,目标切流方法是容器管理设备根据目标容器中应用实例对应的目标应用信息确定的;目标应用信息是在容器管理设备响应于针对目标容器中辅助实例的切流接口的第一切流请求,通过辅助实例获取的;处理结果用于确定目标容器当前的流量信息,流量信息用于指示目标容器当前是否还有流量;状态信息用于指示目标容器的流量是否切断成功。
第五方面,本申请实施例提供一种电子设备,包括:存储器和至少一个处理器,存储器用于存储计算机程序,处理器用于调用存储器中的计算机程序,执行如第一方面的流量管理方法,和/或,执行如第二方面的流量管理方法。
第六方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序;计算机程序被执行时,实现如第一方面的流量管理方法,和/或,实现如第二方面的流量管理方法。
第七方面,本申请实施例提供一种计算机程序产品,包括:计算机程序,该计算机程序被处理器执行时,实现如第一方面的流量管理方法,和/或,实现如第二方面的流量管理方法。
本申请实施例提供一种流量管理方法、装置、电子设备及存储介质,在目标容器中生成应用实例的同时,设置一个辅助实例,通过辅助实例来实现目标容器的流量管理,具体地,响应于辅助实例的切流接口的第一切流请求,通过辅助实例获取目标容器中应用实例对应的目标应用信息,进一步的,根据目标应用信息确定目标切流方法,最后基于目标切流方法将负载设备为目标容器提供的流量进行切断处理。应当理解的,通过辅助实例来实现容器的流量管理,既可以对不同语言类型、不同环境架构的容器执行统一的流量管理标准,提升容器管理设备的标准化程度,进而降低容器管理设备的流量管理难度,同时,辅助实例还可以根据容器对应的应用信息,采用不同的切流方法对不同的容器进行切流,以保障容器管理设备的灵活性,从而差异化的满足不同场景下的流量管理需求。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的K8s平台进行“滚动发布”的原理示意图;
图2为本申请实施例提供的流量管理方法的场景示意图;
图3为本申请实施例提供的流量管理方法的流程示意图;
图4为本申请实施例提供的流量管理过程中的信令交互示意图;
图5为本申请实施例提供的流量管理方法的原理示意图;
图6为本申请实施例提供的流量管理装置的结构示意图一;
图7为本申请实施例提供的流量管理装置的结构示意图二;
图8为本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例的说明书、权利要求书及上述附图中的术语“第一”和“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例如能够以图示或描述的顺序以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。“/”表示“或”的关系。
首先,对本申请中涉及的部分名词进行说明:
K8s:容器管理平台,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。
容器(Pod):是容器管理平台创建或部署的最小/最简单的基本单位,一个容器代表集群上正在运行的一个进程或者一个应用实例,每个进程包含IP地址信息。
负载均衡(Load Balance,LB):是一种集群技术,它将特定的业务(网络服务、网络流量等)分担给多台网络设备(例如是服务器、防火墙等)或多条链路,从而提高了业务处理能力,保证了业务的高可靠性。
Sidecar服务:即“边斗模式”,在原来的业务逻辑上再新加一个抽象层,用于实现辅助功能。
K8s cluster:由K8s提供的基于4层的负载均衡技术。
ingress-nginx:由K8s提供的基于nginx开发的4/7层负载均衡技术。
eureka:提供微服务的负载均衡方法,微服务通过注册多个ip到eureka对应的服务名,用户直接通过注册的IP对服务进行访问,每次提供的服务ip由eureka计算后提供,实现负载均衡。
滚动发布:程序每次发布,实现升级一个或多个服务,升级完成后加入生产环境,不断循环,直到集群中的全部旧版本被替换。
相关技术中,在K8s容器化平台上,可以部署不同语言或者架构的程序,其中,语言例如是java语言、Python语言、go语言和PHP语言等等,架构例如是Hibernate、Spring、Gin等。
为了实现服务的负载均衡,在K8s环境中,通常使用“滚动发布”方式来管理容器。图1为本申请实施例提供的K8s平台进行“滚动发布”的原理示意图。应理解,图1中以容器1~9为例示出,但实际应用中不以此为限定。
如图1所示,容器1~3为当前正在运行的容器、容器4~6为销毁的容器、容器7~9为当前启动的新的容器。
其中,正在运行的容器(例如图1中的容器1~3)会接入到负载设备中,由负载设备为该容器中应用实例的运行提供流量,当销毁成功一个或多个旧的容器后,才能启动一个或多个新的容器,相应的,需要切断待销毁容器的流量,并通过负载设备向新启动的容器提供流量,从而实现服务的负载均衡。应理解,启动的新的容器的数量应当小于或等于销毁的旧的容器。
相关技术中,在K8s中发布程序,其实是创建容器的过程,而容器是否正常运行,主要通过liveness和readiness两种方式来探测。其中,Liveness用于检测容器里面启动的应用是否成功,如果程序启动成功,开始执行readiness检查容器内的应用是否能够正常提供服务,如果检测结果为应用能够正常提供服务,则将容器的IP加入到负载设备中。也就是说,当liveness和readiness均探测成功,则表示容器启动成功,此时,将该容器加入到负载设备中,由负载设备为该容器提供流量。
需要说明的是,不同平台中,将容器加入LB负载设备的方式也不相同,主要包括但不限于如下几种:
对于K8s cluster来说,可以通过kube-proxy来发现容器是否启动成功,并在发现容器启动成功时,将最新的数据通过iptabls规则注入到负载设备;
对于ingress来说,可以通过远程K8s API通过的watch机制,结合到ingress-nginx提供的servername,将容器的IP信息写到对应的nginx配置文件,再通过reload命令进行加载;
对于eureka来说,在容器启动的时候,通过API接口实现IP地址的注册到对应的key,实现服务的加载。
相应的,当负载设备接收到容器成功启动的信息时,也会根据不同的负载技术,实现流量的管理,比如K8s cluster对应的负载技术为vip区分服务;ingress对应的负载技术通常为servername区分服务;eureka对应的负载技术通常为key/value区分服务。
同理,上述三种不同的负载技术,对应的切流方式也不同,具体包括但不限于如下方式:
对于K8s cluster来说,可以通过K8s内置的kube-proxy实现负载的流量管理;
对于ingress-nginx来说,可以通过自定义代码获取容器的状态,使用nginx的reload技术实现负载流量管理;
对于eureka来说,可以通过自身提供的API接口实现负载流量管理。
然而,由上述方案可以得知,目前各平台对应的流量管理方法不统一,未实现流量管理的解耦,主要区别在于不同负载设备的切流方式不一致,这会大大增加容器管理平台的管理难度、降低容器管理平台的标准化建设。
并且,通过上述技术也无法准确判断切流是否已经完成,也就不能精准的销毁容器,进而会影响业务的正常进行。示例性的,在基于K8s label的切流过程中,K8s平台无法实现平滑的销毁容器,因而,只能定制开发针对不同应用的接口响应状态、或者设置一个大概的等待时间来实现容器的销毁,而无法感知业务流量本身的状态。对于业务客户来说,可能会出现业务客户的服务临时中断的情况,影响用户体验;对于研发人员而言,会出现非业务本身的误告警。
有鉴于此,本申请实施例提供一种流量管理方法、装置、电子设备及存储介质。除了应用实例外,在容器中会同步注入一个辅助实例,通过辅助实例来实现容器的流量管理。具体的,在容器管理平台确定对某一容器进行切流时,会向该容器中的辅助实例发送切流请求,相应的,辅助实例会获取容器中的应用实例的目标应用信息,并根据目标应用信息确定目标切流方法,以基于该目标切流方法对该容器进行切流处理。
本申请实施例中,通过容器中设置的辅助实例来实现容器的流量管理,既可以对不同语言类型、不同环境架构的容器执行统一的流量管理标准,提升容器管理平台的标准化程度、降低容器管理平台的流量管理难度。同时,还可以根据应用信息采用不同的切流方法对不同的容器进行切流,保障容器管理平台的灵活性,从而差异化的满足不同场景下的流量管理需求。
接下来,结合具体实施例对流量管理方法进行详细说明。图2为本申请实施例提供的流量管理方法的场景示意图。如图2所示,该场景包括:容器管理设备、负载设备、以及至少一个容器(图2中以容器1…容器n为例示出)。
其中,容器管理设备用于实现容器集群的自动化部署、自动扩缩容、维护等功能,以实现对容器的管理;负载设备用于为容器中的应用实例的运行提供流量。
在一些实施例中,容器管理设备可以为上述的K8s平台,或者,也可以为其他类型的平台,本申请实施例以K8s平台为例示出,但不以此为限定。
在本申请实施例中,在每个容器启动时,在容器中注入应用实例的同时,会在容器中同步注入至少一个辅助实例,例如,在容器1启动时,在容器1中注入应用实例1,同时会注入辅助实例1…在在容器n启动时,在容器n中注入应用实例n的同时,会注入辅助实例n。
应理解,对于辅助实例的类型,本申请实施例也不做特别限定,例如,辅助实例可以为“sidecar控制服务”。且,对于负载设备的数量、以及每个负载设备所连接的容器的数量,均不做具体限定。
其中,辅助实例提供独立的服务端口port、url接口服务、接口调用认证服务等服务,以供K8s平台调用,例如是切流接口,K8s平台可以通过该切流接口向辅助实例发送第一切流请求等。
在一些实施例中,辅助实例可以基于Python的Django web框架,实现各个接口。
图3为本申请实施例提供的流量管理方法的流程示意图。应理解,本申请实施例的执行主体可以为上述K8s平台所在的设备,如图4所示,该流量管理方法包括如下步骤:
S301、响应于针对辅助实例的切流接口的第一切流请求,通过辅助实例获取目标容器对应的应用实例的目标应用信息。
其中,辅助实例和应用实例均设置于目标容器中。具体的,在目标容器的创建过程中,容器管理设备可以响应于目标容器的创建操作,在目标容器中创建辅助实例和应用实例。
本申请实施例中,第一切流请求用于指示切断负载设备为目标容器提供的流量。
具体的,在需要对某一个容器进行切流时,容器管理设备(例如是K8s平台)会向辅助实例的切流接口发送第一切流请求,从而调用该辅助实例。
相应的,在接收到第一切流请求后,辅助实例会读取与该辅助实例处于同一容器的应用实例的目标应用信息。示例性的,请参考图2,以容器1为例,容器管理设备会向辅助实例1的切流接口发送第一切流请求,相应的,辅助实例1会获取应用实例1的目标应用信息。
对于目标应用信息的类别,本申请实施例不做特别限定,例如,目标应用信息包括但不限于如下几种:应用实例中应用所用的语言类型、应用标识、为该目标容器提供流量的目标负载的负载类型等,其中,应用标识可以为应用名、应用编号、应用类型等等。
S302、根据目标应用信息确定目标切流方法。
需要说明的是,不同的应用信息对应于不同的切流方法,可以根据应用信息与切流方法的对应关系,确定目标应用信息对应的目标切流方法,至于切流方法的具体内容,此处不做限定。
在一些可选的实施例中,目标切流方法可以包括但不限于如下的一种或多种:
通过K8s内置的kube-proxy实现切流;
通过自定义代码获取容器的状态,使用nginx的reload技术实现切流;
通过容器自身提供的API接口实现切流。
S303、基于目标切流方法将负载设备为目标容器提供的流量进行切断处理。
在一些实施例中,不同的切流方法对应于不同的切流脚本,辅助实例在获取到切流脚本后,即可运行该切流脚本,从而将负载设备为目标容器提供的流量进行切断处理,以切断负载设备为目标容器提供的流量。
本申请实施例中,通过容器中设置的辅助实例来实现容器的流量管理,既可以对不同语言类型、不同环境架构的容器执行统一的流量管理标准,提升容器管理设备的标准化程度,进而降低容器管理设备的流量管理难度。同时,还可以根据应用信息采用不同的切流方法对不同的容器进行切流,保障容器管理设备的灵活性,从而差异化的满足不同场景下的流量管理需求。
接下来,结合具体实施例对流量管理过程中,各个模块所执行的方案进行详细说明:
图4为本申请实施例提供的流量管理过程中的信令交互示意图。如图4所示,本申请实施例的流程管理方法包括如下步骤:
S401、容器管理设备向辅助实例的切流接口发送第一切流请求。
S402、辅助实例获取目标容器对应的应用实例的目标应用信息。
需要说明的是,步骤S401~S402与图3所示实施例中的步骤S301~S302的原理和实现方式类似,此处不做赘述。
S403、辅助实例根据目标应用信息,确定目标切流方法。
具体的,包括如下步骤:
(1)辅助实例读取配置信息;
其中,配置信息中包括应用信息和切流方法的对应关系。
(2)通过辅助实例根据对应关系,确定目标应用信息对应的目标切流方法。
在一种具体的实现方式中,图5为本申请实施例提供的流量管理方法的原理示意图。如图5所示,以辅助实例1为例,该辅助实例1在获取到目标应用信息之后,可以从配置管理中心读取配置信息。
需要说明的是,该配置管理中心可以为容器管理设备提供的服务,或者,也可以为其他平台或服务器提供的配置服务,本申请实施例不做限定。
参考图5,配置管理中心存储有配置信息,配置信息包括如下至少一种或多种信息之间的对应关系:语言类型、应用名、切流脚本、负载类型等。
其中,切流脚本对应的切流方法即为语言类型、应用名、负载类型中指示一种信息对应的切流方法;通过执行不同的切流脚本可以实现不同的切流方法。示例性的,语言1、应用名1或者负载类型1对应的切流方法为“切流脚本1”对应的切流方法;语言n、应用名n或者负载类型n对应的切流方法为“切流脚本n”对应的切流方法。
相应的,在获取到目标容器的目标应用信息之后,即可根据上述对应关系,确定目标应用信息对应的切流脚本(也即切流方法)。
示例性的,若获取的目标应用信息中的负载类型为类型1,则确定目标切流方法为切流脚本1对应切流方法。
S404、辅助实例基于目标切流方法,向负载设备发送第二切流请求。
需要说明的是,辅助实例在获得目标切流方法后,可以运行相应的切流脚本,从而将负载设备为目标容器提供的流量进行切断处理。
其中,第二切流请求用于指示负载设备获取对目标容器进行切流处理的处理结果。
S405、负载设备获取对目标容器进行切流处理的处理结果。
S406、负载设备向辅助实例发送对处理结果。
S407、辅助实例根据处理结果,获得目标容器当前的流量信息,并根据流量信息,生成目标容器对应的切流处理过程的状态信息。
其中,流量信息用于指示目标容器当前是否还有流量。
具体的,辅助实例响应于处理结果为流量切断成功,采用探测工具执行该探测脚本,从而探测目标容器中的流量信息。
其中,探测脚本和探测工具是根据应用信息从配置信息中读取的。具体的,如图5所示,配置信息中还包括探测脚本和探测工具,例如,探测脚本1以及探测脚本n,以及探测工具1和探测工具2。
在本申请实施例中,辅助实例可以在获取目标切流方法的同时,根据目标应用信息从配置信息中获取目标容器对应的探测工具和探测脚本。示例性的,若目标应用信息中所指示的负载类型为“负载类型1”,则目标容器对应的探测工具和探测脚本分别为“探测工具1”和“探测脚本1”,至于其他类型的目标应用信息对应的探测脚本和探测工具确定方法,与“负载类型”类似,此处不再赘述。
进一步的,在获取到流量信息后,可以根据流量信息获得目标容器的状态信息,并将状态信息写入辅助实例。
其中,状态信息用于指示目标容器的流量是否切断成功。在一些实施例中,可以采用第一预设值来表示目标容器的流量切断成功时对应的状态信息、采用第二预设值来表示目标容器的流量未切断成功时对应的状态信息。示例性的,以第一预设值为1、第二预设值为0为例,当目标容器的流量切断成功时,状态信息可以写为“1”;当目标容器的流量未切断成功时,状态信息写可以为“0”。
S408、容器管理设备读取状态信息。
具体的,容器管理设备可以通过切流接口,读取辅助实例中的状态信息。
S409、容器管理设备基于状态信息,销毁目标容器。
具体的,容器管理设备响应于状态信息为流量切断成功,销毁目标容器。也就是说,若容器管理设备读取的状态信息为“1”,则说明该目标容器的流量已切断成功,目标容器不在承载业务流量,此时,可以销毁该目标容器。
在一些可选的实施方式中,若状态信息为切流处理未成功,则暂时不销毁该目标容器。
本申请实施例中,通过容器中设置的辅助实例来实现容器的流量管理,既可以对不同语言类型、不同环境架构的容器执行统一的流量管理标准,提升容器管理设备的标准化程度、降低容器管理设备的流量管理难度。同时,还可以根据应用信息采用不同的切流方法对不同的容器进行切流,保障容器管理设备的灵活性,从而差异化的满足不同场景下的流量管理需求。
另外,通过辅助实例探测容器是否已经完成对流量的处理,并将状态信息写入辅助实例,以供容器管理设备读取,可以准确的得知容器实时的切流处理情况,在确保容器已经不再承载业务流量(即流量切断成功)时,再销毁容器,相比现有技术,可以防止误销毁容器从而对应用实例的运行造成影响。对业务客户来说,可以防止业务客户的服务临时中断,进而保障用户体验;对于研发人员来说,可以防止出现非业务本身的误报警。
图6为本申请实施例提供的流量管理装置的结构示意图一。应理解,本申请实施例提供的流量管理装置应用于容器管理设备,如图6所示,该流量管理装置600包括:
获取单元601,用于响应于针对辅助实例的切流接口的第一切流请求,通过辅助实例获取目标容器中应用实例的目标应用信息,第一切流请求用于指示切断负载设备为目标容器提供的流量;
确定单元602,用于根据目标应用信息,确定目标切流方法;
处理单元603,用于基于目标切流方法,将负载设备为目标容器提供的流量进行切断处理。
在一些可选的实施方式中,确定单元602具体用于:通过辅助实例读取配置信息,配置信息中包括应用信息和切流方法的对应关系,通过辅助实例根据对应关系,确定目标应用信息对应的目标切流方法。
在一些可选的实施方式中,流量管理装置600还包括:发送单元604,用于基于目标切流方法,向负载设备发送第二切流请求,第二切流请求用于指示负载设备获取对目标容器进行切流处理的处理结果;
获取单元601,还用于获取负载设备发送的处理结果,若处理结果指示流量切断成功,则获得目标容器当前的流量信息,并根据当前的流量信息生成目标容器对应的切流处理过程的状态信息,流量信息用于指示目标容器当前是否还有流量,状态信息用于指示目标容器的流量是否切断成功;
处理单元603,还用于基于状态信息,销毁目标容器。
在一些可选的实施方式中,处理单元603具体用于:若处理结果指示流量切断成功,则采用探测工具根据探测脚本,探测目标容器中当前的流量信息;其中,探测脚本和探测工具是根据目标应用信息从目标容器的配置信息中读取的,配置信息用于指示应用信息和探测脚本、探测工具之间的对应关系。
在一些可选的实施方式中,处理单元603具体用于:通过目标容器中辅助实例的切流接口,读取目标容器中辅助实例中存储的状态信息;响应于状态信息指示目标容器的流量切断成功,销毁目标容器。
在一些可选的实施方式中,确定单元602具体用于:通过目标容器中的辅助实例读取配置信息,配置信息中包括多组应用信息和切流方法的对应关系;多组应用信息是与多个应用实例一一对应的;多个应用实例均部署在同一个容器中;或者,多个应用实例部署在多个不同的容器中;多个不同的容器包括目标容器;根据多组应用信息和切流方法的对应关系,确定目标容器中目标应用信息对应的目标切流方法。
在一些可选的实施方式中,处理单元603还用于:响应于目标容器的创建操作,在目标容器中创建辅助实例和应用实例。
需要说明的是,上述各实施例提供的流量管理装置600,可用于执行上述容器管理设备侧的实施例提供的流量管理方法中的各步骤,具体实现方式和技术效果类似,这里不再赘述。
图7为本申请实施例提供的流量管理装置的结构示意图二。应理解,本申请实施例提供的流量管理装置应用于负载设备,如图7所示,该流量管理装置700包括:
获取单元701,用于响应于容器管理设备基于目标切流方法发送的第二切流请求,获取对目标容器进行切流处理的处理结果;容器管理设备中部署有目标容器,目标容器中部署有应用实例和辅助实例;
发送单元702,用于向容器管理设备发送处理结果,以指示容器管理设备基于处理结果确定目标容器的当前流量信息,并根据当前的流量信息生成目标容器对应的切流处理过程的状态信息,并基于状态信息对目标容器进行销毁处理;
其中,目标切流方法是容器管理设备根据目标容器中应用实例对应的目标应用信息确定的;目标应用信息是在容器管理设备响应于针对目标容器中辅助实例的切流接口的第一切流请求,通过辅助实例获取的;处理结果用于确定目标容器当前的流量信息,流量信息用于指示目标容器当前是否还有流量;状态信息用于指示目标容器的流量是否切断成功。
需要说明的是,上述各实施例提供的流量管理装置700,可用于执行上述负载设备侧的实施例提供的流量管理方法中的各步骤,具体实现方式和技术效果类似,这里不再赘述。
图8为本申请实施例提供的电子设备的结构示意图。如图8所示的电子设备可以对应于前述的容器管理设备或负载设备,电子设备800包括:处理器801、存储器802、通信接口803和系统总线804。
其中,存储器802和通信接口803通过系统总线804与处理器801连接并完成相互间的通信,存储器802用于存储计算机程序,通信接口803用于和其他设备进行通信,处理器801用于调用存储器中的计算机程序以执行如上述图3实施例的流量管理方法,和/或,执行如上述图4实施例中负载设备执行的流量管理方法。
具体地,处理器801可以包括一个或多个处理单元,例如:处理器801可以是中央处理单元(Central Processing Unit,简称CPU),也可以是数字信号处理器(Digital SignalProcessor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器802可以用于存储计算机程序。存储器802可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能等)等。存储数据区可存储电子设备800使用过程中所创建的数据(比如音频数据等)等。此外,存储器802可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,简称UFS)等。处理器801通过运行存储在存储器802的计算机程序,执行电子设备800的各种功能应用以及数据处理。
通信接口803可以提供应用在电子设备800上的包括2G/3G/4G/80G等无线通信的解决方案。通信接口803可以由天线接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。通信接口803还可以对经调制解调处理器调制后的信号放大,经天线转为电磁波辐射出去。
在一些实施例中,通信接口803的至少部分功能模块可以被设置于处理器801中。
在一些实施例中,通信接口803的至少部分功能模块可以与处理器801的至少部分模块被设置在同一个器件中。
系统总线804可以是外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,简称EISA)总线等。该系统总线804可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
需说明的是,对于存储器802及处理器801的个数,本申请实施例不对其进行限制,其均可以为一个或多个,图8以一个为例进行图示;存储器802、及处理器801之间,可以通过多种方式进行有线或者无线连接,例如通过总线连接。
实际应用中,该电子设备800可以是各种形式的计算机或移动终端。其中,计算机例如为膝上型计算机、台式计算机、工作台、服务器、刀片式服务器、大型计算机等;移动终端例如为个人数字处理、蜂窝电话、智能电话、可穿戴设备以及其它类似的计算装置。
本实施例的电子设备,可以用于执行上述方法实施例中的技术方案,其实现原理和技术效果类似,此处不再赘述。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被执行时,实现如上述任一实施例的流量管理方法。
本申请实施例还提供一种计算机程序产品,包括:计算机程序,该计算机程序被处理器执行时,实现如上述任一项方法实施例中的流量管理方法。
本申请实施例还提供一种流量管理系统,包括上述任一实施例提供的容器管理设备和负载设备。其中,容器管理设备中运行有至少一个目标容器,负载设备用于为该目标容器的运行提供流量,该目标容器启动运行时,其中设置有辅助实例和实例应用。
在上述的实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。另外,在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例方法的部分步骤。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)、磁存储器、快闪存储器、磁盘或光盘等。存储介质可以是通用或专用计算机能够存取的任何可用介质。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。

Claims (11)

1.一种流量管理方法,其特征在于,应用于容器管理设备,所述容器管理设备中部署目标容器,所述目标容器中部署有应用实例和辅助实例,所述流量管理方法包括:
响应于针对所述辅助实例的切流接口的第一切流请求,通过所述辅助实例获取所述目标容器中应用实例对应的目标应用信息,所述第一切流请求用于指示切断负载设备为所述目标容器提供的流量;
根据所述目标应用信息确定目标切流方法;
基于所述目标切流方法,将所述负载设备为所述目标容器提供的流量进行切断处理。
2.根据权利要求1所述的流量管理方法,其特征在于,所述方法还包括:
基于所述目标切流方法,向所述负载设备发送第二切流请求,所述第二切流请求用于指示所述负载设备返回对所述目标容器进行切流处理的处理结果;
获取所述负载设备发送的所述处理结果;
若所述处理结果指示流量切断成功,则获得所述目标容器当前的流量信息,并根据所述当前的流量信息生成所述目标容器对应的切流处理过程的状态信息,所述流量信息用于指示所述目标容器当前是否还有流量,所述状态信息用于指示所述目标容器的流量是否切断成功;
基于所述状态信息对所述目标容器进行销毁处理。
3.根据权利要求2所述的流量管理方法,其特征在于,所述若所述处理结果指示流量切断成功,则获得所述目标容器当前的流量信息,包括:
若所述处理结果指示流量切断成功,则采用探测工具根据探测脚本,探测所述目标容器中当前的流量信息;
其中,所述探测脚本和所述探测工具是根据所述目标应用信息从所述目标容器的配置信息中读取的,所述目标容器的配置信息用于指示所述目标应用信息和探测脚本、探测工具之间的对应关系。
4.根据权利要求2所述的流量管理方法,其特征在于,所述目标容器对应的切流处理过程的状态信息是存储于所述目标容器的辅助实例中的;所述基于所述状态信息对所述目标容器进行销毁处理,包括:
通过所述目标容器中辅助实例的切流接口,读取所述目标容器中辅助实例中存储的所述状态信息;
响应于所述状态信息指示所述目标容器的流量切断成功,销毁所述目标容器。
5.根据权利要求1至4中任一项所述的流量管理方法,其特征在于,所述根据所述目标应用信息确定目标切流方法,包括:
通过所述目标容器中的辅助实例读取配置信息,所述配置信息中包括多组应用信息和切流方法的对应关系;所述多组应用信息是与多个应用实例一一对应的;所述多个应用实例均部署在同一个容器中;或者,所述多个应用实例部署在多个不同的容器中;所述多个不同的容器包括所述目标容器;
根据所述多组应用信息和切流方法的对应关系,确定所述目标容器中目标应用信息对应的目标切流方法。
6.根据权利要求1至4中任一项所述的流量管理方法,其特征在于,所述方法还包括:
响应于所述目标容器的创建操作,在所述目标容器中创建所述辅助实例和所述应用实例。
7.一种流量管理方法,其特征在于,应用于负载设备,所述流量管理方法包括:
响应于容器管理设备基于目标切流方法发送的第二切流请求,获取对目标容器进行切流处理的处理结果;所述容器管理设备中部署有目标容器,所述目标容器中部署有应用实例和辅助实例;
向所述容器管理设备发送所述处理结果,以指示所述容器管理设备基于所述处理结果确定所述目标容器的当前流量信息,并根据所述当前的流量信息生成所述目标容器对应的切流处理过程的状态信息,并基于所述状态信息对所述目标容器进行销毁处理;
其中,所述目标切流方法是所述容器管理设备根据所述目标容器中应用实例对应的目标应用信息确定的;所述目标应用信息是在所述容器管理设备响应于针对所述目标容器中辅助实例的切流接口的第一切流请求,通过所述辅助实例获取的;所述处理结果用于确定所述目标容器当前的流量信息,所述流量信息用于指示所述目标容器当前是否还有流量;所述状态信息用于指示所述目标容器的流量是否切断成功。
8.一种流量管理装置,其特征在于,应用于容器管理设备,所述容器管理设备中部署目标容器,所述目标容器中部署有应用实例和辅助实例,所述流量管理装置包括:
获取单元,用于响应于针对辅助实例的切流接口的第一切流请求,通过所述辅助实例获取目标容器中应用实例的目标应用信息,所述第一切流请求用于指示切断负载设备为所述目标容器提供的流量;
确定单元,用于根据所述目标应用信息,确定目标切流方法;
处理单元,用于基于所述目标切流方法,将所述负载设备为所述目标容器提供的流量进行切断处理。
9.一种流量管理装置,其特征在于,应用于负载设备,所述流量管理装置包括:
获取单元,用于响应于容器管理设备基于目标切流方法发送的第二切流请求,获取对目标容器进行切流处理的处理结果;所述容器管理设备中部署有目标容器,所述目标容器中部署有应用实例和辅助实例;
发送单元,用于向所述容器管理设备发送所述处理结果,所述处理结果用于指示所述容器管理设备基于所述处理结果确定所述目标容器的当前流量信息,并根据所述当前的流量信息生成所述目标容器对应的切流处理过程的状态信息,并基于所述状态信息对所述目标容器进行销毁处理;
其中,所述目标切流方法是所述容器管理设备根据所述目标容器中应用实例对应的目标应用信息确定的;所述目标应用信息是在所述容器管理设备响应于针对所述目标容器中辅助实例的切流接口的第一切流请求,通过所述辅助实例获取的;所述处理结果用于确定所述目标容器当前的流量信息,所述流量信息用于指示所述目标容器当前是否还有流量;所述状态信息用于指示所述目标容器的流量是否切断成功。
10.一种电子设备,其特征在于,包括:
存储器和至少一个处理器,存储器用于存储计算机程序,处理器用于调用存储器中的计算机程序,执行如权利要求1至6中任一项所述的流量管理方法,和/或,执行如权利要求7所述的流量管理方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序;所述计算机程序被执行时,实现如权利要求1至6中任一项所述的流量管理方法,和/或,实现如权利要求7所述的流量管理方法。
CN202210766685.5A 2022-07-01 2022-07-01 流量管理方法、装置、电子设备及存储介质 Pending CN116132366A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210766685.5A CN116132366A (zh) 2022-07-01 2022-07-01 流量管理方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210766685.5A CN116132366A (zh) 2022-07-01 2022-07-01 流量管理方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN116132366A true CN116132366A (zh) 2023-05-16

Family

ID=86301462

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210766685.5A Pending CN116132366A (zh) 2022-07-01 2022-07-01 流量管理方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116132366A (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110275776A (zh) * 2019-05-17 2019-09-24 平安科技(深圳)有限公司 容器应用的缩容方法、装置、计算机设备及存储介质
CN110286996A (zh) * 2019-05-17 2019-09-27 平安科技(深圳)有限公司 容器实例ip切换方法、装置、计算机设备及存储介质
CN111414229A (zh) * 2020-03-09 2020-07-14 网宿科技股份有限公司 一种应用容器异常处理方法及装置
CN111786904A (zh) * 2020-07-07 2020-10-16 上海道客网络科技有限公司 一种实现容器休眠与唤醒的系统及休眠与唤醒方法
WO2020253347A1 (zh) * 2019-06-17 2020-12-24 深圳前海微众银行股份有限公司 一种容器集群管理方法、装置及系统
US20210218617A1 (en) * 2020-01-09 2021-07-15 Vmware, Inc. Enabling integration of solutions with software-defined networking platform
CN113596190A (zh) * 2021-07-23 2021-11-02 浪潮云信息技术股份公司 基于Kubernetes的应用分布式多活系统及方法
CN114610442A (zh) * 2022-02-25 2022-06-10 阿里云计算有限公司 一站式迁云系统、方法、设备及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110275776A (zh) * 2019-05-17 2019-09-24 平安科技(深圳)有限公司 容器应用的缩容方法、装置、计算机设备及存储介质
CN110286996A (zh) * 2019-05-17 2019-09-27 平安科技(深圳)有限公司 容器实例ip切换方法、装置、计算机设备及存储介质
WO2020253347A1 (zh) * 2019-06-17 2020-12-24 深圳前海微众银行股份有限公司 一种容器集群管理方法、装置及系统
US20210218617A1 (en) * 2020-01-09 2021-07-15 Vmware, Inc. Enabling integration of solutions with software-defined networking platform
CN111414229A (zh) * 2020-03-09 2020-07-14 网宿科技股份有限公司 一种应用容器异常处理方法及装置
CN111786904A (zh) * 2020-07-07 2020-10-16 上海道客网络科技有限公司 一种实现容器休眠与唤醒的系统及休眠与唤醒方法
CN113596190A (zh) * 2021-07-23 2021-11-02 浪潮云信息技术股份公司 基于Kubernetes的应用分布式多活系统及方法
CN114610442A (zh) * 2022-02-25 2022-06-10 阿里云计算有限公司 一站式迁云系统、方法、设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MENGFEI ZHU; RUI KANG; EIJI OKI: "Implementation of Real-time Function Deployment with Resource Migration in Kubernetes", IEEE, 9 June 2022 (2022-06-09) *
张琦;: "基于Docker的CaaS管理平台架构研究与设计", 计算机应用与软件, no. 11, 12 November 2018 (2018-11-12) *

Similar Documents

Publication Publication Date Title
CN105955782B (zh) 应用程序运行控制的方法及装置
US20180219972A1 (en) Joint servicing of software packages
US9665465B1 (en) Automated determination of application permissions
US20070250906A1 (en) Mobile Communication Terminal and Data Access Control Method
CN109800083B (zh) 一种微服务协同调用的方法、装置、系统及存储介质
CN112333096A (zh) 一种微服务流量调度方法及相关组件
CN110308880B (zh) 日志打印方法、系统、计算机设备及计算机可读存储介质
CN113407383B (zh) 主备系统切换方法、装置、服务器及主备系统
CN107644075B (zh) 收集页面信息的方法和装置
CN114168179B (zh) 微服务管理方法、装置、计算机设备和存储介质
CN111245930A (zh) 跨平台消息推送方法、装置、计算机设备及存储介质
CN114461415A (zh) 消息数据处理方法、装置、计算机设备及存储介质
CN112583630B (zh) 设备管理方法、装置、系统、设备及存储介质
CN117056115B (zh) 应用程序的修复方法和装置、存储介质及电子设备
CN111786825B (zh) 动态配置接口服务的方法、装置、系统及存储介质
CN112650689A (zh) 测试方法、装置、电子设备及存储介质
CN112015563A (zh) 消息队列切换方法、装置、电子设备及存储介质
CN116132366A (zh) 流量管理方法、装置、电子设备及存储介质
CN114610446B (zh) 一种自动注入探针的方法、装置及系统
CN112286622A (zh) 虚机迁移处理及策略生成方法、装置、设备及存储介质
CN111459819B (zh) 软件测试方法及装置、电子设备、计算机可读介质
CN115640066A (zh) 一种安全检测方法、装置、设备及存储介质
CN110365839B (zh) 关机方法、装置、介质及电子设备
CN113535571A (zh) 基于沙盒的微服务测试方法、装置、设备和存储介质
CN106713453B (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