掌桥专利:专业的专利平台
掌桥专利
首页

虚拟机和容器的负载流量分配方法、装置及计算机设备

文献发布时间:2023-06-19 12:13:22


虚拟机和容器的负载流量分配方法、装置及计算机设备

技术领域

本申请涉及计算机技术领域,尤其涉及到一种虚拟机和容器的负载流量分配方法、装置及计算机设备。

背景技术

随着容器技术的普及,越来越多的开发者选择将应用部署到容器中运行。对于在容器技术流行前就已经存在的大量应用来说,如何从虚拟机安全地迁移到容器环境,尽可能降低对线上用户的影响是摆在开发者面前的一道难题。

目前普遍采用的一种方法是将Kong网关所在节点和虚拟机节点一起挂载到通用负载均衡器的后端,通过配置权重,将一小部分流量分配给运行在容器中的应用,从而达到灰度测试的效果;另一种方式是将服务类型设置为loadbalancer通过云服务商提供的cloud-controller-manager将服务后端容器组直接绑定在slb上。

然而上述直接利用负载均衡器实现调度的方式,要求每个应用需要单独配置负载均衡设备,还需要在负载均衡设备上绑定虚拟机节点,导致服务配置复杂性较高,进而会增大人工管理的成本。

发明内容

有鉴于此,本申请提供了一种虚拟机和容器的负载流量分配方法、装置及计算机设备,可用于解决目前利用负载均衡器实现调度的方式,导致服务配置复杂性较高,人工管理成本较大的技术问题。

根据本申请的一个方面,提供了一种虚拟机和容器的负载流量分配方法,该方法包括:

将Kong网关绑定至负载均衡器后端,以接收负载均衡器转发的流量服务请求;

若所述Kong网关接收到目标服务的流量服务请求,则在后端绑定的负载节点中提取与所述流量服务请求对应目标网站域名匹配的目标虚拟机节点和/或目标容器节点,所述负载节点是在Kong ingress基于第一对应关系查取与所述目标网站域名匹配的目标混跑服务后,基于所述目标混跑服务对应的第二对应关系查取得到,并配置到Kong网关后端负载上的;

利用所述Kong网关基于动态调整的预设流量分配权重规则,将所述目标服务的负载流量分配至所述目标虚拟机节点和/或所述目标容器节点。

根据本申请的另一个方面,提供了一种虚拟机和容器的负载流量分配装置,该装置包括:

接收模块,用于将Kong网关绑定至负载均衡器后端,以接收负载均衡器转发的流量服务请求;

提取模块,用于若所述Kong网关接收到目标服务的流量服务请求,则在后端绑定的负载节点中提取与所述流量服务请求对应目标网站域名匹配的目标虚拟机节点和/或目标容器节点,所述负载节点是在Kong ingress基于第一对应关系查取与所述目标网站域名匹配的目标混跑服务后,基于所述目标混跑服务对应的第二对应关系查取得到,并配置到Kong网关后端负载上的;

分配模块,用于利用所述Kong网关基于动态调整的预设流量分配权重规则,将所述目标服务的负载流量分配至所述目标虚拟机节点和/或所述目标容器节点。

根据本申请的又一个方面,提供了一种非易失性可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述虚拟机和容器的负载流量分配方法。

根据本申请的再一个方面,提供了一种计算机设备,包括非易失性可读存储介质、处理器及存储在非易失性可读存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述虚拟机和容器的负载流量分配方法。

