CN113873052B - Kubernetes集群的域名解析方法、装置及设备 - Google Patents
Kubernetes集群的域名解析方法、装置及设备 Download PDFInfo
- Publication number
- CN113873052B CN113873052B CN202111026998.9A CN202111026998A CN113873052B CN 113873052 B CN113873052 B CN 113873052B CN 202111026998 A CN202111026998 A CN 202111026998A CN 113873052 B CN113873052 B CN 113873052B
- Authority
- CN
- China
- Prior art keywords
- domain name
- name resolution
- service
- resolution
- target
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000004458 analytical method Methods 0.000 claims abstract description 106
- 238000004590 computer program Methods 0.000 claims description 15
- 230000008859 change Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种Kubernetes集群的域名解析方法、装置及设备,其中方法包括:接收请求方发送的第一域名解析请求,根据预设的域名解析策略,确定署于自身的第一域名解析服务、部署于Kubernetes集群的至少一个成员节点中的第二域名解析服务和部署于Kubernetes集群的至少一个成员节点中的第三域名解析服务中,是否存在满足预设条件的目标域名解析服务;若是,则获取基于目标域名解析服务对待解析域名进行解析处理所得的解析结果信息;根据解析结果信息,向请求方发送请求结果信息。本申请实施例,提升了域名解析速率及Kubernetes集群的可用性。
Description
技术领域
本申请涉及云计算技术领域,尤其涉及一种Kubernetes集群的域名解析方法、装置及设备。
背景技术
Kubernetes,简称K8S,是用于管理云平台中多个主机上的容器化的应用。Kubernetes集群中包括多个节点,每个节点中可以提供多个服务。在Kubernetes集群中,服务之间是通过域名进行相互访问,这使得域名解析服务成为影响Kubernetes集群有效性的关键服务。当前,Kubernetes集群中是设置一个提供域名解析服务的中心服务节点,然而,随着Kubernetes集群中节点和服务的不断增加,使得域名解析请求的数量也不断增加,而这增加了该单点的中心服务节点的数据处理压力,容易出现重载失败和域名解析延迟等现象,无法满足用户的可用性需求,因而导致Kubernetes集群在一些特定环境中的使用受到了限制。
发明内容
本申请实施例的目的是提供一种Kubernetes集群的域名解析方法、装置及设备,已解决现有Kubernetes集群具有局限性,无法满足用户需求的问题。
为解决上述技术问题,本申请实施例是这样实现的:
第一方面,本申请实施例提供了一种Kubernetes集群的域名解析方法,应用于Kubernetes集群的成员节点,所述方法包括:
接收请求方发送的第一域名解析请求;其中,所述第一域名解析请求包括待解析域名;
根据预设的域名解析策略,确定Kubernetes集群的域名解析服务集合中是否存在满足预设条件的目标域名解析服务;其中,所述域名解析服务集合包括部署于自身的第一域名解析服务、部署于所述Kubernetes集群的至少一个成员节点中的第二域名解析服务和部署于所述Kubernetes集群的至少一个成员节点中的第三域名解析服务;
若是,则获取基于所述目标域名解析服务对所述待解析域名进行解析处理所得的解析结果信息;
根据所述解析结果信息,向所述请求方发送请求结果信息。
第二方面,本申请实施例提供了一种Kubernetes集群的域名解析装置,应用于Kubernetes集群的任意成员节点,所述装置包括:
存储器,用于存储域名解析策略;
处理器,用于接收请求方发送的第一域名解析请求;其中,所述第一域名解析请求包括待解析域名;根据预设的域名解析策略,确定Kubernetes集群的域名解析服务集合中是否存在满足预设条件的目标域名解析服务;若是,则获取基于所述目标域名解析服务对所述待解析域名进行解析处理所得的解析结果信息;根据所述解析结果信息,向所述请求方发送请求结果信息;其中,所述域名解析服务集合包括部署于自身的第一域名解析服务、部署于所述Kubernetes集群的至少一个成员节点中的第二域名解析服务和部署于所述Kubernetes集群的至少一个成员节点中的第三域名解析服务。
第三方面,本申请实施例提供了一种Kubernetes集群的域名解析设备,包括:处理器,与所述处理器电连接的存储器。所述存储器存储有计算机程序,所述处理器用于从所述存储器调用并执行所述计算机程序以上述第一方面所述方法的步骤。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述方法的步骤。
本申请实施例中,Kubernetes集群的成员节点在接收到请求方发送的第一域名解析请求时,根据预设的域名解析策略,确定Kubernetes集群的域名解析服务集合中是否存在满足预设条件的目标域名解析服务;若是,则获取基于目标域名解析服务对待解析域名进行解析处理所得的解析结果信息;根据所述解析结果信息,向请求方发送请求结果信息;其中,域名解析服务集合包括部署于自身的第一域名解析服务、部署于Kubernetes集群的至少一个成员节点中的第二域名解析服务和部署于Kubernetes集群的至少一个成员节点中的第三域名解析服务。由此,通过在每个成员节点本地部署第一域名解析服务,并在Kubernetes集群的至少一个成员节点中部署第二域名解析服务和第三域名解析服务,使得Kubernetes集群可以基于三套相互独立的域名解析服务进行域名解析处理,不仅极大的提升了域名解析请求的吞吐量,提升了域名解析速率,解决了现有的单点中心服务易出现重载失败和域名解析延迟的问题;而且提升了Kubernetes集群的整体可用性和稳定性,能够满足特定场景的可用性需求,丰富了Kubernetes集群的应用场景。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例提供的一种Kubernetes集群的域名解析方法的第一种流程示意图;
图2为本说明书实施例提供的一种Kubernetes集群的域名解析方法的第二种流程示意图;
图3为本说明书实施例提供的一种Kubernetes集群的域名解析方法的第三种流程示意图;
图4为本说明书实施例提供的一种Kubernetes集群的域名解析方法的第四种流程示意图;
图5为本说明书实施例提供的一种Kubernetes集群的域名解析方法的第五种流程示意图;
图6为本说明书实施例提供的一种Kubernetes集群的域名解析方法的第六种流程示意图;
图7为本说明书实施例提供的一种Kubernetes集群的域名解析方法的第七种流程示意图;
图8为本说明书实施例提供的一种Kubernetes集群的域名解析装置的模块组成示意图;
图9为本说明书实施例提供的一种Kubernetes集群的域名解析设备的组成示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
图1为本说明书一个或多个实施例提供一种Kubernetes集群的域名解析方法的流程示意图,参见图1,该方法具体可以包括如下步骤:
步骤102,接收请求方发送的第一域名解析请求;其中,第一域名解析请求包括待解析域名;
具体而言,Kubernetes集群包括多个成员节点,该成员节点可以包括主节点(Master),以及与主节点通信连接的多个计算节点(Node);其中,主节点可以管理和控制多个计算节点,计算节点可以是工作负载节点。本申请实施例提供的Kubernetes集群的域名解析方法可以应用于Kubernetes集群的任意一个成员节点。可选的,接收客户端发送的第一域名解析请求,或者接收Kubernetes集群中的其他成员节点发送的第一域名解析请求。第一域名解析请求可以包括待解析域名、待解析域名对应的业务信息等,业务信息例如业务类型、业务标识等。
步骤104,根据预设的域名解析策略,确定Kubernetes集群的域名解析服务集合中是否存在满足预设条件的目标域名解析服务;其中,Kubernetes集群的域名解析服务集合包括部署于自身的第一域名解析服务、部署于Kubernetes集群的至少一个成员节点中的第二域名解析服务和部署于Kubernetes集群的至少一个成员节点中的第三域名解析服务;
为了提升Kubernetes集群的可用性,避免单点域名解析服务的延时、可用性低等问题,本申请实施例中,预先在Kubernetes集群中部署域名解析服务总集,该域名解析服务总集包括在每个成员节点中部署的第一域名解析服务、在Kubernetes集群的至少一个成员节点中部署的第二域名解析服务、以及在Kubernetes集群的至少一个成员节点中部署的第三域名解析服务。由于对于每个成员节点而言,部署于其他成员节点中的第一域名解析服务不可用,因此,对于每个成员来说,将部署于自身的第一域名解析服务、部署于Kubernetes集群的至少一个成员节点中的第二域名解析服务和部署于Kubernetes集群的至少一个成员节点中的第三域名解析服务确定为所在Kubernetes集群的域名解析服务集合。其中,第一域名解析服务基于所在成员节点本地的指定缓存中的域名解析数据进行域名解析处理;第二域名解析服务基于预设的Kubernetes集群的内部域名的域名解析数据进行域名解析处理;第三域名解析服务基于预设的Kubernetes集群的内部域名和自定义域名的域名解析数据进行域名解析处理。自定义域名为实际应用中,根据业务需求等自行定义的域名。域名解析数据包括域名和与该域名对应的地址信息。
可以理解的是,对于Kubernetes集群(例如包括Node节点1至Node节点6)的某个成员节点(例如Node节点1,为便于描述以下将其称为当前成员节点)而言,其中部署有第一域名解析服务,还可能部署有第二域名解析服务和/或第三域名解析服务;当该当前成员节点接收到请求方发送的第一域名解析请求时,通过当前成员节点中部署的业务Pod根据预设的域名解析策略,确定部署于当前成员节点中的第一域名解析服务、部署于Kubernetes集群的至少一个成员节点(例如Node节点1、Node节点2、Node节点3和Node节点5)中的第二域名解析服务、部署于Kubernetes集群的至少一个成员节点(例如Node节点3、Node节点4和Node节点6)的第三域名解析服务中,是否存在满足预设条件的目标域名解析服务。
步骤106,若是,则获取基于目标域名解析服务对待解析域名进行解析处理所得的解析结果信息;
步骤108,根据解析结果信息,向请求方发送请求结果信息。
可选的,将获取到的解析结果信息确定为请求结果信息,将请求结果信息发送给请求方;或者,根据获取到的解析结果信息,生成预设格式的请求结果信息,将该请求结果信息发送给请求方。其中,预设格式可以在实际应用中根据需要自行设定。
本申请实施例中,Kubernetes集群的成员节点在接收到请求方发送的第一域名解析请求时,根据预设的域名解析策略,确定Kubernetes集群的域名解析服务集合中是否存在满足预设条件的目标域名解析服务;若是,则获取基于目标域名解析服务对待解析域名进行解析处理所得的解析结果信息;根据所述解析结果信息,向请求方发送请求结果信息;其中,Kubernetes集群的域名解析服务集合包括部署于自身的第一域名解析服务、部署于Kubernetes集群的至少一个成员节点中的第二域名解析服务和部署于Kubernetes集群的至少一个成员节点中的第三域名解析服务。由此,通过在每个成员节点本地部署第一域名解析服务,并在Kubernetes集群的至少一个成员节点中部署第二域名解析服务和第三域名解析服务,使得Kubernetes集群可以基于三套相互独立的域名解析服务进行域名解析处理,不仅极大的提升了域名解析请求的吞吐量,提升了域名解析速率,解决了现有的单点中心服务器易出现重载失败和域名解析延迟的问题;而且提升了Kubernetes集群的整体可用性和稳定性,能够满足特定场景的可用性需求,丰富了Kubernetes集群的应用场景。
本申请实施例中,还可以根据业务需求预先在Kubernetes集群的每个成员节点中部署至少一个业务Pod(容器组),通过每个业务Pod对相应业务的域名解析进行相关处理。即通过业务Pod执行上述步骤102至步骤108。具体的,如图2所示,步骤102可以包括以下步骤102-2:
步骤102-2,通过部署于自身的业务Pod接收请求方发送的第一域名解析请求;其中,第一域名解析请求包括待解析域名。
为了确保各域名解析服务能够有序的进行域名解析处理,本申请一个或多个实施例中,预先设定各域名解析服务之间的优先级信息,并通过业务Pod基于该优先级信息确定目标域名解析服务。具体的,如图2所示,步骤104可以包括以下步骤104-2:
步骤104-2,通过与第一域名解析请求对应的业务Pod,根据预设的域名解析服务的优先级信息,顺序确定第一域名解析服务、各第二域名解析服务和各第三域名解析服务中,是否存在满足预设条件的目标域名解析服务。
与上述步骤102-2和步骤104-2对应的,如图2所示,步骤106可以包括以下步骤1062,步骤108可以包括以下步骤1082:
步骤1062,若是,则通过与第一域名解析请求对应的业务Pod,获取基于目标域名解析服务对待解析域名进行解析处理所得的解析结果信息;
步骤1082,通过与第一域名解析请求对应的业务Pod,根据解析结果信息向请求方发送请求结果信息。
考虑到第一域名解析服务对应的域名解析数据要少于第二域名解析服务对应的域名解析数据,第二域名解析服务对应的域名解析数据少于第三域名解析服务对应的域名解析数据。为了提升域名解析效率,同时避免各待解析域名集中于第三域名解析服务,本申请一个或多个实施例中,可以设定第一域名解析服务的优先级高于第二域名解析服务的优先级,第二域名解析服务的优先级高于第三域名解析服务的优先级。相应的,如图3所示,步骤104-2可以包括以下步骤104-22和步骤104-26,步骤106可以包括以下步骤1064:
步骤104-22,通过与第一域名解析请求对应的业务Pod,确定部署于自身的第一域名解析服务是否处于服务状态;是则将部署于自身的第一域名解析服务确定为满足预设条件的目标域名解析服务,执行步骤1064;否则执行步骤104-24;
其中,通过与第一域名解析请求对应的业务Pod,确定部署于自身的第一域名解析服务是否处于服务状态,可以包括:通过确定的部署于自身的与第一域名解析请求对应的业务Pod,向部署于自身的第一域名解析服务发送指定消息,并确定在预设时长内是否接收到第一域名解析服务发送的响应数据;若是,则确定第一域名解析服务处于服务状态;若否,则确定第一域名解析服务未处于服务状态。
需要指出的是,本申请实施例中的每个业务Pod和每个域名解析服务,可以分别对应一个虚拟机,因此,业务Pod与域名解析服务之间、域名解析服务与域名解析服务之间可以直接进行数据通信。
步骤104-24,通过与第一域名解析请求对应的业务Pod,获取每个第二域名解析服务的调配参数,根据获取的调配参数确定各第二域名解析服务中是否存在满足预设条件的目标域名解析服务;是则执行步骤1064,否则执行步骤104-26;
可选地,本申请一个或多个实施例中,调配参数可以包括服务状态信息。相应的,获取每个第二域名解析服务的调配参数,根据获取的调配参数确定各第二域名解析服务中是否存在满足预设条件的目标域名解析服务,可以包括:获取每个第二域名解析服务的服务状态信息,根据获取的服务状态信息,确定第二域名解析服务中是否存在处于服务状态的第二域名解析服务;若否,则确定不存在满足预设条件的目标域名解析服务;若是,则根据预设的调配方式,从处于服务状态的第二域名解析服务中确定目标域名解析服务。
其中,根据预设的调配方式,从处于服务状态的第二域名解析服务中确定目标域名解析服务,可以包括:确定处于服务状态的第二域名解析服务的数量;若确定的数量为一个,则将相应的第二域名解析服务确定为满足预设条件的目标域名解析服务;若确定的数量为多个,则根据预设的第二域名解析服务的相关信息,获取该多个第二域名解析服务的负载数据,对获取的负载数据进行排序处理得到最小负载数据,并将该最小负载数据对应的第二域名解析服务确定为满足预设条件的目标域名解析服务;或者,若确定的数量为多个,则从该多个第二域名解析服务中随机选择一个并确定为目标域名解析服务。
本申请一个或多个实施例中,调配参数还可以包括服务状态信息和负载数据。相应的,获取每个第二域名解析服务的调配参数,根据获取的调配参数确定各第二域名解析服务中是否存在满足预设条件的第二域名解析服务,可以包括:获取每个第二域名解析服务的服务状态信息,根据获取的服务状态信息确定是否存在处于服务状态的第二域名解析服务;如否,则确定第二域名解析服务中不存在满足预设条件的第二域名解析服务;若是,则获取处于服务状态的第二域名解析服务的负载数据,对获取的负载数据进行排序处理,得到最小负载数据。确定最小负载数据是否大于预设的负载阈值,若是,则确定第二域名解析服务中不存在满足预设条件的第二域名解析服务;若否,则将该最小负载数据对应的第二域名解析服务,确定为满足预设条件的目标域名解析服务。
步骤104-26,通过与第一域名解析请求对应的业务Pod,获取每个第三域名解析服务的调配参数,根据获取的调配参数确定各第三域名解析服务中是否存在满足预设条件的目标域名解析服务,是则执行步骤1064,否则向请求方发送请求失败信息。
步骤104-26的具体实现过程,与前述步骤104-24的实现过程相似,可参见前述相关描述,重复之处这里不再赘述。
步骤1064,通过与第一域名解析请求对应的业务Pod,获取基于目标域名解析服务对待解析域名进行解析处理所得的解析结果信息。
由此,基于预设的优先级信息,依次确定第一域名解析服务、第二域名解析服务、第三域名解析服务中是否存在满足预设条件的目标域名解析服务;在确保了待解析域名能够被有效解析的情况下,保障了各域名解析服务的有效及有序运行;有利于提升Kubernetes集群的可用性和稳定性。
进一步的,由于第一域名解析服务、第二域名解析服务和第三域名解析服务对应的域名解析数据不同,为了确保待解析域名能够被有效的解析,本申请一个或多个实施例中,当目标域名解析服务对待解析域名解析失败时,还可以通过其他域名解析服务对待解析域名进行解析处理。具体的,如图4所示,步骤106可以包括以下步骤106-2至步骤106-8:
步骤106-2,若是且确定目标域名解析服务为第一域名解析服务,则基于第一域名解析服务根据指定缓存中的处于有效状态的域名解析数据对待解析域名进行解析处理;
具体的,若通过与第一域名解析请求对应的业务Pod确定存在目标域名解析服务、且确定目标域名解析服务为第一域名解析服务,则通过与第一域名解析请求对应的业务Pod向第一域名解析服务发送第二域名解析请求;第一域名解析服务接收到第二域名解析请求时,根据指定缓存中的处于有效状态的域名解析数据对所述待解析域名进行解析处理。其中,第二域名解析请求可以包括待解析域名、该与第一域名解析请求对应的业务Pod的Pod标识、待解析域名对应的业务信息等。指定缓存中的域名解析数据为先前根据从第二域名解析服务和/或第三域名解析服务所获取的解析结果信息所生成,可参见后文的相关描述。
进一步的,考虑到该指定缓存的存储空间有限,为了实现对该指定缓存的有效管理,本申请一个或多个实施例中,预先设定指定缓存中的域名解析数据的失效条件,相应的,方法还可以包括:
基于部署于自身的第一域名解析服务检测指定缓存中处于有效状态的域名解析数据中,是否存在满足失效条件的目标域名解析数据;若是,则对目标域名解析数据进行状态变更处理,以使目标域名解析数据处于无效状态。其中,失效条件可以在实际应用中根据需要自行设定,例如失效条件为保存时长到达预设时长等,预设时长例如为2分钟。
进一步的,为了及时的释放指定缓存的存储空间,本申请一个或多个实施例中,还可以预先设定数据清除条件,相应的,方法还可以包括:
若基于部署于自身的第一域名解析服务确定满足预设的数据清除条件,则对指定缓存中处于无效状态的域名解析数据进行清除处理。其中,数据清除条件可以在实际应用中根据需要自行设定,例如,数据清除条件为到达预设的时间点,预设的时间点例如为每日凌晨等。
步骤106-4,若解析成功,则将解析处理得到的待解析域名所对应的地址信息确定为解析结果信息,执行步骤108;
具体的,当第一域名解析服务对待解析域名解析成功时,将解析处理得到的待解析域名所对应的地址信息确定为解析结果信息,并将解析结果信息发送给第二域名解析请求中的Pod标识所对应的业务Pod,以使该业务Pod根据解析结果信息,向请求方发送请求结果信息。
步骤106-6,若解析失败且基于第一域名解析服务确定第二域名解析服务中存在满足预设条件的目标第二域名解析服务,则根据待解析域名向目标第二域名解析服务发送第三域名解析请求,以使目标第二域名解析服务根据预设的Kubernetes集群的内部域名的域名解析数据,对待解析域名进行解析处理得到解析结果信息;
具体的,若解析失败,则基于第一域名解析服务确定各第二域名解析服务中是否存在满足预设条件的目标第二域名解析服务,若存在目标第二域名解析服务,则通过第一域名解析服务根据待解析域名向目标第二域名解析服务发送第三域名解析请求。其中,第三域名解析请求中可以包括待解析域名、第一域名解析服务的服务信息(例如服务标识等)、待解析域名对应的业务信息等。其中,基于第一域名解析服务确定各第二域名解析服务中是否存在满足预设条件的目标第二域名解析服务,可以包括:基于第一域名解析服务获取每个第二域名解析服务的调配参数,根据获取的调配参数确定各第二域名解析服务中是否存在满足预设条件的目标第二域名解析服务。
其中,根据获取的调配参数确定各第二域名解析服务中是否存在满足预设条件的目标第二域名解析服务的实现过程,与前述根据获取的调配参数确定是否存在满足预设条件的目标域名解析服务的过程相同,可参见前述相关描述,重复之处这里不再赘述。
进一步的,当目标第二域名解析服务接收到第三域名解析请求时,根据预设的Kubernetes集群的内部域名的域名解析数据,对待解析域名进行解析处理;若解析成功,则根据解析得到的地址信息,向第三域名解析请求中的服务信息所对应的第一域名解析服务发送解析结果信息;若解析失败、且通过目标第二域名解析服务确定第三域名解析服务中存在满足预设条件的目标第三域名解析服务,则通过目标第二域名解析服务根据待解析域名向目标第三域名解析服务发送第四域名解析请求,以使目标第三域名解析服务根据预设的Kubernetes集群的内部域名和自定义域名的域名解析数据,对待解析域名进行解析处理得到解析结果信息并发送给目标第二域名解析服务;目标第二域名解析服务将接收到的解析结果信息,发送给相应的第一域名解析服务。其中,第四域名解析请求可以包括待解析域名、目标第二域名解析服务的服务信息、待解析域名对应的业务信息等。
进一步的,当目标第三域名解析服务接收到第四域名解析请求时,根据预设的Kubernetes集群的内部域名和自定义域名的域名解析数据,对待解析域名进行解析处理;若解析成功,则根据解析得到的地址信息,向第四域名解析请求中的服务信息所对应的目标第二域名解析服务发送解析结果信息;若解析失败,则通过指定的外部域名解析服务对待解析域名进行解析处理,并根据得到的地址信息,向第三域名解析请求中的服务信息所对应的目标第二域名解析服务发送解析结果信息。其中,外部域名解析服务可以在实际应用中根据需要自行设定,外部域名解析服务可以部署于目标第三域名解析服务所在的成员节点中,也可以部署于Kubernetes集群的其他成员节点中。
步骤106-8,通过第一域名解析服务接收目标第二域名解析服务发送的解析结果信息。
考虑到指定缓存中的处于无效状态的域名解析数据,虽然是处于无效状态,但依然是准确的。因此,为了提升域名解析速率,本申请一个或多个实施例中,在基于指定缓存中的处于有效状态的域名解析数据对待解析域名解析失败且确定不存在目标第二域名解析服务时,还可以基于指定缓存中的处于无效状态的域名解析数据进行解析处理。具体的,方法还可以包括:
若基于第一域名解析服务根据指定缓存中的处于有效状态的域名解析数据对待解析域名解析失败、且确定不存在目标第二域名解析服务,则基于第一域名解析服务根据指定缓存中的处于无效状态的域名解析数据对待解析域名进行解析处理;若解析成功,则将解析处理得到的待解析域名所对应的地址信息确定为解析结果信息。
进一步的,为了确保待解析域名能够有效的被解析,以满足用户的域名解析需求,本申请一个或多个实施例中,当基于指定缓存中的处于无效状态的域名解析数据解析失败时,还可以通过第三域名解析服务对待解析域名进行解析处理。具体的,方法还可以包括:
若基于第一域名解析服务根据指定缓存中的处于无效状态的域名解析数据对待解析域名解析失败、且基于第一域名解析服务确定第三域名解析服务中存在满足预设条件的目标第三域名解析服务,则根据待解析域名等向目标第三域名解析服务发送第三域名解析请求,以使目标第三域名解析服务根据预设的Kubernetes集群的内部域名和自定义域名的域名解析数据,对待解析域名进行解析处理得到解析结果信息;以及,接收目标第三域名解析服务发送的解析结果信息。
具体的,若基于第一域名解析服务根据指定缓存中的处于无效状态的域名解析数据对待解析域名解析失败,则基于第一域名解析服务确定各第三域名解析服务中是否存在满足预设条件的目标第三域名解析服务,若存在目标第三域名解析服务,则通过第一域名解析服务根据待解析域名等信息向目标第三域名解析服务发送第三域名解析请求。其中,基于第一域名解析服务确定各第三域名解析服务中是否存在满足预设条件的目标第三域名解析服务,可以包括:基于第一域名解析服务获取每个第三域名解析服务的调配参数,根据获取的调配参数确定各第三域名解析服务中是否存在满足预设条件的目标第三域名解析服务。
需要指出的是,根据获取的调配参数确定各第三域名解析服务中是否存在满足预设条件的目标第三域名解析服务的实现过程,与前述根据获取的调配参数确定是否存在满足预设条件的目标域名解析服务的过程相同,可参见前述相关描述,重复之处这里不再赘述。
由此,当第一域名解析服务为目标域名解析服务时,首先基于指定缓存中的处于有效状态的域名解析数据对待解析域名进行解析处理,并在解析处理失败且确定存在目标第二域名解析服务时,通过目标第二域名解析服务对待解析域名进行处理。以及,在解析处理失败且确定不存在目标第二域名解析服务时,基于指定缓存中的处于无效状态的域名解析数据对待解析域名进行解析处理,并在解析失败且确定存在目标第三域名解析数据时,通过目标第三域名解析服务对待解析服务进行解析处理。如此优先基于指定缓存中的域名解析数据进行解析处理,能够在确保待解析域名被有效的解析的基础上,尽可能的减少与其他域名解析服务之间的数据通信,从而提升解析效率。
进一步的,本申请一个或多个实施例中,通过业务Pod确定的目标域名解析服务还可以是第二域名解析服务,相应地,如图5所示,步骤106可以包括以下步骤106-10至步骤106-12:
步骤106-10,若是且确定目标域名解析服务为第二域名解析服务,则通过与第一域名解析请求对应的业务Pod,根据待解析域名向目标域名解析服务发送第二域名解析请求,以使目标域名解析服务根据预设的Kubernetes集群的内部域名的域名解析数据,对待解析域名进行解析处理;并在解析成功时,向该业务Pod发送表征解析成功的解析结果信息;以及在解析失败时,若确定第三域名解析服务中存在满足预设条件的目标第三域名解析服务,则将从目标第三域名解析服务获取的解析结果信息发送给该业务Pod;
其中,目标域名解析服务根据第二域名解析请求的处理过程,与前述目标第二域名解析服务根据第三域名解析请求的处理过程相同,可参见前述相关描述,重复之处这里不再赘述。
步骤106-12,通过与第一域名解析请求对应的业务Pod接收目标域名解析服务发送的解析结果信息。
进一步的,本申请一个或多个实施例中,通过业务Pod确定的目标域名解析服务还可以是第三域名解析服务,相应地,如图6所示,步骤106可以包括以下步骤106-14至步骤106-16:
步骤106-14,若是且确定目标域名解析服务为第三域名解析服务,则通过与第一域名解析请求对应的业务Pod,根据待解析域名向目标域名解析服务发送第二域名解析请求,以使目标域名解析服务根据预设的Kubernetes集群的内部域名和自定义域名的域名解析数据,对待解析域名进行解析处理;并在解析成功时,向该业务Pod发送表征解析成功的解析结果信息;以及在解析失败时,基于指定的外部域名解析服务对待解析域名进行解析处理,并将得到的解析结果信息发送给该业务Pod;
其中,目标域名解析服务根据第二域名解析请求的处理过程,与前述目标第三域名解析服务根据第四域名解析请求的处理过程相同,可参见前述相关描述,重复之处这里不再赘述。
步骤106-16,通过与第一域名解析请求对应的业务Pod接收目标域名解析服务发送的解析结果信息。
由此,各域名解析服务接收到域名解析请求时,基于相应的域名解析数据对待处理域名进行解析处理,确保了待解析域名能够被有效的解析,提升了Kubernetes集群的可用性,能够满足用户的域名解析需求。
进一步的,为了使指定缓存中的域名解析数据能够被有效更新,从而在当前成员节点再次接收到第一域名请求且目标域名解析服务是第一域名解析服务时,可以根据指定缓存中的域名解析数据进行解析处理,本申请一个或多个实施例中,上述步骤106-8之后,均可以包括:
若通过第一域名解析服务根据接收到的解析结果信息确定待解析域名解析成功,则从解析结果信息中获取待解析域名对应的地址数据;根据待解析域名和地址数据生成待解析域名的域名解析数据,将生成的域名解析数据保存至第一域名解析服务对应的指定缓存中。
进一步的,当当前成员节点中部署有第二域名解析服务时,方法还可以包括以下步骤110至步骤116:
步骤110,若通过部署于自身的第二域名解析服务接收到其他成员节点发送的第二域名解析请求或第三域名解析请求,则基于部署于自身的第二域名解析服务,根据预设的Kubernetes集群的内部域名的域名解析数据,对第二域名解析请求中的待解析域名进行解析处理;
具体的,若通过第二域名解析服务接收到其他成员节点中的业务Pod发送的第二域名解析请求;或者,若通过第二域名解析服务接收到其他成员节点中的第一域名解析服务发送的第三域名解析请求,则基于第二域名解析服务,根据预设的Kubernetes集群的内部域名的域名解析数据,对第二域名解析请求中的待解析域名进行解析处理。
步骤112,若解析成功,则通过部署于自身的第二域名解析服务根据解析处理得到的地址数据向该其他成员节点发送表征解析成功的解析结果信息;
具体的,若解析成功,则部署于自身的第二域名解析服务根据解析处理得到的地址数据向该其他成员节点中的业务Pod或第一域名解析服务发送表征解析成功的解析结果信息。
步骤114,若解析失败且基于部署于自身的第二域名解析服务确定第三域名解析服务中存在满足预设条件的目标第三域名解析服务,则通过第二域名解析服务根据待解析域名,向目标第三域名解析服务发送第四域名解析请求;
步骤116,通过第二域名解析服务接收目标第三域名解析服务发送的解析结果信息,并将接收到的解析结果信息发送给该其他成员节点。
具体的,通过第二域名解析服务将接收到的解析结果信息发送给该其他成员节点中的业务Pod或第一域名解析服务。
进一步的,当当前成员节点中部署有第三域名解析服务时,方法还可以包括以下步骤118至步骤122:
步骤118,若通过部署于自身的第三域名解析服务接收到其他成员节点发送的第二域名解析请求或第三域名解析请求或第四域名解析请求,则基于部署于自身的第三域名解析服务,根据预设的Kubernetes集群的内部域名和自定义域名的域名解析数据,对接收到的域名解析请求中的待解析域名进行解析处理;
具体的,若通过部署于自身的第三域名解析服务接收到其他成员节点中的业务Pod发送的第二域名解析请求;或者,若通过部署于自身的第三域名解析服务接收到其他成员节点中的第一域名解析服务发送的第三域名解析请求;或者,若通过部署于自身的第三域名解析服务接收到其他成员节点中的第二域名解析服务发送的第四域名解析请求,则基于部署于自身的第三域名解析服务,根据预设的Kubernetes集群的内部域名和自定义域名的域名解析数据,对接收到的域名解析请求中的待解析域名进行解析处理。
步骤120,若解析成功,则通过部署于自身的第三域名解析服务根据解析处理得到的地址数据向该其他成员节点发送表征解析成功的解析结果信息;
具体的,若解析成功,则通过部署于自身的第二域名解析服务根据解析处理得到的地址数据向该其他成员节点中的业务Pod、或者第一域名解析服务、或者第二域名解析服务发送表征解析成功的解析结果信息。
步骤122,若解析失败,则基于指定的外部域名解析服务对接收到的域名解析请求中的待解析域名进行解析处理得到解析结果信息,并通过部署于自身的第三域名解析服务将解析结果信息发送给该其他成员节点。
具体的,通过部署于自身的第三域名解析服务将得到的解析结果信息发送给该其他成员节点中的业务Pod、或者第一域名解析服务、或者第二域名解析服务。
其中,步骤110至步骤122的具体实现过程可参见前述相关描述,重复之处这里不再赘述。
进一步的,为了便于理解本申请实施例提供的Kubernetes集群的域名解析方法,以下从第一域名解析请求对应的业务Pod、第一域名解析服务、目标第二域名解析服务、目标第三域名解析服务的角度对该方法进行描述;如图7所示,可以包括以下步骤202至步骤224:
步骤202,业务Pod接收第一域名解析请求,若根据预设的域名解析策略确定目标域名解析服务为自身所在成员节点中的第一域名解析服务,则根据待解析域名向第一域名解析服务发送第二域名解析请求:
步骤204,第一域名解析服务根据第二域名解析请求对待解析域名进行解析处理,若解析成功,则向业务Pod发送表征解析成功的解析结果信息;若解析失败,则根据待解析域名向确定的目标第二域名解析服务发送第三域名解析请求;
步骤206,目标第二域名解析服务根据第三域名解析请求对待解析域名进行解析处理,若解析成功,则向第一域名解析服务发送表征解析成功的解析结果信息,执行步骤212;若解析失败,则根据待解析域名向确定的目标第三域名解析服务发送第四域名解析请求,执行步骤208;
步骤208,目标第三域名解析服务根据第四域名解析请求对待解析域名进行解析处理,并向目标第二域名解析服务发送解析结果信息;
步骤210,目标第二域名解析服务向第一域名解析服务发送接收到的解析结果信息;
具体的,目标第二域名解析服务将目标第三域名解析服务发送的解析结果信息发送给第一域名解析服务。
步骤212,第一域名解析服务向业务Pod发送接收到的解析结果信息;
步骤214,业务Pod接收第一域名解析请求,若根据预设的域名解析策略确定目标域名解析服务为目标第二域名解析服务,则根据待解析域名向目标第二域名解析服务发送第二域名解析请求:
步骤216,目标第二域名解析服务根据第二域名解析请求对待解析域名进行解析处理,若解析成功,则向目标业务Pod发送表征解析成功的解析结果信息;若解析失败,则根据待解析域名向确定的目标第三域名解析服务发送第四域名解析请求,执行步骤218;
步骤218,目标第三域名解析服务根据第四域名解析请求对待解析域名进行解析处理,并向目标第二域名解析服务发送解析结果信息;
步骤220,目标第二域名解析服务向业务Pod发送接收到的解析结果信息;
步骤222,业务Pod接收第一域名解析请求,若根据预设的域名解析策略确定目标域名解析服务为目标第三域名解析服务,则根据待解析域名向目标第三域名解析服务发送第二域名解析请求:
步骤224,目标第三域名解析服务根据第二域名解析请求对待解析域名进行解析处理,并向业务Pod发送解析结果信息。
当业务Pod接收到解析结果信息时,根据该解析结果信息向对应的请求方发送请求结果信息。
需要指出的,业务Pod确定的目标第二域名解析服务,与第一域名解析服务确定的目标第二域名解析服务可能相同也可能不同;业务Pod确定的目标第三域名解析服务,与第二域名解析服务确定的目标第三域名解析服务可能相同也可能不同。图7仅用于示意而不用于限定,方法还可以包括其他操作步骤。步骤202至步骤224的具体实现过程可参见前述相关描述,重复之处这里不再赘述。
本申请一个或多个实施例中,Kubernetes集群的成员节点在接收到请求方发送的第一域名解析请求时,根据预设的域名解析策略,确定Kubernetes集群的域名解析服务集合中是否存在满足预设条件的目标域名解析服务;若是,则获取基于目标域名解析服务对待解析域名进行解析处理所得的解析结果信息;根据所述解析结果信息,向请求方发送请求结果信息;其中,域名解析服务集合包括部署于自身的第一域名解析服务、部署于Kubernetes集群的至少一个成员节点中的第二域名解析服务和部署于Kubernetes集群的至少一个成员节点中的第三域名解析服务。由此,通过在每个成员节点本地部署第一域名解析服务,并在Kubernetes集群的至少一个成员节点中部署第二域名解析服务和第三域名解析服务,使得Kubernetes集群可以基于三套相互独立的域名解析服务进行域名解析处理,不仅极大的提升了域名解析请求的吞吐量,提升了域名解析速率,解决了现有的单点中心服务易出现重载失败和域名解析延迟的问题;而且提升了Kubernetes集群的整体可用性和稳定性,能够满足特定场景的可用性需求,丰富了Kubernetes集群的应用场景。
基于相同的技术构思,本说明书一个或多个实施例还提供了一种Kubernetes集群的域名解析装置,应用于Kubernetes集群的任意成员节点。图8本说明书一个或多个实施例提供的一种Kubernetes集群的域名解析装置的模块组成示意图,如图8所示,该装置包括:
存储器301,用于存储域名解析策略;
处理器302,用于接收请求方发送的第一域名解析请求;其中,所述第一域名解析请求包括待解析域名;根据预设的域名解析策略,确定Kubernetes集群的域名解析服务集合中是否存在满足预设条件的目标域名解析服务;若是,则获取基于所述目标域名解析服务对所述待解析域名进行解析处理所得的解析结果信息;根据所述解析结果信息,向所述请求方发送请求结果信息;其中,所述域名解析服务集合包括部署于自身的第一域名解析服务、部署于所述Kubernetes集群的至少一个成员节点中的第二域名解析服务和部署于所述Kubernetes集群的至少一个成员节点中的第三域名解析服务。
可选地,处理器302具体用于:通过部署于自身的业务Pod接收请求方发送的第一域名解析请求;以及,通过所述业务Pod,根据预设的各域名解析服务的优先级信息,顺序确定所述第一域名解析服务、所述第二域名解析服务和所述第三域名解析服务中,是否存在满足预设条件的目标域名解析服务。
可选地,处理器302具体用于:确定所述第一域名解析服务是否处于服务状态,若否,则获取每个所述第二域名解析服务的调配参数,根据获取的所述调配参数确定各所述第二域名解析服务中是否存在满足所述预设条件的目标域名解析服务;
若否,则获取每个所述第三域名解析服务的所述调配参数,根据获取的所述调配参数确定各所述第三域名解析服务中是否存在满足所述预设条件的目标域名解析服务。
可选地,处理器302具体用于:
若是且确定所述目标域名解析服务为所述第一域名解析服务,则基于所述第一域名解析服务根据指定缓存中的处于有效状态的域名解析数据对所述待解析域名进行解析处理;
若解析成功,则将解析处理得到的所述待解析域名所对应的地址信息确定为解析结果信息;
若解析失败且基于所述第一域名解析服务确定所述第二域名解析服务中存在满足所述预设条件的目标第二域名解析服务,则根据所述待解析域名向所述目标第二域名解析服务发送第三域名解析请求,以使所述目标第二域名解析服务,根据预设的所述Kubernetes集群的内部域名的域名解析数据,对所述待解析域名进行解析处理得到解析结果信息;
通过所述第一域名解析服务接收所述目标第二域名解析服务发送的所述解析结果信息。
可选地,处理器302还用于:若解析失败且确定不存在所述目标第二域名解析服务,则基于所述第一域名解析服务根据所述指定缓存中的处于无效状态的域名解析数据对所述待解析域名进行解析处理;
若解析成功,则将解析处理得到的所述待解析域名所对应的地址信息确定为解析结果信息。
可选地,处理器302还用于:
若基于所述第一域名解析服务根据所述指定缓存中的处于无效状态的域名解析数据对所述待解析域名解析失败、且基于所述第一域名解析服务确定所述第三域名解析服务中存在满足所述预设条件的目标第三域名解析服务,则根据所述待解析域名向所述目标第三域名解析服务发送第三域名解析请求,以使所述目标第三域名解析服务,根据预设的所述Kubernetes集群的内部域名和自定义域名的域名解析数据,对所述待解析域名进行解析处理得到解析结果信息;
通过所述第一域名解析服务器接收所述目标第三域名解析服务发送的所述解析结果信息。
可选地,处理器302还用于:基于所述第一域名解析服务检测所述指定缓存中处于有效状态的域名解析数据中,是否存在满足失效条件的目标域名解析数据;
若是,则对所述目标域名解析数据进行状态变更处理,以使所述目标域名解析数据处于无效状态。
可选地,处理器302还用于:
若基于所述第一域名解析服务确定满足预设的数据清除条件,则对所述指定缓存中处于无效状态的域名解析数据进行清除处理。
可选地,处理器302具体用于:若是且确定所述目标域名解析服务为所述第二域名解析服务,则通过部署于自身的与所述第一域名解析请求对应的业务Pod,根据所述待解析域名向所述目标域名解析服务发送第二域名解析请求,以使所述目标域名解析服务根据预设的所述Kubernetes集群的内部域名的域名解析数据,对所述待解析域名进行解析处理;并在解析成功时,向所述业务Pod发送表征解析成功的解析结果信息;以及在解析失败时,若确定所述第三域名解析服务中存在满足所述预设条件的目标第三域名解析服务,则将从所述目标第三域名解析服务获取的解析结果信息发送给所述业务Pod;
通过所述业务Pod接收所述目标域名解析服务发送的所述解析结果信息。
可选地,处理器302具体用于:若是且确定所述目标域名解析服务为所述第三域名解析服务,则通过部署于自身的与所述第一域名解析请求对应的业务Pod,根据所述待解析域名向所述目标域名解析服务发送第二域名解析请求,以使所述目标域名解析服务根据预设的所述Kubernetes集群的内部域名和自定义域名的域名解析数据,对所述待解析域名进行解析处理;并在解析成功时,向所述业务Pod发送表征解析成功的解析结果信息;以及在解析失败时,基于指定的外部域名解析服务对所述待解析域名进行解析处理,并将得到的解析结果信息发送给所述业务Pod;
通过所述业务Pod接收所述目标域名解析服务发送的所述解析结果信息。
可选地,处理器302还用于:若基于所述第一域名解析服务根据接收到的所述解析结果信息确定所述待解析域名解析成功,则从所述解析结果信息中获取所述待解析域名对应的地址数据;
根据所述待解析域名和所述地址数据生成所述待解析域名的域名解析数据,将所述域名解析数据保存至所述第一域名解析服务对应的指定缓存中。
可选地,所述成员节点中部署有所述第二域名解析服务,处理器302还用于:
若通过所述第二域名解析服务接收到其他成员节点发送的第二域名解析请求或第三域名解析请求,则基于所述第二域名解析服务,根据预设的所述Kubernetes集群的内部域名的域名解析数据,对所述第二域名解析请求中的待解析域名进行解析处理;
若解析成功,则根据解析处理得到的地址数据向所述其他成员节点发送表征解析成功的解析结果信息;
若解析失败且基于所述第二域名解析服务确定所述第三域名解析服务中存在满足所述预设条件的目标第三域名解析服务,则通过所述第二域名解析服务根据待解析域名,向所述目标第三域名解析服务发送第四域名解析请求;
接收所述目标第三域名解析服务发送的解析结果信息,将接收到的所述解析结果信息发送给所述其他成员节点。
可选地,所述成员节点中部署有所述第三域名解析服务,所示处理器302还用于:
若通过所述第三域名解析服务接收到其他成员节点发送的第二域名解析请求或第三域名解析请求或第四域名解析请求,则基于所述第三域名解析服务,根据预设的所述Kubernetes集群的内部域名和自定义域名的域名解析数据,对接收到的域名解析请求中的待解析域名进行解析处理;
若解析成功,则通过所述第三域名解析服务根据解析处理得到的地址数据,向所述其他成员节点发送表征解析成功的解析结果信息;
若解析失败,则基于指定的外部域名解析服务对接收到的域名解析请求中的待解析域名进行解析处理得到解析结果信息,并通过所述第三域名解析服务将所述解析结果信息发送给所述其他成员节点。
本说明书实施例提供的Kubernetes集群的域名解析装置,在接收到请求方发送的第一域名解析请求时,根据预设的域名解析策略,确定Kubernetes集群的域名解析服务集合中是否存在满足预设条件的目标域名解析服务;若是,则获取基于目标域名解析服务对待解析域名进行解析处理所得的解析结果信息;根据所述解析结果信息,向请求方发送请求结果信息;其中,域名解析服务集合包括部署于自身的第一域名解析服务、部署于Kubernetes集群的至少一个成员节点中的第二域名解析服务和部署于Kubernetes集群的至少一个成员节点中的第三域名解析服务。由此,通过在每个成员节点本地部署第一域名解析服务,并在Kubernetes集群的至少一个成员节点中部署第二域名解析服务和第三域名解析服务,使得Kubernetes集群可以基于三套相互独立的域名解析服务进行域名解析处理,不仅极大的提升了域名解析请求的吞吐量,提升了域名解析速率,解决了现有的单点中心服务易出现重载失败和域名解析延迟的问题;而且提升了Kubernetes集群的整体可用性和稳定性,能够满足特定场景的可用性需求,丰富了Kubernetes集群的应用场景。
另外,对于上述装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。而且,应当注意的是,本发明的装置的各个部件中,根据其要实现的功能而对其中的部件进行了逻辑划分,但是,本发明不受限于此,可以根据需要对各个部件进行重新划分或者组合。
基于同样的技术构思,本申请实施例还提供了一种Kubernetes集群的域名解析设备,如图9所示。Kubernetes集群的域名解析设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器401和存储器402,存储器402中可以存储有一个或一个以上存储应用程序或数据。其中,存储器402可以是短暂存储或持久存储。存储在存储器402的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对Kubernetes集群的域名解析设备中的一系列计算机可执行指令。更进一步地,处理器401可以设置为与存储器402通信,在Kubernetes集群的域名解析设备上执行存储器402中的一系列计算机可执行指令。Kubernetes集群的域名解析设备还可以包括一个或一个以上电源403,一个或一个以上有线或无线网络接口404,一个或一个以上输入输出接口405,一个或一个以上键盘406。
具体在本实施例中,Kubernetes集群的域名解析设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对Kubernetes集群的域名解析设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
接收请求方发送的第一域名解析请求;其中,所述第一域名解析请求包括待解析域名;
根据预设的域名解析策略,确定Kubernetes集群的域名解析服务集合中是否存在满足预设条件的目标域名解析服务;其中,所述域名解析服务集合包括部署于自身的第一域名解析服务、部署于所述Kubernetes集群的至少一个成员节点中的第二域名解析服务和部署于所述Kubernetes集群的至少一个成员节点中的第三域名解析服务;
若是,则获取基于所述目标域名解析服务对所述待解析域名进行解析处理所得的解析结果信息;
根据所述解析结果信息,向所述请求方发送请求结果信息。
本申请实施例还提出了一种存储介质,该存储介质存储一个或多个计算机程序,该一个或多个计算机程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行上述Kubernetes集群的域名解析方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (15)
1.一种Kubernetes集群的域名解析方法,其特征在于,应用于Kubernetes集群的成员节点,所述方法包括:
接收请求方发送的第一域名解析请求;其中,所述第一域名解析请求包括待解析域名;
根据预设的域名解析策略,确定Kubernetes集群的域名解析服务集合中是否存在满足预设条件的目标域名解析服务;其中,所述域名解析服务集合包括部署于自身的第一域名解析服务、部署于所述Kubernetes集群的至少一个成员节点中的第二域名解析服务和部署于所述Kubernetes集群的至少一个成员节点中的第三域名解析服务;
若是,则获取基于所述目标域名解析服务对所述待解析域名进行解析处理所得的解析结果信息;
根据所述解析结果信息,向所述请求方发送请求结果信息;
所述若是,则获取基于所述目标域名解析服务对所述待解析域名进行解析处理所得的解析结果信息,包括:
若是且确定所述目标域名解析服务为所述第一域名解析服务,则基于所述第一域名解析服务根据指定缓存中的处于有效状态的域名解析数据对所述待解析域名进行解析处理;
若解析成功,则将解析处理得到的所述待解析域名所对应的地址信息确定为解析结果信息;
若解析失败且基于所述第一域名解析服务确定所述第二域名解析服务中存在满足所述预设条件的目标第二域名解析服务,则根据所述待解析域名向所述目标第二域名解析服务发送第二域名解析请求,以使所述目标第二域名解析服务,根据预设的所述Kubernetes集群的内部域名的域名解析数据,对所述待解析域名进行解析处理得到解析结果信息;
通过所述第一域名解析服务接收所述目标第二域名解析服务发送的所述解析结果信息。
2.根据权利要求1所述的方法,其特征在于,所述接收请求方发送的第一域名解析请求,包括:
通过部署于自身的业务Pod接收请求方发送的第一域名解析请求;
所述根据预设的域名解析策略,确定Kubernetes集群的域名解析服务集合中是否存在满足预设条件的目标域名解析服务,包括:
通过所述业务Pod,根据预设的各域名解析服务的优先级信息,顺序确定所述第一域名解析服务、所述第二域名解析服务和所述第三域名解析服务中,是否存在满足预设条件的目标域名解析服务。
3.根据权利要求2所述的方法,其特征在于,所述根据预设的各域名解析服务的优先级信息,顺序确定所述第一域名解析服务、所述第二域名解析服务和所述第三域名解析服务中,是否存在满足预设条件的域名解析服务,包括:
确定所述第一域名解析服务是否处于服务状态,若否,则获取每个所述第二域名解析服务的调配参数,根据获取的所述调配参数确定各所述第二域名解析服务中是否存在满足所述预设条件的目标域名解析服务;
若否,则获取每个所述第三域名解析服务的所述调配参数,根据获取的所述调配参数确定各所述第三域名解析服务中是否存在满足所述预设条件的目标域名解析服务。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若解析失败且确定不存在所述目标第二域名解析服务,则基于所述第一域名解析服务根据所述指定缓存中的处于无效状态的域名解析数据对所述待解析域名进行解析处理;
若解析成功,则将解析处理得到的所述待解析域名所对应的地址信息确定为解析结果信息。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若基于所述第一域名解析服务根据所述指定缓存中的处于无效状态的域名解析数据对所述待解析域名解析失败、且基于所述第一域名解析服务确定所述第三域名解析服务中存在满足所述预设条件的目标第三域名解析服务,则根据所述待解析域名向所述目标第三域名解析服务发送第三域名解析请求,以使所述目标第三域名解析服务,根据预设的所述Kubernetes集群的内部域名和自定义域名的域名解析数据,对所述待解析域名进行解析处理得到解析结果信息;
通过所述第一域名解析服务器接收所述目标第三域名解析服务发送的所述解析结果信息。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述第一域名解析服务检测所述指定缓存中处于有效状态的域名解析数据中,是否存在满足失效条件的目标域名解析数据;
若是,则对所述目标域名解析数据进行状态变更处理,以使所述目标域名解析数据处于无效状态。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若基于所述第一域名解析服务确定满足预设的数据清除条件,则对所述指定缓存中处于无效状态的域名解析数据进行清除处理。
8.根据权利要求1所述的方法,其特征在于,所述若是,则获取基于所述目标域名解析服务对所述待解析域名进行解析处理所得的解析结果信息,包括:
若是且确定所述目标域名解析服务为所述第二域名解析服务,则通过部署于自身的与所述第一域名解析请求对应的业务Pod,根据所述待解析域名向所述目标域名解析服务发送第二域名解析请求,以使所述目标域名解析服务根据预设的所述Kubernetes集群的内部域名的域名解析数据,对所述待解析域名进行解析处理;并在解析成功时,向所述业务Pod发送表征解析成功的解析结果信息;以及在解析失败时,若确定所述第三域名解析服务中存在满足所述预设条件的目标第三域名解析服务,则将从所述目标第三域名解析服务获取的解析结果信息发送给所述业务Pod;
通过所述业务Pod接收所述目标域名解析服务发送的所述解析结果信息。
9.根据权利要求1所述的方法,其特征在于,所述若是,则获取基于所述目标域名解析服务对所述待解析域名进行解析处理所得的解析结果信息,包括:
若是且确定所述目标域名解析服务为所述第三域名解析服务,则通过部署于自身的与所述第一域名解析请求对应的业务Pod,根据所述待解析域名向所述目标域名解析服务发送第三域名解析请求,以使所述目标域名解析服务根据预设的所述Kubernetes集群的内部域名和自定义域名的域名解析数据,对所述待解析域名进行解析处理;并在解析成功时,向所述业务Pod发送表征解析成功的解析结果信息;以及在解析失败时,基于指定的外部域名解析服务对所述待解析域名进行解析处理,并将得到的解析结果信息发送给所述业务Pod;
通过所述业务Pod接收所述目标域名解析服务发送的所述解析结果信息。
10.根据权利要求5-7任一项所述的方法,其特征在于,通过所述第一域名解析服务接收到所述解析结果信息之后,还包括:
若基于所述第一域名解析服务根据接收到的所述解析结果信息确定所述待解析域名解析成功,则从所述解析结果信息中获取所述待解析域名对应的地址数据;
根据所述待解析域名和所述地址数据生成所述待解析域名的域名解析数据,将所述域名解析数据保存至所述第一域名解析服务对应的指定缓存中。
11.根据权利要求1所述的方法,其特征在于,所述成员节点中部署有所述第二域名解析服务,所述方法还包括:
若通过所述第二域名解析服务接收到其他成员节点发送的第二域名解析请求或第三域名解析请求,则基于所述第二域名解析服务,根据预设的所述Kubernetes集群的内部域名的域名解析数据,对所述第二域名解析请求中的待解析域名进行解析处理;
若解析成功,则根据解析处理得到的地址数据向所述其他成员节点发送表征解析成功的解析结果信息;
若解析失败且基于所述第二域名解析服务确定所述第三域名解析服务中存在满足所述预设条件的目标第三域名解析服务,则通过所述第二域名解析服务根据待解析域名,向所述目标第三域名解析服务发送第四域名解析请求;
通过所述第二域名解析服务接收所述目标第三域名解析服务发送的解析结果信息,将接收到的所述解析结果信息发送给所述其他成员节点。
12.根据权利要求1所述的方法,其特征在于,所述成员节点中部署有所述第三域名解析服务,所述方法还包括:
若通过所述第三域名解析服务接收到其他成员节点发送的第二域名解析请求或第三域名解析请求或第四域名解析请求,则基于所述第三域名解析服务,根据预设的所述Kubernetes集群的内部域名和自定义域名的域名解析数据,对接收到的域名解析请求中的待解析域名进行解析处理;
若解析成功,则通过所述第三域名解析服务根据解析处理得到的地址数据,向所述其他成员节点发送表征解析成功的解析结果信息;
若解析失败,则基于指定的外部域名解析服务对接收到的域名解析请求中的待解析域名进行解析处理得到解析结果信息,并通过所述第三域名解析服务将所述解析结果信息发送给所述其他成员节点。
13.一种Kubernetes集群的域名解析装置,其特征在于,应用于Kubernetes集群的任意成员节点,所述装置包括:
存储器,用于存储域名解析策略;
处理器,用于接收请求方发送的第一域名解析请求;其中,所述第一域名解析请求包括待解析域名;根据预设的域名解析策略,确定Kubernetes集群的域名解析服务集合中是否存在满足预设条件的目标域名解析服务;若是,则获取基于所述目标域名解析服务对所述待解析域名进行解析处理所得的解析结果信息;根据所述解析结果信息,向所述请求方发送请求结果信息;其中,所述域名解析服务集合包括部署于自身的第一域名解析服务、部署于所述Kubernetes集群的至少一个成员节点中的第二域名解析服务和部署于所述Kubernetes集群的至少一个成员节点中的第三域名解析服务;若是且确定所述目标域名解析服务为所述第一域名解析服务,则基于所述第一域名解析服务根据指定缓存中的处于有效状态的域名解析数据对所述待解析域名进行解析处理;若解析成功,则将解析处理得到的所述待解析域名所对应的地址信息确定为解析结果信息;若解析失败且基于所述第一域名解析服务确定所述第二域名解析服务中存在满足所述预设条件的目标第二域名解析服务,则根据所述待解析域名向所述目标第二域名解析服务发送第三域名解析请求,以使所述目标第二域名解析服务,根据预设的所述Kubernetes集群的内部域名的域名解析数据,对所述待解析域名进行解析处理得到解析结果信息;通过所述第一域名解析服务接收所述目标第二域名解析服务发送的所述解析结果信息。
14.一种Kubernetes集群的域名解析设备,其特征在于,包括:处理器,与所述处理器电连接的存储器,所述存储器存储有计算机程序,所述处理器用于从所述存储器调用并执行所述计算机程序以上述权利要求1至12中任一项所述的方法的步骤。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1至12中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111026998.9A CN113873052B (zh) | 2021-09-02 | 2021-09-02 | Kubernetes集群的域名解析方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111026998.9A CN113873052B (zh) | 2021-09-02 | 2021-09-02 | Kubernetes集群的域名解析方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113873052A CN113873052A (zh) | 2021-12-31 |
CN113873052B true CN113873052B (zh) | 2024-01-30 |
Family
ID=78989315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111026998.9A Active CN113873052B (zh) | 2021-09-02 | 2021-09-02 | Kubernetes集群的域名解析方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113873052B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110071986A (zh) * | 2013-08-14 | 2019-07-30 | 阿里巴巴集团控股有限公司 | 一种用于域名解析的系统 |
CN111866206A (zh) * | 2020-06-24 | 2020-10-30 | 北京金山云网络技术有限公司 | 分布式域名解析方法、装置及设备 |
CN112738294A (zh) * | 2020-12-30 | 2021-04-30 | 北京百度网讯科技有限公司 | 基于区块链的域名解析方法、装置、电子设备和存储介质 |
WO2021120970A1 (zh) * | 2020-04-02 | 2021-06-24 | 聚好看科技股份有限公司 | 一种分布式本地dns系统及域名查询方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104427011B (zh) * | 2013-09-02 | 2019-03-22 | 中兴通讯股份有限公司 | 域名解析的方法和域名缓存服务器 |
-
2021
- 2021-09-02 CN CN202111026998.9A patent/CN113873052B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110071986A (zh) * | 2013-08-14 | 2019-07-30 | 阿里巴巴集团控股有限公司 | 一种用于域名解析的系统 |
WO2021120970A1 (zh) * | 2020-04-02 | 2021-06-24 | 聚好看科技股份有限公司 | 一种分布式本地dns系统及域名查询方法 |
CN111866206A (zh) * | 2020-06-24 | 2020-10-30 | 北京金山云网络技术有限公司 | 分布式域名解析方法、装置及设备 |
CN112738294A (zh) * | 2020-12-30 | 2021-04-30 | 北京百度网讯科技有限公司 | 基于区块链的域名解析方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113873052A (zh) | 2021-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3739845B1 (en) | Borrowing data storage resources in a distributed file system | |
CN108023742B (zh) | 一种应用的扩容方法、装置和系统 | |
US8069224B2 (en) | Method, equipment and system for resource acquisition | |
CN114930295A (zh) | 利用预留容量而不抑制缩放的无服务器调用分配 | |
WO2021227999A1 (zh) | 云计算服务系统和方法 | |
CN109032803B (zh) | 数据处理方法和装置、客户端 | |
CN112929408A (zh) | 动态负载均衡方法及装置 | |
CN103414657A (zh) | 一种跨数据中心的资源调度方法、超级调度中心和系统 | |
CN107172214B (zh) | 一种具有负载均衡的服务节点发现方法及装置 | |
CN114281263B (zh) | 容器集群管理系统的存储资源处理方法、系统和设备 | |
WO2017095820A1 (en) | Methods and devices for acquiring data using virtual machine and host machine | |
US20210314371A1 (en) | Network-based media processing (nbmp) workflow management through 5g framework for live uplink streaming (flus) control | |
CN106657182B (zh) | 云端文件处理方法和装置 | |
CN110764930B (zh) | 基于消息模式的请求或应答处理方法及装置 | |
EP3672203A1 (en) | Distribution method for distributed data computing, device, server and storage medium | |
CN108124021B (zh) | 网际协议ip地址获取、网站访问的方法、装置及系统 | |
CN106790354B (zh) | 一种防数据拥堵的通信方法及其装置 | |
CN114911602A (zh) | 一种服务器集群的负载均衡方法、装置、设备和存储介质 | |
WO2016000303A1 (zh) | 一种资源分配方法、系统及计算机存储介质 | |
CN113873052B (zh) | Kubernetes集群的域名解析方法、装置及设备 | |
CN111435319A (zh) | 一种集群的管理方法及装置 | |
CN115225645A (zh) | 一种服务更新方法、装置、系统和存储介质 | |
CN115134373A (zh) | 数据同步方法、装置、存储介质及电子设备 | |
CN112616143A (zh) | 一种分配通信号码的方法、装置、电子设备及存储介质 | |
CN111435320A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |