多集群环境下应用服务的对外暴露方法和装置制造方法及图纸

技术编号:35991455 阅读:39 留言:0更新日期:2022-12-17 23:06
本发明专利技术公开了一种多集群环境下应用服务的对外暴露方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:响应于应用部署操作,在应用的命名空间下创建定制资源,定制资源包括应用对外暴露的服务信息;响应于监听到定制资源的创建事件,根据服务信息生成应用服务的访问域名;将访问域名注册到域名解析器中,并将访问域名保存到定制资源中,以通过访问域名进行应用服务的对外暴露。该实施方式在多集群环境部署应用后,自动为应用服务生成对外暴露的访问域名,能够在集群外通过访问域名访问部署的应用,避免了出现单点故障而导致无法访问服务的情况发生,使得对应用服务的访问更灵活、方便、高效。高效。高效。

【技术实现步骤摘要】
多集群环境下应用服务的对外暴露方法和装置


[0001]本专利技术涉及计算机
,尤其涉及一种多集群环境下应用服务的对外暴露方法和装置。

技术介绍

[0002]部署在Kubernetes集群上的应用一般都是运行在Kubernetes集群的私有网络上,因此需要对外提供服务暴露方式以接收外部访问。目前,对Kubernetes集群外部提供服务访问时一般有下面几种方式:
[0003]1、基于Kubernetes集群的NodePort(节点端口)和LoadBalancer(负载均衡)类型的服务,这种方式通过IP地址+端口的方式暴露服务;
[0004]2、借助第三方的Ingress(是对集群中服务的外部访问进行管理的API接口对象)控制器,通过域名的方式暴露服务。
[0005]在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:
[0006]对于基于NodePort和LoadBalancer的两种服务暴露方式,用户通过IP地址+端口的方式访问服务,可能会出现单点故障,而导致无法访问服务,而且LoadBalancer方式一般只有云厂商才提供该能力。借助Ingress提供服务暴露的方法,需要为每个Kubernetes集群申请一个泛域名,而一个泛域名只能解析到一个Kubernetes集群,因此无法适用于多集群场景。

技术实现思路