借由上述技术方案,本申请提供的一种虚拟机和容器的负载流量分配方法,与目前利用负载均衡器实现调度的方式相比,本申请可将Kong网关绑定至负载均衡器后端,以接收负载均衡器转发的流量服务请求;并在Kong网关接收到目标服务的流量服务请求时,可通过在后端绑定的负载节点中提取与流量服务请求对应目标网站域名匹配的目标虚拟机节点和/或目标容器节点。其中,负载节点是在Kong ingress基于第一对应关系查取与目标网站域名匹配的目标混跑服务后,基于目标混跑服务对应的第二对应关系查取得到,并配置到Kong网关后端负载上的;进一步的,可利用Kong网关基于动态调整的预设流量分配权重规则,将目标服务的负载流量分配至目标虚拟机节点和/或目标容器节点,进而实现对负载流量的智能化分配。通过本申请中的技术方案,可将虚拟机节点和容器节点抽象成资源,利用Kong网关实现负载的均衡调度,此时负载均衡设备只需要检测Kong网关节点存活状态,所有后端服务的健康检查均由Kong网关完成。虚拟主机节点和容器节点平级,可以通过Kong网关动态调整的方式单独为每个节点设置负载权重,进而可实现负载流量从虚拟机安全地迁移到容器环境中,且不会对线上用户造成影响。

上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1示出了本申请实施例提供的一种虚拟机和容器的负载流量分配方法的流程示意图;

图2示出了本申请实施例提供的另一种虚拟机和容器的负载流量分配方法的流程示意图;

图3示出了本申请实施例提供的一种虚拟机和容器混合负载均衡器的结构示意图;

图4示出了本申请实施例提供的一种虚拟机和容器的负载流量分配装置的结构示意图;

图5示出了本申请实施例提供的另一种虚拟机和容器的负载流量分配装置的结构示意图。

具体实施方式

下文将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互结合。

针对目前利用负载均衡器实现调度的方式,导致服务配置复杂性较高,人工管理成本较大的技术问题,本申请提供了一种虚拟机和容器的负载流量分配方法,如图1所示,该方法包括:

101、将Kong网关绑定至负载均衡器后端,以接收负载均衡器转发的流量服务请求。

其中,Kong网关是一款基于OpenResty(Nginx + Lua模块)编写的高可用、易扩展的,由Mashape公司开源的API Gateway项目。Kong网关能提供易于使用的RESTful API来操作和配置API管理系统,所以它可以水平扩展多个Kong服务器,通过前置的负载均衡配置把请求均匀地分发到各个后端服务器,来应对大批量的网络请求;负载对应访问某一网址时的网站应用,通过将负载部署到多个服务器上,做一个集群实现对外的应用,对外仅会暴露几台服务器,在进行网站访问时,往往是通过前端几台服务器实现对后端服务器的访问,前端几台服务器即对应负载均衡集群,负载均衡集群起到将流量均匀的分配给后端设置的上万个负载节点。在本申请中,通过将Kong网关绑定至云服务商的负载均衡器后端,可利用Kong网关实现负载均衡处理。具体的,与Kong网关绑定的负载均衡器接收的所有服务请求均会转发到Kong网关,此时Kong网关则会基于动态调整的预设流量分配权重规则,将负载流量均衡分配到与服务对应的后端服务器,利用后端服务器响应执行流量服务请求。

由于在容器技术出现之前,负载一般被部署在虚拟机节点上,实现负载均衡,进而执行对外的访问。当容器出现之后,鉴于容器相对于虚拟机在启动速度和运行性能上更有优势,故越来越多的开发者选择将应用部署到容器中运行。为了解决如何将容器技术流行前就已经存在的大量应用,从虚拟机安全地迁移到容器环境,尽可能降低对线上用户的影响的同时,简化服务配置,并降低人工管理成本的技术问题。与目前将Kong网关所在节点和虚拟机节点一起挂载到通用负载均衡器的后端,通过配置权重,将一小部分流量分配给运行在容器中应用的方式相比,本申请可将虚拟机节点和容器节点抽象成资源,将Kong网关绑定至负载均衡器后端,此时负载均衡器只需要检测Kong网关节点存活状态,所有后端服务的负载均衡以及健康检查均由Kong网关完成。并且Kong网关可基于接收到的目标服务的流量服务请求,在后端绑定的负载节点中提取与流量服务请求对应目标网站域名匹配的虚拟机节点和/或容器节点,此时的虚拟主机节点和容器节点平级,在灰度测试的过程中,可以通过Kong网关动态调整的方式单独为每个节点设置负载权重,进而可实现负载流量从虚拟机安全地迁移到容器环境中,且不会对线上用户造成影响。

