CN115309497A - 请求调度方法、装置、设备以及存储介质 - Google Patents
请求调度方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN115309497A CN115309497A CN202110503214.0A CN202110503214A CN115309497A CN 115309497 A CN115309497 A CN 115309497A CN 202110503214 A CN202110503214 A CN 202110503214A CN 115309497 A CN115309497 A CN 115309497A
- Authority
- CN
- China
- Prior art keywords
- domain name
- target
- service
- request
- container cluster
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种请求调度方法、装置、设备以及存储介质,涉及计算机技术领域。请求调度方法包括以下步骤:监测客户端发送至域名服务器的服务请求;根据服务请求,从至少2个容器集群中确定主目标容器集群与容灾目标容器集群;将主目标容器集群中与服务请求对应的目标服务的第一内部域名发送至域名服务器,以使域名服务器确定与第一内部域名对应的IP地址;在监测到客户端与目标服务之间的连接断开时,将容灾目标容器集群中与服务请求对应的容灾目标服务的第二内部域名发送至域名服务器,以使域名服务器确定与第二内部域名对应的IP地址。本发明可实现数据访问的高可用、容灾特性与连续性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种请求调度方法、装置、设备以及存储介质。
背景技术
Kubernetes是一种开源的容器编排与调度系统,Kubernetes系统包括多个Kubernetes集群,每个Kubernetes集群中包含至少一个服务,且每个服务都是由至少一个pod组成。
Kubernetes系统在面对数据访问请求时,在目标集群内目标服务中,通过负载均衡实现集群内pod的容灾需求,但是还面临单个Kubernetes集群整体的容灾需求。
发明内容
本发明的主要目的在于提供一种请求调度方法、装置、设备以及存储介质,旨在解决Kubernetes系统需要实现Kubernetes集群容灾需求的技术问题。
为实现上述目的,本发明提供一种请求调度方法,请求调度方法包括以下步骤:
监测客户端发送至域名服务器的服务请求;
根据服务请求,从至少2个容器集群中确定主目标容器集群与容灾目标容器集群;其中,主目标容器集群与容灾目标容器集群的配置文件一致;
将主目标容器集群中与服务请求对应的目标服务的第一内部域名发送至域名服务器,以使域名服务器确定与第一内部域名对应的IP地址;
在监测到客户端与目标服务之间的连接断开时,将容灾目标容器集群中与服务请求对应的容灾目标服务的第二内部域名发送至域名服务器,以使域名服务器确定与第二内部域名对应的IP地址。
可选的,主目标容器集群与容灾目标容器集群均具有优先级值,且目标容器集群的优先级值大于容灾目标容器集群的优先级值;
在监测到客户端与目标服务之间的连接断开,将容灾目标容器集群中与服务请求对应的容灾目标服务的第二内部域名发送至域名服务器,以使域名服务器确定与第二内部域名对应的IP地址的步骤包括:
在监测到客户端与目标服务之间的连接断开时,调整容灾目标容器集群的优先级值至最大,以触发容灾指令将容灾目标容器集群配置为新的主目标容器集群;
将主目标容器集群中与服务请求对应的目标服务的第一内部域名发送至域名服务器,以使域名服务器确定与第一内部域名对应的IP地址。
可选的,根据服务请求,从至少2个容器集群中确定主目标容器集群与容灾目标容器集群的步骤之前,方法还包括:
监测至少2个容器集群中任一容器集群的配置文件更新信息;其中,配置文件更新信息至少包括任一容器集群中服务的内部域名更新信息;
基于配置文件更新信息,更新至少2个容器集群的全局资源信息;
基于全局资源信息,同步更新至少2个容器集群中所有容器集群的配置文件。
可选的,配置文件更新信息包括:
配置文件新增信息;和/或
配置文件更改信息。
可选的,根据服务请求,从至少2个容器集群中确定主目标容器集群与容灾目标容器集群的步骤之后,方法还包括:
确定主目标容器集群中与服务请求对应的目标主服务以及目标备服务,以及容灾目标容器集群中与服务请求对应的容灾目标主服务以及容灾目标备服务;
根据预设负载均衡策略,从目标主服务和目标备服务中确定与服务请求对应的目标服务;
将主目标容器集群中与服务请求对应的目标服务的第一内部域名发送至域名服务器,以使域名服务器确定与第一内部域名对应的IP地址的步骤包括:
根据预设负载均衡策略,从目标主服务和目标备服务中确定与服务请求对应的目标服务;
将目标服务的第一内部域名发送至域名服务器,以使域名服务器确定与第一内部域名对应的IP地址;
在监测到客户端与目标服务之间的连接断开时,将容灾目标容器集群中与服务请求对应的容灾目标服务的第二内部域名发送至域名服务器,以使域名服务器确定与第二内部域名对应的IP地址的步骤,包括:
在监测到客户端与目标服务之间的连接断开时,根据预设负载均衡策略,从容灾目标主服务和容灾目标备服务中确定与服务请求对应的容灾目标服务;
将容灾目标服务的第二内部域名发送至域名服务器,以使域名服务器确定与第二内部域名对应的IP地址。
第二方面,本发明提供一种请求调度方法,用于客户端,方法包括以下步骤:
向域名服务器发送服务请求,以使容器系统根据服务请求,从至少2个容器集群中确定主目标容器集群与容灾目标容器集群,并将主目标容器集群中与服务请求对应的目标服务的第一内部域名发送至域名服务器,以使域名服务器确定第一内部域名对应的IP地址;其中,主目标容器集群与容灾目标容器集群的配置文件一致;
接收第一内部域名对应的IP地址,并访问目标服务;
在与目标服务之间的连接断开之后,接收域名服务器发送的第二内部域名对应的IP地址,并访问第二内部域名对应的容灾目标容器集群中的容灾目标服务,其中,容灾目标服务与服务请求相对应。
第三方面,本发明提供了一种请求调度装置,包括:
请求检测模块,用于监测客户端发送至域名服务器的服务请求;
集群确定模块,用于根据服务请求,从至少2个容器集群中确定主目标容器集群与容灾目标容器集群;其中,主目标容器集群与容灾目标容器集群的配置文件一致;
第一发送模块,用于将主目标容器集群中与服务请求对应的目标服务的第一内部域名发送至域名服务器,以使域名服务器确定与第一内部域名对应的IP地址;
第二发送模块,用于在监测到客户端与目标服务之间的连接断开时,将容灾目标容器集群中与服务请求对应的容灾目标服务的第二内部域名发送至域名服务器,以使域名服务器确定与第二内部域名对应的IP地址。
第四方面,本发明提供了一种请求调度装置,用于客户端中,请求调度装置包括:
请求发送模块,用于向域名服务器发送服务请求,以使容器系统根据服务请求,从至少2个容器集群中确定主目标容器集群与容灾目标容器集群,并将主目标容器集群中与服务请求对应的目标服务的第一内部域名发送至域名服务器,以使域名服务器确定第一内部域名对应的IP地址;其中,主目标容器集群与容灾目标容器集群的配置文件一致;
第一接收模块,用于接收第一内部域名对应的IP地址,并访问目标服务;
第二接收模块,用于在与目标服务之间的连接断开之后,接收域名服务器发送的第二内部域名对应的IP地址,并访问第二内部域名对应的容灾目标容器集群中的容灾目标服务;其中,容灾目标服务与服务请求相对应。
第五方面,本发明还提供了一种请求调度设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的请求调度程序,其中,处理器执行请求调度时实现如上述的方法。
第六方面,本发明还提供了一种计算机存储介质,计算机存储介质存储有请求调度程序,其中,处理器执行请求调度程序时实现如上述的请求调度方法。
本发明实施例提出的一种请求调度方法,通过在监测到客户端发送至域名服务器的服务请求时,从至少2个kubernetes容器集群中确定主目标kubernetes容器集群与容灾目标kubernetes容器集群,并在监测到客户端与目标服务之间的连接断开时,将容灾目标kubernetes容器集群中与服务请求对应的容灾目标服务的第二内部域名发送至域名服务器,以使域名服务器确定与第二内部域名对应的IP地址,从而客户端欲访问的至少2个kubernetes容器集群中存在互为主备的主目标kubernetes容器集群与容灾目标kubernetes容器集群,以实现目标服务的高可用和容灾特性,以及数据访问的连续性。
附图说明
图1为本发明请求调度方法涉及的系统的适应性架构图;
图2为本发明请求调度设备的结构示意图;
图3为本发明请求调度方法第一实施例的流程示意图;
图4为本发明请求调度方法第二实施例的流程示意图;
图5为本发明请求调度方法第三实施例的流程示意图;
图6为本发明请求调度方法第四实施例的流程示意图;
图7为本发明请求调度方法第五实施例的流程示意图;
图8为本发明请求调度装置第一实施例的功能模块示意图;
图9为本发明请求调度装置第二实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
Kubernetes是一种开源的容器编排与调度系统,Kubernetes系统包括多个Kubernetes集群,每个Kubernetes集群中包含至少一个服务,且每个服务都是由至少一个pod组成。但是相关技术中,客户端访问Kubernetes系统时,Kubernetes系统仅仅考虑了调度Kubernetes集群中Pod的高可用性和容灾特性,但是并没有考虑Kubernetes集群本身的高可用性和容灾特性。
为此,本发明实施例提供了一种请求调度方法,通过在监测到客户端发送至域名服务器的服务请求时,从Kubernetes系统中确定互为主备的主目标kubernetes集群与容灾目标kubernetes集群,在客户端与目标服务之间的连接断开时,客户端可访问容灾目标kubernetes集群从而实现目标服务的高可用和容灾特性。
下面以容器集群为kubernetes集群为例进一步阐述本申请的发明构思。
本发明实施例示出了一种请求调度方法第一实施例。参阅图3,图3为本发明请求调度方法第一实施例的流程示意图。
本实施例中,请求调度方法使用于kubernetes系统中。kubernetes系统包括至少两个kubernetes集群,且其中部分可布置在本地服务器中,另一部分布置在异地服务器中。对于任一服务,kubernetes系统中至少有2个kubernetes集群配置有该服务。Kubernetes集群通过访问接口对外提供服务,而本实施例中,kubernetes系统可部署有外地访问控制器,外地访问控制器可为Ingress控制器,以作为kubernetes系统的所有流量的入口。
其中,kubernetes集群是指容器运行所需云资源的集合,包含了若干台服务器,每个服务器均部署有kubernetes集群。Pod(实例)由相关的一个或多个容器构成一个实例,这些容器共享相同的存储和网络空间。Node(工作节点)为Kubernetes集群的资源对象,用于管理Pod副本的创建、调度以及整个生命周期的自动控制。服务(Service)表示由多个相同配置的实例(Pod)和访问这些实例(Pod)的规则组成的微服务。
本实施例中,请求调度方法用于外部访问控制器上,包括以下步骤:
步骤S101、监测客户端发送至域名服务器的服务请求。
外部访问控制器监听Kubernetes系统内各个Kubernetes集群的各种事件,包括但不限于外部访问创建,Pod扩展、Pod收缩等。并可将监听到的各种事件存储至外部访问控制器的消息队列中。在客户端向域名服务器发送服务请求时,外部访问控制器可监听到该外部访问创建。
域名服务器可独立于kubernetes系统之外,以获取kubernetes集群的内部服务的内部虚拟域名对应的IP地址。或者,域名服务器还可以是kubernetes系统内的核域名服务器CoreDNS。
步骤S102、根据服务请求,从至少2个kubernetes集群中确定主目标kubernetes集群与容灾目标kubernetes集群。
其中,主目标kubernetes集群与容灾目标kubernetes集群的配置文件一致。
参阅图1,外部访问控制器对服务请求进行容灾配置,从多个kubernetes集群确定出主目标kubernetes集群与容灾目标kubernetes集群。主目标kubernetes集群与容灾目标kubernetes集群的配置文件一致。配置文件一致也即是两个集群的接口、服务成员、负载均衡策略以及规则等一致,两者可提供相同的服务,从而主目标kubernetes集群与容灾目标kubernetes集群可互为主备。一般的,可选择本地服务器上的kubernetes集群作为主配置,并选择异地服务器上的kubernetes集群作为容灾配置。
值得一提的是,主目标kubernetes集群仅为一个,但容灾目标kubernetes集群可包括一个或者多个,本实施例对此并不限制。
步骤S103、将主目标kubernetes集群中与服务请求对应的目标服务的第一内部域名发送至域名服务器,以使域名服务器确定与第一内部域名对应的IP地址。
步骤S104,在监测到客户端与目标服务之间的连接断开时,将容灾目标kubernetes集群中与服务请求对应的容灾目标服务的第二内部域名发送至域名服务器,以使域名服务器确定与第二内部域名对应的IP地址。
外部访问控制器首先将主目标kubernetes集群中与服务请求对应的目标服务的第一内部域名发送至域名服务器,从而域名服务器可以获取到该第一内部域名对应的IP地址,并将该IP地址返回给客户端,以使客户端访问目标服务,目标服务对该服务请求进行处理。而在主目标kubernetes集群发生断网、停电等意外事故时,外部访问控制器仍可监测到该意外事件的发生,并响应于该意外事件,将容灾目标kubernetes集群中与服务请求对应的容灾目标服务的第二内部域名发送至域名服务器,域名服务器获取与第二内部域名对应的IP地址,并将新的IP地址返回给客户端,以使客户端访问容灾目标服务。
该第一内部域名或第二内部域名为服务的VIP(Virtual IP Address,虚拟IP)地址,或者VIP PORT(虚拟接口),域名服务器根据目标服务的VIP地址解析出对应的IP地址,并将其返回到客户端。客户端基于该IP地址访问对应该IP地址的kubernetes集群内部的内部服务。从而启动容灾配置,kubernetes系统继续为客户端提供服务支持。
在示出的一具体实施例中,外部访问控制器中主目标kubernetes集群与容灾目标kubernetes集群均具有优先级值,且目标kubernetes集群的优先级值大于容灾目标kubernetes集群的优先级值。在多个kubernetes集群中,优先级最高的kubernetes集群为主目标kubernetes集群,优先级较低的一个或者多个kubernetes集群为容灾目标kubernetes集群。
此时,步骤S104包括以下步骤:
步骤A10,在监测到客户端与目标服务之间的连接断开时,调整容灾目标kubernetes集群的优先级值至最大,以触发发送容灾指令将容灾目标kubernetes集群配置为新的主目标kubernetes集群。
在外部访问控制器监测到客户端与目标服务之间的连接断开时,将其存储至自身的消息队列里面,调整容灾目标kubernetes集群的优先级调整至最高以触发容灾指令,从而将容灾目标kubernetes集群变更为新的主目标kubernetes集群,还可将容灾目标kubernetes集群中与服务请求对应的容灾目标服务配置为新的目标服务。
步骤A20,将主目标kubernetes集群中与服务请求对应的目标服务的第一内部域名发送至域名服务器,以使域名服务器确定与第一内部域名对应的IP地址。
外部访问控制器将变更后的目标服务的第一内部域名发送至域名服务器,以使域名服务器确定与第一内部域名对应的IP地址。此时,客户端可从域名服务器获得变更后的IP地址,从而访问到容灾目标服务继续处理服务请求。采用优先级管理主目标kubernetes集群与容灾目标kubernetes集群,可利于管理多个容灾目标kubernetes集群。
本实施例中,kubernetes系统为客户端的服务请求配置了主目标kubernetes集群,以及容灾目标kubernetes集群,以不仅仅实现相关技术中的kubernetes集群内部的容灾以及高可用性,还实现kubernetes集群之间的容灾以及高可用,以确保客户端访问数据流的连续性。
在本发明请求调度方法第一实施例的基础上,提出本发明请求调度方法第二实施例。参阅图4,图4为本发明请求调度方法第二实施例的流程示意图。
主目标kubernetes集群与容灾目标kubernetes集群的配置文件一致,本实施例示出了一种确保kubernetes系统有可选择出主目标kubernetes集群与容灾目标kubernetes集群的方法。
本实施例中,在步骤S102之前包括:
步骤S10、监测kubernetes系统中任一kubernetes集群的配置文件更新信息。
其中,配置文件更新信息包括但不限于配置文件新增信息与配置文件更改信息。配置文件新增信息可以是任一kubernetes集群内新创建的服务的配置信息,如内部域名。配置文件更改信息可以是任一kubernetes集群内服务更改后的内部域名。此外,配置文件更新信息还可包括均衡负载策略的变更等信息。
外部访问控制器会与多个kubernetes集群的API(Applica tionProg rammingInterface,应用程序接口)相连接,kubernetes集群的API监听到在Kubernetes集群中存在新服务的创建后,则获取新创建的服务的配置信息。或者kubernetes集群的API监听到在Kubernetes集群中存在服务的变更后,则获取变更后的服务的配置信息。
步骤S20、基于配置文件更新信息,更新kubernetes系统的全局资源信息。
全局信息资源包括kubernetes系统内服务的VIP或者PORT、服务成员、负载均衡策略、规则等单集群使用资源。外部访问控制器将任一kubernetes集群的配置文件更新信息与kubernetes系统的全局资源信息做对比,进而更新kubernetes系统的全局资源信息。
如,全局资源信息中无此新增VIP及或者新增VIP PORT,则采用新增模式同步全局资源信息。全局资源信息中已经存在VIP及VIP PORT,则采用更新模式,将全局资源信息与配置文件更新信息比对得到差异项,再通过差异项更新全局资源信息。
步骤S30、基于全局资源信息,同步更新kubernetes系统中所有kubernetes集群的配置文件。
在全局资源信息更新后,即可通过更新kubernetes系统中所有kubernetes集群的配置文件。从而确保kubernetes系统中所有kubernetes集群的一致性,以为客户端的服务请求提供容灾配置,在任一kubernetes集群失效不能提供服务时,其他kubernetes集群可作为容灾配置提供容灾服务,实现双中心甚至多中心Kubernetes集群中外部流量的多集群服务、高可用性以及容灾特性。
在本发明请求调度方法第一实施例和第二实施例的基础上,提出本发明请求调度方法第三实施例。参阅图5,图5为本发明请求调度方法第三实施例的流程示意图。
本实施例中,请求调度方法包括以下步骤:
步骤S301、监测客户端发送至域名服务器的服务请求。
步骤S302、根据服务请求,从至少2个kubernetes集群中确定主目标kubernetes集群与容灾目标kubernetes集群。
步骤S303、确定主目标kubernetes集群中与服务请求对应的目标主服务以及目标备服务,以及容灾目标kubernetes集群中与服务请求对应的容灾目标主服务以及容灾目标备服务。
参阅图1,本步骤中,外部访问控制器在主目标kubernetes集群还配置了目标主服务以及目标备服务,目标主服务以及目标备服务互为主备。同时,外部访问控制器在容灾目标kubernetes集群也配置了容灾目标主服务以及容灾目标备服务,容灾目标主服务以及容灾目标备服务互为主备。
步骤S304、根据预设负载均衡策略,从目标主服务和目标备服务中确定与服务请求对应的目标服务。
步骤S305、将目标服务的第一内部域名发送至域名服务器,以使域名服务器确定与第一内部域名对应的IP地址。
步骤S306、在监测到客户端与目标服务之间的连接断开时,根据预设负载均衡策略,从容灾目标主服务和容灾目标备服务中确定与服务请求对应的容灾目标服务。
步骤S307、将容灾目标服务的第二内部域名发送至域名服务器,以使域名服务器确定与第二内部域名对应的IP地址。
负载均衡策略例如为:负载平均策略、权重策略、最少连接数策略、轮询策略、IPhash策略等。
负载平均策略指的是实现Kubernetes集群中目标服务上的负载平均;权重策略主要是依据目标服务的响应时间计算权重,根据得出的权重来选择目标服务,相应时间越短的目标服务被选择的概率越大;最少连接数策略是依据根据目标服务当前的连接情况进行负载均衡的,当客户端的访问数据流到来时,会选取当前连接数最少的目标服务来处理访问数据流;轮询策略是将访问数据流轮流分配给Kubernetes集群中目标服务;IPhash策略是将源IP地址相同的访问数据流定向到同一目标服务中。
从而,外部访问控制器可根据预设负载均衡策略,在客户端访问主目标kubernetes集群时,从目标主服务和目标备服务中确定与服务请求对应的目标服务。而在主目标kubernetes集群断开连接时,从容灾目标主服务和容灾目标备服务中确定与服务请求对应的容灾目标服务。目标服务和容灾目标服务通过负载均衡调用多集群的POD。
本发明实施例通过外部访问控制器进行多集群中心调度,不仅实现多个Kubernetes集群之间的容灾配置,还可以实现多个Kubernetes集群中服务的负载均衡,可以将客户端的访问数据流分配到多个集群中,保障Kubernetes集群内部服务的高可用性以及访问数据流的连续性。
此外,本发明还提供了请求调度方法的第四实施例,用于客户端。参阅图6,图6为本发明实施例第四实施例的流程示意图。
本实施例中,方法包括以下步骤:
步骤S401、向域名服务器发送服务请求,以使kubernetes系统根据服务请求,从至少2个kubernetes集群中确定主目标kubernetes集群与容灾目标kubernetes集群,并将主目标kubernetes集群中与服务请求对应的目标服务的第一内部域名发送至域名服务器,以使域名服务器确定第一内部域名对应的IP地址。
其中,主目标kubernetes集群与容灾目标kubernetes集群的配置文件一致。
步骤S402、接收第一内部域名对应的IP地址,并访问目标服务。
在主目标kubernetes集群正常时,客户端正常访问主目标kubernetes集群内部的目标服务。
步骤S403、在与目标服务之间的连接断开之后,接收域名服务器发送的第二内部域名对应的IP地址,并访问第二内部域名对应的容灾目标kubernetes集群中的容灾目标服务。
其中,容灾目标服务与服务请求相对应。
在主目标kubernetes集群由于意外情况不能提供服务时,客户端与目标服务之间的连接断开,此时,客户端可从域名服务器接收到第二内部域名对应的IP地址,从而继续访问可提供相同服务的容灾目标服务,实现数据访问的连续性。
此外,本发明还提供了一种请求调度方法第五实施例。参阅图7,图7为本发明实施例第五实施例的流程示意图。
本实施例中,方法包括以下步骤:
步骤S501、客户端向域名服务器发送服务请求。
步骤S502、kubernetes系统监测到客户端发送至域名服务器的服务请求时,根据服务请求,从至少2个kubernetes集群中确定主目标kubernetes集群与容灾目标kubernetes集群。其中,主目标kubernetes集群与容灾目标kubernetes集群的配置文件一致。
步骤S503、kubernetes系统将主目标kubernetes集群中与服务请求对应的目标服务的第一内部域名发送至域名服务器。
步骤S504、域名服务器确定第一内部域名对应的IP地址,并将IP地址发送回客户端。
步骤S505、客户端接收到第一内部域名对应的IP地址,并访问目标服务。
步骤S506、在与目标服务之间的连接断开之后,kubernetes系统将容灾目标kubernetes集群中与服务请求对应的容灾目标服务的第二内部域名发送至域名服务器。
步骤S507、域名服务器确定第二内部域名对应的IP地址,并将IP地址发送回客户端。
步骤S508、客户端接收到IP地址,并访问容灾目标服务。
本发明实施例中,在客户端访问kubernetes系统时,本发明实施例通过kubernetes系统中的外部访问控制器进行多集群中心调度,为该客户端的服务请求提供具有负载均衡的主目标kubernetes集群,同时为failed服务请求配置有可提供相同服务、且具有负载均衡的容灾目标kubernetes集群,不仅实现多个Kubernetes集群之间的容灾配置,还可以实现多个Kubernetes集群中服务的负载均衡,可以将客户端的访问数据流分配到多个集群中,保障Kubernetes集群内部服务的高可用性以及访问数据流的连续性。
参照图8,本发明提供请求调度装置第一实施例。该请求调度装置部署在kubernetes系统上。本实施例中,请求调度装置包括:
请求检测模块11,用于监测客户端发送至域名服务器的服务请求;
集群确定模块12,用于根据服务请求,从至少2个kubernetes集群中确定主目标kubernetes集群与容灾目标kubernetes集群;其中,主目标kubernetes集群与容灾目标kubernetes集群的配置文件一致。
第一发送模块13,用于将主目标kubernetes集群中与服务请求对应的目标服务的第一内部域名发送至域名服务器,以使域名服务器确定与第一内部域名对应的IP地址。
第二发送模块14,用于在监测到客户端与目标服务之间的连接断开时,将容灾目标kubernetes集群中与服务请求对应的容灾目标服务的第二内部域名发送至域名服务器,以使域名服务器确定与第二内部域名对应的IP地址。
作为本实施例的一种选择,kubernetes系统中主目标kubernetes集群与容灾目标kubernetes集群均具有优先级值,且目标kubernetes集群的优先级值大于容灾目标kubernetes集群的优先级值。
第二发送模块14包括:
调整模块141,用于在监测到客户端与目标服务之间的连接断开时,调整容灾目标kubernetes集群的优先级值至最大,以触发容灾指令将容灾目标kubernetes集群配置为新的主目标kubernetes集群;
域名发送模块142,用于将主目标kubernetes集群中与服务请求对应的目标服务的第一内部域名发送至域名服务器,以使域名服务器确定与第一内部域名对应的IP地址。
作为本实施例的一种选择,请求调度装置还包括:
内部监测模块15,用于监测kubernetes系统中任一kubernetes集群的配置文件更新信息;配置文件更新信息包括:配置文件新增信息;和/或配置文件更改信息。
资源更新模块16,用于基于配置文件更新信息,更新kubernetes系统的全局资源信息;
系统更新模块17,用于基于全局资源信息,同步更新kubernetes系统中所有kubernetes集群的配置文件。
作为本实施例的一种选择,请求调度装置还包括:
服务确定模块,用于确定主目标kubernetes集群中与服务请求对应的目标主服务以及目标备服务,以及容灾目标kubernetes集群中与服务请求对应的容灾目标主服务以及容灾目标备服务。
第一发送模块13包括:
第一负载均衡模块131,用于根据预设负载均衡策略,从目标主服务和目标备服务中确定与服务请求对应的目标服务;
第二域名发送模块132,用于将目标服务的第一内部域名发送至域名服务器,以使域名服务器确定与第一内部域名对应的IP地址。
第二发送模块14包括:
第二负载均衡模块143,在监测到客户端与目标服务之间的连接断开时,根据预设负载均衡策略,从容灾目标主服务和容灾目标备服务中确定与服务请求对应的容灾目标服务;
第三域名发送模块144,将容灾目标服务的第二内部域名发送至域名服务器,以使域名服务器确定与第二内部域名对应的IP地址。
参照图9,本发明提供请求调度装置第二实施例。该请求调度装置装置部署在外部客户端上。
请求发送模块21,用于向域名服务器发送服务请求,以使kubernetes系统根据服务请求,从至少2个kubernetes集群中确定主目标kubernetes集群与容灾目标kubernetes集群,并将主目标kubernetes集群中与服务请求对应的目标服务的第一内部域名发送至域名服务器,以使域名服务器确定第一内部域名对应的IP地址;其中,主目标kubernetes集群与容灾目标kubernetes集群的配置文件一致;
第一接收模块22,用于接收第一内部域名对应的IP地址,并访问目标服务;
第二接收模块23,用于在与目标服务之间的连接断开之后,接收域名服务器发送的第二内部域名对应的IP地址,并访问第二内部域名对应的容灾目标kubernetes集群中的容灾目标服务,其中,容灾目标服务与服务请求相对应。
参照图2,图2为本发明实施例方案涉及的请求调度方法的推荐设备结构示意图。
该基于区块链的密钥处理设备:至少一个处理器301、存储器302以及存储在存储器上并可在处理器上运行的请求调度程序,请求调度程序配置为实现如前的请求调度方法的步骤。
处理器301可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器301可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器301也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(CentralProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器301可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。
存储器302可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器302还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器302中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器301所执行以实现本申请中方法实施例提供的请求调度方法。
推荐设备还包括有通信接口303。处理器301、存储器302和通信接口303之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与通信接口303相连。
通信接口303可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器301和存储器302。在一些实施例中,处理器301、存储器302和通信接口303被集成在同一芯片或电路板上;在一些其他实施例中,处理器301、存储器302和通信接口303中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
本领域技术人员可以理解,图1中示出的结构并不构成对请求调度设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
此外,本发明实施例还提出一种计算机可读存储介质,计算机可读存储介质上存储有请求调度程序,请求调度程序被处理器执行时实现如上文的请求调度方法的步骤。因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。确定为示例,程序指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
Claims (10)
1.一种请求调度方法,其特征在于,所述请求调度方法包括以下步骤:
监测客户端发送至域名服务器的服务请求;
根据所述服务请求,从至少2个容器集群中确定主目标容器集群与容灾目标容器集群;其中,所述主目标容器集群与所述容灾目标容器集群的配置文件一致;
将所述主目标容器集群中与所述服务请求对应的目标服务的第一内部域名发送至所述域名服务器,以使所述域名服务器确定与所述第一内部域名对应的IP地址;
在监测到所述客户端与所述目标服务之间的连接断开时,将所述容灾目标容器集群中与所述服务请求对应的容灾目标服务的第二内部域名发送至所述域名服务器,以使所述域名服务器确定与所述第二内部域名对应的IP地址。
2.根据权利要求1所述的请求调度方法,其特征在于,所述主目标容器集群与所述容灾目标容器集群均具有优先级值,且所述目标容器集群的优先级值大于所述容灾目标容器集群的优先级值;
所述在监测到所述客户端与所述目标服务之间的连接断开,将所述容灾目标容器集群中与所述服务请求对应的容灾目标服务的第二内部域名发送至所述域名服务器,以使所述域名服务器确定与所述第二内部域名对应的IP地址的步骤包括:
在监测到所述客户端与所述目标服务之间的连接断开时,调整所述容灾目标容器集群的优先级值至最大,以触发容灾指令将所述容灾目标容器集群配置为新的主目标容器集群;
将所述主目标容器集群中与所述服务请求对应的目标服务的第一内部域名发送至所述域名服务器,以使所述域名服务器确定与所述第一内部域名对应的IP地址。
3.根据权利要求1或2所述的请求调度方法,其特征在于,所述根据所述服务请求,从至少2个容器集群中确定主目标容器集群与容灾目标容器集群的步骤之前,所述方法还包括:
监测至少2个容器集群中任一容器集群的配置文件更新信息;
基于所述配置文件更新信息,更新至少2个容器集群中的全局资源信息;
基于所述全局资源信息,同步更新至少2个容器集群中所有容器集群的配置文件。
4.根据权利要求3所述的请求调度方法,其特征在于,所述配置文件更新信息包括:
配置文件新增信息;和/或
配置文件更改信息。
5.根据权利要求1所述的请求调度方法,其特征在于,所述根据所述服务请求,从至少2个容器集群中确定主目标容器集群与容灾目标容器集群的步骤之后,所述方法还包括:
确定主目标容器集群中与所述服务请求对应的目标主服务以及目标备服务,以及容灾目标容器集群中与所述服务请求对应的容灾目标主服务以及容灾目标备服务;
所述将所述主目标容器集群中与所述服务请求对应的目标服务的第一内部域名发送至所述域名服务器,以使所述域名服务器确定与所述第一内部域名对应的IP地址的步骤包括:
根据预设负载均衡策略,从所述目标主服务和所述目标备服务中确定与所述服务请求对应的目标服务;
将所述目标服务的第一内部域名发送至所述域名服务器,以使所述域名服务器确定与所述第一内部域名对应的IP地址;
所述在监测到所述客户端与所述目标服务之间的连接断开时,将所述容灾目标容器集群中与所述服务请求对应的容灾目标服务的第二内部域名发送至所述域名服务器,以使所述域名服务器确定与所述第二内部域名对应的IP地址的步骤,包括:
在监测到所述客户端与所述目标服务之间的连接断开时,根据预设负载均衡策略,从所述容灾目标主服务和容灾目标备服务中确定与所述服务请求对应的容灾目标服务;
将所述容灾目标服务的第二内部域名发送至所述域名服务器,以使所述域名服务器确定与所述第二内部域名对应的IP地址。
6.一种请求调度方法,其特征在于,用于客户端,所述方法包括以下步骤:
向域名服务器发送服务请求,以使容器系统根据所述服务请求,从至少2个容器集群中确定主目标容器集群与容灾目标容器集群,并将所述主目标容器集群中与所述服务请求对应的目标服务的第一内部域名发送至所述域名服务器,以使所述域名服务器确定所述第一内部域名对应的IP地址;其中,所述主目标容器集群与容灾目标容器集群的配置文件一致;
接收所述第一内部域名对应的IP地址,并访问所述目标服务;
在与所述目标服务之间的连接断开之后,接收所述域名服务器发送的第二内部域名对应的IP地址,并访问所述第二内部域名对应的容灾目标容器集群中的容灾目标服务;其中,所述容灾目标服务与所述服务请求相对应。
7.一种请求调度装置,其特征在于,包括:
请求检测模块,用于监测客户端发送至域名服务器的服务请求;
集群确定模块,用于根据所述服务请求,从至少2个容器集群中确定主目标容器集群与容灾目标容器集群;其中,所述主目标容器集群与所述容灾目标容器集群的配置文件一致;
第一发送模块,用于将所述主目标容器集群中与所述服务请求对应的目标服务的第一内部域名发送至所述域名服务器,以使所述域名服务器确定与所述第一内部域名对应的IP地址;
第二发送模块,用于在监测到所述客户端与所述目标服务之间的连接断开时,将所述容灾目标容器集群中与所述服务请求对应的容灾目标服务的第二内部域名发送至所述域名服务器,以使所述域名服务器确定与所述第二内部域名对应的IP地址。
8.一种请求调度装置,其特征在于,用于客户端中,所述请求调度装置包括:
请求发送模块,用于向域名服务器发送服务请求,以使容器系统根据所述服务请求,从至少2个容器集群中确定主目标容器集群与容灾目标容器集群,并将所述主目标容器集群中与所述服务请求对应的目标服务的第一内部域名发送至所述域名服务器,以使所述域名服务器确定所述第一内部域名对应的IP地址;其中,所述主目标容器集群与容灾目标容器集群的配置文件一致;
第一接收模块,用于接收所述第一内部域名对应的IP地址,并访问所述目标服务;
第二接收模块,用于在与所述目标服务之间的连接断开之后,接收所述域名服务器发送的第二内部域名对应的IP地址,并访问所述第二内部域名对应的容灾目标容器集群中的容灾目标服务;其中,所述容灾目标服务与所述服务请求相对应。
9.一种请求调度设备,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的请求调度程序,其中,处理器执行所述请求调度程序时实现如权利要求1~6任一项所述的请求调度方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有请求调度程序,其中,处理器执行所述请求调度程序时实现如权利要求1-6任一项所述的请求调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110503214.0A CN115309497A (zh) | 2021-05-08 | 2021-05-08 | 请求调度方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110503214.0A CN115309497A (zh) | 2021-05-08 | 2021-05-08 | 请求调度方法、装置、设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115309497A true CN115309497A (zh) | 2022-11-08 |
Family
ID=83854243
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110503214.0A Pending CN115309497A (zh) | 2021-05-08 | 2021-05-08 | 请求调度方法、装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115309497A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116112437A (zh) * | 2023-02-01 | 2023-05-12 | 北京百度网讯科技有限公司 | 流量调度方法、装置、电子设备及介质 |
CN116319676A (zh) * | 2023-05-23 | 2023-06-23 | 阿里云计算有限公司 | 域名解析方法、设备、存储介质和系统 |
CN116996369A (zh) * | 2023-09-26 | 2023-11-03 | 苏州元脑智能科技有限公司 | 容器化管理服务器及其主备管理方法、装置和存储介质 |
-
2021
- 2021-05-08 CN CN202110503214.0A patent/CN115309497A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116112437A (zh) * | 2023-02-01 | 2023-05-12 | 北京百度网讯科技有限公司 | 流量调度方法、装置、电子设备及介质 |
CN116319676A (zh) * | 2023-05-23 | 2023-06-23 | 阿里云计算有限公司 | 域名解析方法、设备、存储介质和系统 |
CN116319676B (zh) * | 2023-05-23 | 2023-10-20 | 阿里云计算有限公司 | 域名解析方法、设备、存储介质和系统 |
CN116996369A (zh) * | 2023-09-26 | 2023-11-03 | 苏州元脑智能科技有限公司 | 容器化管理服务器及其主备管理方法、装置和存储介质 |
CN116996369B (zh) * | 2023-09-26 | 2024-02-09 | 苏州元脑智能科技有限公司 | 容器化管理服务器及其主备管理方法、装置和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115309497A (zh) | 请求调度方法、装置、设备以及存储介质 | |
EP2904763B1 (en) | Load-balancing access to replicated databases | |
US8073952B2 (en) | Proactive load balancing | |
CN110890980A (zh) | 一种主备终端切换方法、装置、服务器和系统 | |
CN105450757A (zh) | 一种服务管理方法及系统 | |
WO2019210580A1 (zh) | 访问请求处理方法、装置、计算机设备和存储介质 | |
CN112118315A (zh) | 数据处理系统、方法、装置、电子设备和存储介质 | |
CN110120961B (zh) | 一种分布式服务集群及其路由同步的方法 | |
CN106603692B (zh) | 一种分布式存储系统中的数据存储方法及装置 | |
CN105874433B (zh) | 用于支持分布式数据网格中的异步调用的系统和方法 | |
CN109802986B (zh) | 设备管理方法、系统、装置及服务器 | |
CN103888277A (zh) | 一种网关容灾备份方法、装置和系统 | |
CN108881379B (zh) | 一种服务器集群间数据同步的方法和装置 | |
CN109873714B (zh) | 云计算节点配置更新方法及终端设备 | |
WO2020211362A1 (zh) | 提高集群系统可用性的方法、装置和计算机设备 | |
CN114844809A (zh) | 基于网络心跳和内核磁盘心跳的多因子仲裁方法、装置 | |
CN114338670A (zh) | 一种边缘云平台和具有其的网联交通三级云控平台 | |
CN113326100A (zh) | 一种集群管理方法、装置、设备及计算机存储介质 | |
CN112631756A (zh) | 一种应用于航天测控软件的分布式调控方法及装置 | |
CN114666215B (zh) | 一种应用跨集群弹性伸缩的方法、系统、介质和电子设备 | |
US10649816B2 (en) | Elasticity engine for availability management framework (AMF) | |
CN111416726B (zh) | 一种资源管理的方法、发送端设备和接收端设备 | |
US11985072B2 (en) | Multimedia data stream processing method, electronic device, and storage medium | |
US20230353709A1 (en) | Configuring a virtualised environment in a telecommunications network | |
CN109218376B (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 |