集群自动服务发现方法、装置、电子设备及可读存储介质制造方法及图纸

技术编号:39058027 阅读:20 留言:0更新日期:2023-10-12 19:51
本发明专利技术提供一种集群自动服务发现方法,包括:当监听到自定义资源发生变更时,获取所述自定义资源的对象信息;对比所述对象信息中的应用实例和独立运维平台中挂载的实例,生成实例操作列表;向所述独立运维平台发送实例操作请求,其中所述实例操作请求用于使所述独立运维平台对所述独立运维平台上挂载的实例按照所述实例操作列表进行对应操作。本发明专利技术还提供了集群自动服务发现装置、电子设备及可读存储介质。本发明专利技术通过自定义资源定义CRD以及k8s的控制器机制实现了挂载实例与自定义资源的应用实例的匹配,使得主动变更自定义资源CR时业务可以正常访问Redis Pod实例。Pod实例。Pod实例。

【技术实现步骤摘要】
集群自动服务发现方法、装置、电子设备及可读存储介质


[0001]本专利技术涉及计算机
,尤其涉及集群自动服务发现方法、装置、电子设备及可读存储介质。

技术介绍

[0002]Kubernetes(K8s)是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。
[0003]在Kubernetes中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。
[0004]当前各大云厂商都提供Kubernetes作为容器编排解决方案,实现Redis集群化部署,但是开源的解决方案无法兼容企业内部的服务发现机制,如果使用开源的k8s service方式,业务改造成本高。若不进行改造,直接使用访问router的方式,在故障或者升级场景下router Pod发生漂移的场景下由于访问入口的容器实例发生改变,但是访问入口的实例列表未自动改变,会导致业务无法正常访问Redis服务。

技术实现思路