在本申请中,将Kong网关直接绑定到负载均衡器的后端,进而替代现有技术中,将虚拟机节点和容器节点直接绑定到负载均衡器上,可克服现有技术中的以下缺点:1、需要为每个服务都配置负载均衡设备;2、需要在负载均衡设备上绑定多个虚拟机节点,复杂性高,进而造成人工管理的费用较大;3、负载均衡设备需要对挂载的节点进行健康检查以便在后端节点出现故障无法提供服务时自动将其摘除,而虚拟机节点和kong网关节点需要分别配置不同的健康检查规则,这一点现有的负载均衡无法实现。

对于本申请的执行主体可为虚拟机和容器混合负载均衡器,如图3所示,虚拟机和容器混合负载均衡器可包括Kong网关、Kong ingress接口、混跑服务Service、负载节点Endpoints,其中基于Kong ingress创建有预设网站域名与混跑服务Service的第一对应关系,混跑服务Service与负载节点Endpoints之间创建有第二对应关系,负载节点具体可包括虚拟机节点、容器节点;Kong网关可用于监听Service的创建、变更、删除,此外,Kong网关还可通过Kong ingress监听第一对应关系,即Kong网关相当于同时监听了这两个对应关系,通过第一对应关系和第二对应关系,Kong网关即可实现由网络域名到负载节点Endpoints之间的负载均衡。

102、若Kong网关接收到目标服务的流量服务请求,则在后端绑定的负载节点中提取与流量服务请求对应目标网站域名匹配的目标虚拟机节点和/或目标容器节点。

其中,负载节点是在Kong ingress基于第一对应关系查取与目标网站域名匹配的目标混跑服务后,基于目标混跑服务对应的第二对应关系查取得到,并配置到Kong网关后端负载上的,在本申请中,负载节点可包括虚拟机节点以及容器节点。

对于本实施例,Kong网关所绑定的云服务商的负载均衡器会向Kong网关转发对应的流量服务请求,Kong网关在接收到目标服务的流量服务请求后,即可进一步基于Kongingress在第一对应关系中查取与目标服务匹配的目标混跑服务,进而可基于第二对应关系确定与目标混跑服务匹配的目标虚拟机节点和/或目标容器节点,目标虚拟机节点和/或目标容器节点即可用于承担目标服务的流量请求。

103、利用Kong网关基于动态调整的预设流量分配权重规则,将目标服务的负载流量分配至目标虚拟机节点和/或目标容器节点。

对于本实施例,为了在将负载从虚拟机迁移到容器环境时,避免对线上用户的服务影响,故可通过预设流量分配权重规则将分配到容器中的负载流量进行由少到多的动态调整,并执行对服务响应状态的灰度测试过程,以保证负载流量从虚拟机到容器过渡过程的安全性、稳定性。

通过本实施例中虚拟机和容器的负载流量分配方法,可将Kong网关绑定至负载均衡器后端,以接收负载均衡器转发的流量服务请求;并在Kong网关接收到目标服务的流量服务请求时,可通过在后端绑定的负载节点中提取与流量服务请求对应目标网站域名匹配的目标虚拟机节点和/或目标容器节点。其中,负载节点是在Kong ingress基于第一对应关系查取与目标网站域名匹配的目标混跑服务后,基于目标混跑服务对应的第二对应关系查取得到,并配置到Kong网关后端负载上的;进一步的,可利用Kong网关基于动态调整的预设流量分配权重规则,将目标服务的负载流量分配至目标虚拟机节点和/或目标容器节点,进而实现对负载流量的智能化分配。通过本申请中的技术方案,可将虚拟机节点和容器节点抽象成资源,利用Kong网关实现负载的均衡调度,负载均衡设备只需要检测Kong网关节点存活状态,所有后端服务的健康检查均由Kong网关完成。虚拟主机节点和容器节点平级,可以动态调整的方式单独为每个节点设置负载权重,进而可实现负载流量从虚拟机安全地迁移到容器环境中,且不会对线上用户造成影响。