[0007]有鉴于此,本专利技术实施例提供一种多集群环境下应用服务的对外暴露方法和装置,能够在多Kubernetes集群环境部署应用后,自动为应用服务生成对外暴露的访问域名,能够在Kubernetes集群外通过访问域名访问部署的应用,避免了出现单点故障而导致无法访问服务的情况发生,使得对应用服务的访问更灵活、方便、高效。
[0008]为实现上述目的,根据本专利技术实施例的一个方面,提供了一种多集群环境下应用服务的对外暴露方法,包括:
[0009]响应于应用部署操作,在所述应用的命名空间下创建定制资源,所述定制资源包括所述应用对外暴露的服务信息;
[0010]响应于监听到所述定制资源的创建事件,根据所述服务信息生成应用服务的访问域名;
[0011]将所述访问域名注册到域名解析器中,并将所述访问域名保存到所述定制资源中,以通过所述访问域名进行所述应用服务的对外暴露。
[0012]可选地,在所述应用的命名空间下创建定制资源,包括:在所述应用的命名空间下添加定制资源配置文件,所述定制资源配置文件包括生成定制资源所需的服务信息;根据所述应用对外暴露的服务信息和所述定制资源配置文件创建定制资源。
[0013]可选地,所述服务信息包括服务名、服务对应的节点端口信息、服务在集群中所属
的命名空间信息、集群标识;根据所述服务信息生成应用服务的访问域名,包括:将所述服务名、服务在集群中所属的命名空间信息、集群标识、泛域名后缀和服务对应的节点端口信息,按照设定的域名格式进行拼接生成应用服务的访问域名,其中,所述泛域名后缀是与所述域名解析器相关联的泛域名的后缀。
[0014]可选地,将所述访问域名注册到域名解析器中,包括:将部署服务的集群的访问地址和节点端口信息与访问域名的映射关系,按照集群标识和定制资源标识为标记注册到域名解析器中。
[0015]可选地,将所述访问域名保存到所述定制资源中,包括:将所述访问域名和所述服务信息保存到所述定制资源的状态字段中。
[0016]可选地,所述方法还包括:响应于监听到所述定制资源的删除事件,删除所述定制资源,并根据集群标识和定制资源标识从所述域名解析器中查找与所述定制资源相关的映射关系记录,并删除所述映射关系记录。
[0017]根据本专利技术实施例的另一方面,提供了一种多集群环境下应用服务的对外暴露装置,包括:
[0018]定制资源创建模块,用于响应于应用部署操作,在所述应用的命名空间下创建定制资源,所述定制资源包括所述应用对外暴露的服务信息;
[0019]访问域名生成模块,用于响应于监听到所述定制资源的创建事件,根据所述服务信息生成应用服务的访问域名,并将所述访问域名注册到域名解析器中;
[0020]访问域名发布模块,用于将所述访问域名注册到域名解析器中,并将所述访问域名保存到所述定制资源中,以通过所述访问域名进行所述应用服务的对外暴露。
[0021]可选地,所述定制资源创建模块还用于:在所述应用的命名空间下添加定制资源配置文件,所述定制资源配置文件包括生成定制资源所需的服务信息;根据所述应用对外暴露的服务信息和所述定制资源配置文件创建定制资源。
[0022]可选地,所述服务信息包括服务名、服务对应的节点端口信息、服务在集群中所属的命名空间信息、集群标识;所述访问域名生成模块还用于:将所述服务名、服务在集群中所属的命名空间信息、集群标识、泛域名后缀和服务对应的节点端口信息,按照设定的域名格式进行拼接生成应用服务的访问域名,其中,所述泛域名后缀是与所述域名解析器相关联的泛域名的后缀。
[0023]可选地,所述访问域名生成模块还用于:将部署服务的集群的访问地址和节点端口信息与访问域名的映射关系,按照集群标识和定制资源标识为标记注册到域名解析器中。
[0024]可选地,所述访问域名发布模块还用于:将所述访问域名和所述服务信息保存到所述定制资源的状态字段中。
[0025]可选地,还包括域名删除模块,用于:响应于监听到所述定制资源的删除事件,删除所述定制资源,并根据集群标识和定制资源标识从所述域名解析器中查找与所述定制资源相关的映射关系记录,并删除所述映射关系记录。
[0026]根据本专利技术实施例的又一方面,提供了一种多集群环境下应用服务的对外暴露电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本专利技术实施例所提供
的多集群环境下应用服务的对外暴露方法。
[0027]根据本专利技术实施例的再一方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本专利技术实施例所提供的多集群环境下应用服务的对外暴露方法。
[0028]上述专利技术中的一个实施例具有如下优点或有益效果:通过响应于应用部署操作,在应用的命名空间下创建定制资源,定制资源包括应用对外暴露的服务信息;响应于监听到定制资源的创建事件,根据服务信息生成应用服务的访问域名;将访问域名注册到域名解析器中,并将访问域名保存到定制资源中,以通过访问域名进行应用服务的对外暴露的技术方案,通过定制资源来维护应用对外暴露的服务信息,通过监听定制资源以根据服务信息生成域名,并将域名注册到域名解析器中,可以将域名解析到对应的集群上,实现了在Kubernetes集群外通过域名访问集群内的应用服务。在多Kubernetes集群环境部署应用后,自动为应用服务生成对外暴露的访问域名,能够在Kubernetes集群外通过访问域名访问部署的应用,避免了出现单点故障而导致无法访问服务的情况本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多集群环境下应用服务的对外暴露方法,其特征在于,包括:响应于应用部署操作,在所述应用的命名空间下创建定制资源,所述定制资源包括所述应用对外暴露的服务信息;响应于监听到所述定制资源的创建事件,根据所述服务信息生成应用服务的访问域名,并将所述访问域名注册到域名解析器中;将所述访问域名保存到所述定制资源中,以通过所述访问域名进行所述应用服务的对外暴露。2.根据权利要求1所述的方法,其特征在于,在所述应用的命名空间下创建定制资源,包括:在所述应用的命名空间下添加定制资源配置文件,所述定制资源配置文件包括生成定制资源所需的服务信息;根据所述应用对外暴露的服务信息和所述定制资源配置文件创建定制资源。3.根据权利要求1所述的方法,其特征在于,所述服务信息包括服务名、服务对应的节点端口信息、服务在集群中所属的命名空间信息、集群标识;根据所述服务信息生成应用服务的访问域名,包括:将所述服务名、服务在集群中所属的命名空间信息、集群标识、泛域名后缀和服务对应的节点端口信息,按照设定的域名格式进行拼接生成应用服务的访问域名,其中,所述泛域名后缀是与所述域名解析器相关联的泛域名的后缀。4.根据权利要求3所述的方法,其特征在于,将所述访问域名注册到域名解析器中,包括:将部署服务的集群的访问地址和节点端口信息与访问域名的映射关系,按照集群标识和定制资源标识为标记注册到域名解析器中。5.根据权利要求1所述的方法,其特征在于,将所述访问域名保存到所述定制资源中,包括:将所述访问域名和所述服务信息保存到所述定制资源的状态字段中。6.根据权利要求1所述的方法,其特征在于,...

【专利技术属性】
技术研发人员:曹兴明何小锋
申请(专利权)人:京东科技信息技术有限公司
类型:发明
国别省市:

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

1