[0005]有鉴于此,本专利技术实施例提供了一种集群自动服务发现方法、装置、电子设备及可读存储介质,以解决在采用企业内部的服务发现机制时无法正常访问redis服务的问题。
[0006]根据本专利技术的一方面,提供了一种集群自动服务发现方法,包括:
[0007]当监听到自定义资源发生变更时,获取所述自定义资源的对象信息;
[0008]对比所述对象信息中的应用实例和独立运维平台中挂载的实例,生成实例操作列表;
[0009]向所述独立运维平台发送实例操作请求,其中所述实例操作请求用于使所述独立运维平台对所述独立运维平台上挂载的实例按照所述实例操作列表进行对应操作。
[0010]本专利技术还提供了一种集群自动服务发现方法,在所述监听到自定义资源发生变更之前,还包括:
[0011]监听pod的变更事件;
[0012]当所述变更事件与自定义资源相关时,获取所述自定义资源的信息;
[0013]根据所述变更事件对所述自定义资源的信息进行变更。
[0014]根据本专利技术的另一方面,提供了一种集群自动服务发现装置,包括:
[0015]第一获取模块,用于当监听到自定义资源发生变更时,获取所述自定义资源的对象信息;
[0016]对比模块,用于对比所述对象信息中的实例和独立运维平台中挂载的实例,生成实例操作列表;
[0017]操作请求模块,用于向所述独立运维平台发送实例操作请求,其中所述实例操作请求用于使所述独立运维平台对所述独立运维平台上挂载的实例按照所述实例操作列表进行对应操作。
[0018]根据本专利技术的另一方面,提供了一种电子设备,包括:
[0019]处理器;以及
[0020]存储程序的存储器,
[0021]其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行前述任一种方法。
[0022]还提供了一种计算机可读存储介质,其中,存储有计算机指令,所述计算机指令用于使计算机执行前述任一种方法。
[0023]本申请实施例中提供的一个或多个技术方案,可以实现以下技术效果:
[0024]1、通过自定义资源定义CRD以及k8s的控制器机制实现了挂载实例与自定义资源的应用实例的匹配,使得主动变更自定义资源CR时业务可以正常访问Redis Pod实例;
[0025]2、通过监听机制,实时获取Pod的变化信息并对自定义资源进行变更,解决了pod自动变更带来的app挂载实例与实际自定义资源不一致问题。
附图说明
[0026]在下面结合附图对于示例性实施例的描述中,本专利技术的更多细节、特征和优点被公开,在附图中:
[0027]图1示出了根据本专利技术示例性实施例的一种集群自动服务发现方法的流程示意图一;
[0028]图2示出了根据本专利技术示例性实施例的一种集群自动服务发现方法步骤S110的流程示意图;
[0029]图3示出了根据本专利技术示例性实施例的一种集群自动服务发现方法的自定义控制器的示意性结构框图;
[0030]图4示出了根据本专利技术示例性实施例的一种集群自动服务发现方法的流程示意图二;
[0031]图5示出了根据本专利技术示例性实施例的一种集群自动服务发现方法的PodWatcher的示意性流程框图;
[0032]图6示出了根据本专利技术示例性实施例的一种集群自动服务发现方法的步骤S102的流程示意图;
[0033]图7示出了根据本专利技术示例性实施例的一种集群自动服务发现方法的步骤S103的流程示意图;
[0034]图8示出了根据本专利技术示例性实施例的一种集群自动服务发现装置的结构示意图一;
[0035]图9示出了根据本专利技术示例性实施例的一种集群自动服务发现装置的结构示意图二;
[0036]图10示出了能够用于实现本专利技术的实施例的示例性电子设备的结构框图。
具体实施方式
[0037]下面将参照附图更详细地描述本专利技术的实施例。虽然附图中显示了本专利技术的某些实施例,然而应当理解的是,本专利技术可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本专利技术。应当理解的是,本专利技术的附图及实施例仅用于示例性作用,并非用于限制本专利技术的保护范围。
[0038]应当理解,本专利技术的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本专利技术的范围在此方面不受限制。
[0039]本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本专利技术中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
[0040]需要注意,本专利技术中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
[0041]本专利技术实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
[0042]第一方面,一种集群自动服务发现方法,如图1所示,包括:
[0043]S110:当监听到自定义资源发生变更时,获取所述自定义资源的对象信息;
[0044]S120:对比所述对象信息中的应用实例和独立运维平台中挂载的实例,生成实例操作列表;
[004本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种集群自动服务发现方法,其特征在于,包括:当监听到自定义资源发生变更时,获取所述自定义资源的对象信息;对比所述对象信息中的应用实例和独立运维平台中挂载的实例,生成实例操作列表;向所述独立运维平台发送实例操作请求,其中所述实例操作请求用于使所述独立运维平台对所述独立运维平台上挂载的实例按照所述实例操作列表进行对应操作。2.根据权利要求1所述的集群自动服务发现方法,其特征在于:所述实例操作列表,包括删除列表、挂载列表和更新列表中的至少一种;所述对应操作,包括对所述删除列表中的实例进行的删除操作、对所述挂载列表中的实例进行的挂载操作以及对所述更新列表中的实例进行的更新操作。3.根据权利要求2所述的集群自动服务发现方法,其特征在于:所述对比所述对象信息中的实例和独立运维平台中挂载的实例,生成实例操作列表,包括:若所述对象信息中存在着至少一个在所述独立运维平台中未挂载的待挂载实例,则根据所述待挂载实例生成挂载列表;若所述独立运维平台中挂载的实例中存在着至少一个与所述对象信息中对应但不相同的待更新实例,则根据所述待更新实例生成更新列表;若所述独立运维平台中挂载的实例中存在着至少一个在所述对象信息中不存在的待删除实例,则根据所述第三实例生成删除列表。4.根据权利要求2所述的集群自动服务发现方法,其特征在于:当所述集群为迁移集群时,所述实例操作列表不生成所述删除列表,或所述删除操作不生效。5.根据权利要求1任一项所述的集群自动服务发现方法,其特征在于,所述获取所述自定义资源的对象信息,包括:获取所述自定义资源的最新版本的对象信息并持续获取所述对象信息的增量;根据所述对象信息建立本地存储并建立与所述对象信息对应的索引;根据所述增量更新所述本地存储中的所述对象信息;为所述增量创建第一标签并将所述第一标签发送至工作队列;从所述工作队列获取所述第一标签;根据所述第一标签和所述索引从所述本地存储中获取所述自定义资源的对象信息。6.根据权利要求1

5任一项所述的集群自动服务发现方法,其特征在于,在所述监听到自定义资源发生变更之前,还包括:监听pod的变更事件;当所述变更事件与自定义资源相关时,获取所述自定义资源的信息;根据所述变更事件对所述自定义资源的信息进行变更。7.根据权利要求6所述的集群自动服务发现方法,其特征在于,所述当所...

【专利技术属性】
技术研发人员:南方剑陈存利杨爽骆维
申请(专利权)人:度小满科技北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1