进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例中的具体实施过程,提供了另一种虚拟机和容器的负载流量分配方法,如图2所示,该方法包括:

201、将Kong网关绑定至负载均衡器后端,以接收负载均衡器转发的流量服务请求。

对于本实施例,在将Kong网关绑定至负载均衡器后端后,为使Kong网关能够实现负载流量的均衡调度,实施例步骤具体还可包括:针对预设网站域名分别配置对应的混跑服务,基于Kong ingress创建预设网站域名与混跑服务的第一对应关系,第一对应关系用于查取与预设网站域名匹配的混跑服务;基于与预设网站域名匹配的预设标签,创建混跑服务与可执行虚拟机节点、可执行容器节点的第二对应关系,第二对应关系用于基于混跑服务,查取执行预设网站域名下流量服务的可执行虚拟机节点和可执行容器节点;利用Kong ingress Controller将可执行虚拟机节点和可执行容器节点,以混跑服务节点集群形式绑定至Kong网关后端流量服务对应的负载上,以便利用Kong网关执行对可执行虚拟机节点和可执行容器节点的流量负载均衡调度。利用Kong ingress将网站域名与混跑服务Service创建了第一对应关系,Service和后端的负载节点之间创建了第二对应关系,Kong网关相当于同时监听了这两个对应关系,实际上是将网站域名和后端的负载节点进行了关联。在Kong网关监听第一对应关系时,可基于服务流量请求中的网站域名确定对应的混跑服务Service,如基于订单对应的网站域名可查取到订单服务对应的混跑服务Service,基于用户对应的网站域名可查取到用户服务对应的混跑服务Service。对用户来说,如输入的网站域名“www.orderqq.com”可对应访问的为订单服务,输入的网站域名“www.userqq.com”可对应访问的为用户服务,此时可利用第一对应关系来实现。

其中,预设网站域名(Domain Name,又称网域)是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置),域名的出现旨在解决IP地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,常见的域名后缀有.com、.net、.cn、.edu、.top、.xyz等。例如,www.wikipedia.org是一个域名,和IP地址208.80.152.2相对应。网域名称系统(DomainName System,DNS)就像是一个自动的电话号码簿,我们可以直接拨打wikipedia的名字来代替电话号码(IP地址)。直接调用网站的名字以后,网域名称系统就会将便于人类使用的名字(如www.wikipedia.org)转化成便于机器识别的IP地址(如208.80.152.2)。IP地址是Internet主机的作为路由寻址用的数字体标识,人不容易记忆,因而产生了域名这一种字符型标识;混跑服务Service是指能够支持虚拟机和容器混合承担的服务;预设标签是根据预设网站域名确定的预设格式下的字符标签,如对于www.wikipedia.org这一预设网站域名,对应的预设标签可为wikipedia,进而可基于预设标签wikipedia创建与www.wikipedia.org这一预设网站域名匹配的目标混跑服务Service与对应负载节点之间的第二对应关系,即可进一步在第二对应关系的基础上,基于预设标签wikipedia查取与目标混跑服务Service对应的虚拟机节点和容器节点。

对于本实施利,预设网站域名为预先设置的具有流量服务需求的网站域名,每个预设网站域名均会对应配置一个混跑服务Service,每个混跑服务Service均会匹配有一组虚拟机节点和/或容器节点,用于承担预设网站域名下的流量服务的负载流量。对于虚拟机节点和容器节点可分别基于对应IP地址打上相应的预设标签,部署策略方案,具体的,流量服务请求上携带有对应用于承担负载流量的负载节点上的预设标签,通过预设标签可找到相应的负载节点,即可以访问虚拟机也可访问容器。具体的,可利用Kong ingressController将执行所述预设网站域名下流量服务的所有虚拟机节点和容器节点,以混跑服务节点集群形式绑定至Kong网关后端所述流量服务对应的负载上,以便利用Kong网关在混跑服务节点集群中提取用于执行预设网站域名对应目标服务的目标虚拟机节点和目标容器节点,进而将目标服务的负载流量分配到目标虚拟机节点和目标容器节点,实现负载流量的均衡调度。

202、若Kong网关接收到目标服务的流量服务请求,则确定与目标服务匹配的目标标签标识。

对于本实施例,在具体的应用场景中,在Kong网关接收到目标服务的流量服务请求后,可进一步查取目标服务对应的网站域名,并依据标签标识对应的生成规则,确定与网站域名对应的目标标签标识。

203、在后端绑定的负载节点中提取与目标标签标识匹配的混跑服务节点集群,混跑服务节点集群包含配置有目标标签标识的可执行虚拟机节点和可执行容器节点。

对于本实施例,每个网站域名对应不同的混跑服务Service,每个Service对应不同的一组负载节,即混跑服务节点集群。在基于实施例步骤202确定出网站域名对应的目标标签标识后,可进一步基于第一对应关系利用Kong ingress接口查取对应的目标混跑服务,并根据目标混跑服务以及第二对应关系确定用于承担目标服务负载流量的虚拟机节点和/或容器节点,具体可在Kong网关后端绑定的负载节点中查取包含承担目标服务负载流量的虚拟机节点和/或容器节点的混跑服务节点集群,在混跑服务节点集群中存储有配置有目标标签标识的所有虚拟机节点和容器节点。进一步的,可利用Kong网关在混跑服务节点集群对虚拟机节点和容器节点进行健康监测,进而筛选出所有处于健康状态的可执行虚拟机节点和可执行容器节点。

其中,负载节点是基于实施例步骤201中的第一对应关系以及第二对应关系查取并配置到Kong网关后端负载上的。具体的,可在Kong ingress基于第一对应关系查取与目标网站域名匹配的目标混跑服务后,基于目标混跑服务对应的第二对应关系查取得到,并配置到Kong网关后端负载上。

例如,若对应*宝应用的流量服务请求,对应的标签可为“APP:*宝”,IP地址对应属性,可在Kong网关后端绑定的后端节点中查取与“APP:*宝”这一标签匹配的混跑服务节点集群,进而可利用该混跑服务节点集群内所有被打上“APP:*宝”的处于健康状态的负载节点作为*宝应用下的负载节点,用于承担*宝的负载流量。

204、将混跑服务节点集群中的可执行虚拟机节点和可执行容器节点,分别确定为用于响应执行流量服务请求的目标虚拟机节点和目标容器节点。

对于本实施例,可将混跑服务节点集群中的所有可执行虚拟机节点和所有可执行容器节点分别确定为用于响应执行流量服务请求的目标虚拟机节点和目标容器节点;还可基于流量服务的负载大小,将混跑服务节点集群中的部分可执行虚拟机节点和部分可执行容器节点分别确定为用于响应执行流量服务请求的目标虚拟机节点和目标容器节点。

205、利用Kong网关基于动态调整的预设流量分配权重规则,将目标服务的负载流量分配至目标虚拟机节点和/或目标容器节点。

对于本实施例,为了在将负载从虚拟机迁移到容器环境时,避免对线上用户的服务影响,故可通过预设流量分配权重规则将目标服务的负载流量进行由少到多的动态调整,以保证负载流量从虚拟机到容器过渡过程的安全性、稳定性。相应的,实施例步骤具体可以包括:基于第一预设流量分配权重规则,为目标虚拟机节点和目标容器节点分别配置第一流量分配权重和第二流量分配权重;依据第一流量分配权重和第二流量分配权重将目标服务的负载流量分配至目标虚拟机节点和/或目标容器节点;若判定配置第二流量分配权重的目标容器节点内负载流量运行正常,则基于第二预设流量分配权重规则增大第二流量分配权重,并依据增大后的第二流量分配权重为目标容器节点分配负载流量;依次执行上述基于第二预设流量分配权重规则增大第二流量分配权重的过程,直至依据第二流量分配权重将目标服务的负载流量全部分配至目标容器节点。

例如,对于100万的负载流量,首先基于第一预设流量分配权重规则,可将大部分如99%的负载流量打入虚拟主机,将少部分如1%的流量打入到容器,此时可针对容器内1万人的负载流量进行灰度测试,鉴于容器内负载流量较小,故不会对线上用户产生服务影响。此时若容器中出现网络不通,或容器本身出现问题,进而无法正常提供服务时,则可及时制定相应的调整方案,当判定容器中的网络问题已解决或灰度测试结果显示容器内服务执行正常时,可进一步依据第二预设流量分配权重规则,在灰度循环测试下,逐步提高容器对应的流量分配权重,如逐步调整到10%、20%、50%……直至达到100%,进一步在容器对应的流量分配权重调整为100%时,实现负载流量从虚拟机到容器环境的安全迁移。

在具体的应用场景中,混跑服务节点集群内的可执行虚拟机节点以及可执行容器节点是利用Kubernetes执行配置、创建和更新的,具体实现过程可为:利用Kubernetes监听是否存在可执行虚拟机节点和/或可执行容器节点的变更任务;若监听存在变更任务,则判定待执行变更的可执行虚拟机节点和/或可执行容器节点是否存在挂载的混跑服务;若判定存在挂载的混跑服务,则依据变更任务,更新混跑服务对应混跑服务节点集群内的可执行虚拟机节点和/或可执行容器节点。

其中,混跑服务Service是k8s的一种负载均衡方式,但是在本申请中,Kong网关没有使用这种负载均衡方式,Kong网关使用的负载均衡方式是监听Kong ingress的创建、变更和删除,可以把网站域名和Service连接。同时还可监听Service的创建、变更、删除等。具体的,当混跑服务Service发生创建、变更、删除时,混跑服务Service对应的负载节点也会发生变化,如当创建了一个混跑服务Service,则该混跑服务Service对应后端的负载节点是新增的;当删除了一个混跑服务Service,则该混跑服务Service对应的负载节点也应全部删除;当混跑服务Service发生变更(如发生了扩容),则该混跑服务Service对应的负载节点也会相应的增加。相应的,可利用Kubernetes监听是否存在可执行虚拟机节点和/或可执行容器节点的变更任务,在监听存在变更任务时,可进一步判断待执行变更的可执行虚拟机节点和/或可执行容器节点是否存在挂载的混跑服务;若判定存在挂载的混跑服务,则可依据变更任务,同步更新混跑服务对应混跑服务节点集群内的可执行虚拟机节点和/或可执行容器节点。

在具体的应用场景中,对于本实施例,负载均衡设备只需要检测Kong网关节点的存活状态,所有后端服务的健康检查均由Kong网关完成。相应的实施例步骤具体可以包括:利用负载均衡器检测Kong网关节点存活状态;利用Kong网关节点执行对后端绑定的虚拟机节点和容器节点的健康状态检测,以便摘除存在故障的虚拟机节点和/或容器节点。

其中,Kong网关节点为运行Kong网关服务的虚拟机或容器组。负载均衡设备可在向Kong网关转发流量服务请求时,监测Kong网关的负载均衡调度进程,并依据负载均衡调度进程判定Kong网关未处于存活状态时,可进一步向虚拟主机或上一级的容器组进行上报处理,并将流量服务请求转发到其他用于执行目标服务且处于存活状态的Kong网关上,实现负载均衡调度。

相应的,在Kong网关进行对负载节点的健康检测时,可在将负载流量打入负载节点的同时,检测负载节点的响应状态,若判定负载节点在预设时间段内未响应或未响应完成,此时可判定该负载节点异常,进而可在Kong网关处摘除存在故障的虚拟机节点和/或容器节点。

借由上述虚拟机和容器的负载流量分配方法,可将Kong网关绑定至负载均衡器后端,以接收负载均衡器转发的流量服务请求;并在Kong网关接收到目标服务的流量服务请求时,可通过在后端绑定的负载节点中提取与流量服务请求对应目标网站域名匹配的目标虚拟机节点和/或目标容器节点。其中,负载节点是在Kong ingress基于第一对应关系查取与目标网站域名匹配的目标混跑服务后,基于目标混跑服务对应的第二对应关系查取得到,并配置到Kong网关后端负载上的;进一步的,可利用Kong网关基于动态调整的预设流量分配权重规则,将目标服务的负载流量分配至目标虚拟机节点和/或目标容器节点,进而实现对负载流量的智能化分配。通过本申请中的技术方案,可将虚拟机节点和容器节点抽象成资源,利用Kong网关实现负载的均衡调度,此时负载均衡设备只需要检测Kong网关节点存活状态,所有后端服务的健康检查均由Kong网关完成。虚拟主机节点和容器节点平级,可以通过Kong网关动态调整的方式单独为每个节点设置负载权重,进而可实现负载流量从虚拟机安全地迁移到容器环境中,且不会对线上用户造成影响。

进一步的,作为图1和图2所示方法的具体实现,本申请实施例提供了一种虚拟机和容器的负载流量分配装置,如图4所示,该装置包括:接收模块31、提取模块32、分配模块33;

接收模块31,可用于将Kong网关绑定至负载均衡器后端,以接收负载均衡器转发的流量服务请求;

提取模块32,可用于若Kong网关接收到目标服务的流量服务请求,则在后端绑定的负载节点中提取与流量服务请求对应目标网站域名匹配的目标虚拟机节点和/或目标容器节点,负载节点是在Kong ingress基于第一对应关系查取与目标网站域名匹配的目标混跑服务后,基于目标混跑服务对应的第二对应关系查取得到,并配置到Kong网关后端负载上的;

分配模块33,可用于利用Kong网关基于动态调整的预设流量分配权重规则,将目标服务的负载流量分配至目标虚拟机节点和/或目标容器节点。

在具体的应用场景中,如图5所示,该装置还包括:第一创建模块34、第二创建模块35、绑定模块36;

第一创建模块34,可用于针对预设网站域名分别配置对应的混跑服务,基于Kongingress创建所述预设网站域名与混跑服务的第一对应关系,第一对应关系用于查取与预设网站域名匹配的混跑服务;

第二创建模块35,可同于基于与预设网站域名匹配的预设标签,创建混跑服务与可执行虚拟机节点、可执行容器节点的第二对应关系,第二对应关系用于基于混跑服务,查取执行预设网站域名下流量服务的可执行虚拟机节点和可执行容器节点;

绑定模块36,可用于利用Kong ingress Controller将可执行虚拟机节点和可执行容器节点,以混跑服务节点集群形式绑定至Kong网关后端流量服务对应的负载上,以便利用Kong网关执行对可执行虚拟机节点和可执行容器节点的流量负载均衡调度。

相应的,为了在后端绑定的负载节点中提取与流量服务请求对应目标网站域名匹配的目标虚拟机节点和/或目标容器节点,提取模块32,具体可用于确定与目标服务匹配的目标标签标识;在后端绑定的负载节点中提取与目标标签标识匹配的混跑服务节点集群,混跑服务节点集群包含配置有目标标签标识的可执行虚拟机节点和可执行容器节点;将混跑服务节点集群中的可执行虚拟机节点和可执行容器节点,分别确定为用于响应执行流量服务请求的目标虚拟机节点和目标容器节点。

在具体的应用场景中,为了利用Kong网关基于动态调整的预设流量分配权重规则,将目标服务的负载流量分配至目标虚拟机节点和/或目标容器节点,分配模块33,具体可用于基于第一预设流量分配权重规则,为目标虚拟机节点和目标容器节点分别配置第一流量分配权重和第二流量分配权重;依据第一流量分配权重和第二流量分配权重将目标服务的负载流量分配至目标虚拟机节点和/或目标容器节点;若判定配置第二流量分配权重的目标容器节点内负载流量运行正常,则基于第二预设流量分配权重规则增大第二流量分配权重,并依据增大后的第二流量分配权重为目标容器节点分配负载流量;依次执行上述基于第二预设流量分配权重规则增大第二流量分配权重的过程,直至依据第二流量分配权重将目标服务的负载流量全部分配至目标容器节点。

在具体的应用场景中,如图5所示,该装置还包括:配置创建更新模块37;

配置创建更新模块37,可用于利用Kubernetes执行对混跑服务节点集群内可执行虚拟机节点和/或可执行容器节点的配置、创建和更新。

相应的,配置创建更新模块37,具体可用于利用Kubernetes监听是否存在可执行虚拟机节点和/或可执行容器节点的变更任务;若监听存在变更任务,则判定待执行变更的可执行虚拟机节点和/或可执行容器节点是否存在挂载的混跑服务;若判定存在挂载的混跑服务,则依据变更任务,更新混跑服务对应混跑服务节点集群内的可执行虚拟机节点和/或可执行容器节点。

在具体的应用场景中,为了实现对Kong网关节点存活状态以及虚拟机节点和容器节点健康状态的检测,如图5所示,该装置还包括:第一检测模块38、第二检测模块39;

第一检测模块38,可用于利用负载均衡器检测Kong网关节点存活状态;

第二检测模块39,可用于利用Kong网关节点执行对后端绑定的虚拟机节点和容器节点的健康状态检测,以便摘除存在故障的虚拟机节点和/或容器节点。

需要说明的是,本实施例提供的一种虚拟机和容器的负载流量分配装置所涉及各功能单元的其他相应描述,可以参考图1至图2的对应描述,在此不再赘述。

基于上述如图1至图2所示方法,相应的,本实施例还提供了一种非易失性存储介质,其上存储有计算机可读指令,该可读指令被处理器执行时实现上述如图1至图2所示的虚拟机和容器的负载流量分配方法。

基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景的方法。

基于上述如图1至图2所示的方法和图4、图5所示的虚拟装置实施例,为了实现上述目的,本实施例还提供了一种计算机设备,该计算机设备包括存储介质和处理器;非易失性存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1至图2所示的虚拟机和容器的负载流量分配方法。

可选的,该计算机设备还可以包括用户接口、网络接口、摄像头、射频(RadioFrequency,RF)电路,传感器、音频电路、WI-FI模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard)等,可选用户接口还可以包括USB接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如WI-FI接口)等。

本领域技术人员可以理解,本实施例提供的一种计算机设备结构并不构成对该实体设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。

非易失性存储介质中还可以包括操作系统、网络通信模块。操作系统是管理上述计算机设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现非易失性存储介质内部各组件之间的通信,以及与信息处理实体设备中其它硬件和软件之间通信。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现。

通过应用本申请的技术方案,与目前现有技术相比,本申请可将Kong网关绑定至负载均衡器后端,以接收负载均衡器转发的流量服务请求;并在Kong网关接收到目标服务的流量服务请求时,可通过在后端绑定的负载节点中提取与流量服务请求对应目标网站域名匹配的目标虚拟机节点和/或目标容器节点。其中,负载节点是在Kong ingress基于第一对应关系查取与目标网站域名匹配的目标混跑服务后,基于目标混跑服务对应的第二对应关系查取得到,并配置到Kong网关后端负载上的;进一步的,可利用Kong网关基于动态调整的预设流量分配权重规则,将目标服务的负载流量分配至目标虚拟机节点和/或目标容器节点,进而实现对负载流量的智能化分配。通过本申请中的技术方案,可将虚拟机节点和容器节点抽象成资源,利用Kong网关实现负载的均衡调度,此时负载均衡设备只需要检测Kong网关节点存活状态,所有后端服务的健康检查均由Kong网关完成。虚拟主机节点和容器节点平级,可以通过Kong网关动态调整的方式单独为每个节点设置负载权重,进而可实现负载流量从虚拟机安全地迁移到容器环境中,且不会对线上用户造成影响。

本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。

相关技术
  • 虚拟机和容器的负载流量分配方法、装置及计算机设备
  • 虚拟机和容器的负载流量分配方法、装置及计算机设备
技术分类

06120113212964