系统兼容方法、装置、设备和计算机可读存储介质制造方法及图纸

技术编号:21431784 阅读:20 留言:0更新日期:2019-06-22 11:48
本申请关于一种系统兼容方法和装置。该系统兼容方法通过监听集群事件,根据集群事件判断应用服务的当前状态,并据此向集群外的至少一个服务发现系统发送相应请求,所述相应请求向所述至少一个服务发现系统提供应用服务的应用入口信息和/或当前状态信息。该系统兼容方法不影响集群和所述至少一个服务发现系统各自的正常工作,从而实现集群和外部的服务发现系统的兼容。

【技术实现步骤摘要】
系统兼容方法、装置、设备和计算机可读存储介质
本申请属于计算机
,尤其是一种系统兼容方法、装置、设备和计算机可读存储介质。
技术介绍
kubernetes是一个用于自动部署、扩展和管理容器化应用程序的开源的集权管理系统。近年来,随着以kubernetes和docker为代表的容器技术以及容器编排管理技术等云计算相关技术的持续完善,越来越多的开发者和团队选择使用公/私有云平台,通过使用容器装载自己的应用程序,通过kubernetes等容器编排系统批量管理自身容器的部署、发现、升级等,从而达到降低系统运维成本、提升系统鲁棒性、提高机器资源使用率等目的。绝大多数的应用服务不是孤立的,即服务之间一般需要相互访问,或者服务需要向终端用户暴露请求入口。对于以容器方式部署在kubernetes集群中的应用服务,kubernetes提供了一种服务发现机制:kubernetes可为提供相同服务的容器组创建kubernetesservice资源,通过serviceclusterIP向同集群内其他服务提供访问入口,根据service类型(LoadBlancerService、NodePortService、Ingress)以不同方式向集群外提供访问入口。但是在实际应用场景中,应用服务往往会同时以不同的方式部署、维护在不同的环境中,例如,应用服务部分部署在kubernetes集群内,部分部署在非kubernetes集群内,如直接运行在宿主机上;或者应用服务部署在多个不同的kubernetes集群内。然而kubernetes系统默认提供的服务发现机制只能发现运行在本系统内部的应用服务,对于运行在本系统之外的应用服务,无论运行在另一个kubernetes内部还是运行直接运行在宿主机上,并没有提供一个适当的发现机制。对此,一种常见的现有技术方案是,设置容器网络模式为host,即该容器的网络堆栈不与宿主机隔离,kubernets系统默认提供的service机制也就失效,集群中每个容器都直接注册到第三方服务发现系统。但是该方案也有如下缺点:1)由于容器网络采用host模式,即容器与宿主机之间没有网络隔离,破坏了容器网络的隔离性,宿主机端口可能存在冲突,同时也增加了基于kubernetes的云平台服务管理等相关功能的复杂性;2)由于不使用kubernets系统默认提供的service机制,kubernetes系统为service配套支持的系列功能也就无法发挥作用了,如service默认支持的系列负载均衡策略、kubernetespod健康检查机制与service的联动、容器组(deployment)变动与service联动等功能。应用服务通过kubernetes系统进行服务管理的难度增大、集群易用性和稳定性受到影响。由此可见,现有技术中并没有提供一种有效的解决方案,以解决kubernets系统和第三方服务发现系统兼容的问题。
技术实现思路
有鉴于此,本申请公开一种系统兼容方法和系统,以解决现有技术中存在的问题。第一方面,本专利技术实施例提供一种系统兼容方法,包括:监听并获取和集群内运行的应用服务相关的集群事件;根据所述集群事件判断所述应用服务的当前状态;以及根据所述应用服务的当前状态向至少一个服务发现系统发送相应请求,所述相应请求向所述至少一个服务发现系统提供所述应用服务的应用入口信息和/或当前状态信息。在一些实施例中,所述相应请求包括注册请求、解注册请求和状态健康的报告。在一些实施例中,所述应用服务的当前状态包括:可用且未注册、不可用且已经注册、可用且已经注册和不可用且未注册,所述根据所述应用服务的当前状态向至少一个服务发现系统发送相应请求包括:当判定所述应用服务的当前状态为可用且未注册时,向至少一个服务发现系统发送所述应用服务的注册请求;当判定所述应用服务的当前状态为不可用且已经注册时,向至少一个服务发现系统发送所述应用服务的解注册请求;当判定所述应用服务的当前状态为可用且已经注册时,向至少一个服务发现系统发送所述应用服务的状态健康的报告。在一些实施例中,还包括:配置所述应用服务的配置数据,则所述判断所述应用服务的当前状态包括:根据所述集群事件和所述配置数据判断所述应用服务的当前状态。在一些实施例中,所述集群事件为所述应用服务对应的容器组和/或容器事件,所述根据所述集群事件和所述配置数据判断所述应用服务的当前状态包括:如果所述应用服务对应的容器的总和小于设定阈值,则判定所述应用服务的当前状态为不可用;如果所述应用服务对应的容器的总和大于或者等于设定阈值,则判定所述应用服务的当前状态为可用。在一些实施例中,所述集群管理系统为kubernetes系统,所述应用服务的配置数据包括:应用服务名称、容器组名称、kubernetes服务发现组名、集群列表、应用服务的最低可用容器数量、服务发现系统列表和服务发现系统各自的汇报周期。在一些实施例中,根据所述集群事件的应用服务名称、容器组名称和kubernetes服务发现组名称唯一确定一个所述应用服务。在一些实施例中,所述根据所述应用服务的当前状态向至少一个服务发现系统发送相应请求包括:定时从所述数据库中读取当前状态信息并据此向至少一个服务发现系统发送相应请求。在一些实施例中,所述定时从所述数据库中读取当前状态信息并据此向至少一个服务发现系统发送相应请求包括:采用定时器定时生成触发信号;采用独立线程接收所述触发信号,并在接收到所述触发信号之后,从所述数据库中读取所述当前状态信息并据此向至少一个服务发现系统发送相应请求。第二方面,本专利技术实施例提供一种系统兼容装置,包括:事件监听模块,用于监听并获取和集群内运行的应用服务相关的集群事件;流程控制模块,用于整体流程控制,以及根据所述集群事件判断所述应用服务的当前状态;服务汇报模块,用于根据所述应用服务的当前状态向至少一个服务发现系统发送相应请求,所述相应请求用于向所述至少一个服务发现系统提供所述应用服务的应用入口信息和/或当前状态信息;存储模块,用于将所述应用服务的当前状态信息到数据库中。在一些实施例中,所述相应请求包括注册请求、解注册请求和状态健康的报告。在一些实施例中,所述应用服务的当前状态包括:可用且未注册、不可用且已经注册、可用且已经注册和不可用且未注册,所述服务汇报模块包括:所述应用服务的当前状态为可用且未注册时,发送所述应用服务的注册请求;当判定所述应用服务的当前状态为不可用且已经注册时,发送所述应用服务的解注册请求;当判定所述应用服务的当前状态为可用且已经注册时,发送所述应用服务的状态健康的报告。在一些实施例中,所述存储模块还包括:配置模块,用于配置所述应用服务的配置数据,则所述流程控制模块根据所述集群事件和所述配置数据判断所述应用服务的当前状态。在一些实施例中,所述集群事件为所述应用服务对应的容器组和/或容器事件,所述流程控制模块包括:如果所述应用服务对应的容器的总和小于设定阈值,则判定所述应用服务的当前状态为不可用;如果所述应用服务对应的容器的总和大于或者等于设定阈值,则判定所述应用服务的当前状态为可用。在一些实施例中,所述集群管理系统为kubernetes系统,所述应用服务的配置数据包括:应用服务名称、容器组名称、kubern本文档来自技高网
...

【技术保护点】
1.一种系统兼容方法,其特征在于,包括:监听并获取和集群内运行的应用服务相关的集群事件;根据所述集群事件判断所述应用服务的当前状态;以及根据所述应用服务的当前状态向至少一个服务发现系统发送相应请求,所述相应请求向所述至少一个服务发现系统提供所述应用服务的应用入口信息和/或状态信息。

【技术特征摘要】
1.一种系统兼容方法,其特征在于,包括:监听并获取和集群内运行的应用服务相关的集群事件;根据所述集群事件判断所述应用服务的当前状态;以及根据所述应用服务的当前状态向至少一个服务发现系统发送相应请求,所述相应请求向所述至少一个服务发现系统提供所述应用服务的应用入口信息和/或状态信息。2.根据权利要求1所述的系统兼容方法,其特征在于,所述相应请求包括注册请求、解注册请求和状态健康的报告。3.根据权利要求2所述的系统兼容方法,其特征在于,所述应用服务的当前状态包括:可用且未注册、不可用且已经注册、可用且已经注册和不可用且未注册,所述根据所述应用服务的当前状态向至少一个服务发现系统发送相应请求包括:当判定所述应用服务的当前状态为可用且未注册时,向所述至少一个服务发现系统发送所述应用服务的注册请求;当判定所述应用服务的当前状态为不可用且已经注册时,向所述至少一个服务发现系统发送所述应用服务的解注册请求;当判定所述应用服务的当前状态为可用且已经注册时,向所述至少一个服务发现系统发送所述应用服务的状态健康的报告。4.根据权利要求1所述的系统兼容方法,其特征在于,还包括:配置所述应用服务的配置数据,则所述判断所述应用服务的当前状态包括:根据所述集群事件和所述配置数据判断所述应用服务的当前状态。5.根据权利要求4所述的系统兼容方法,其特征在于,所述集群事件为所述应用服务对应的容器组和/或容器事件,所述根据所述集群事件和所述配置数据判断所述应用服务的当前状态包括:如果所述应用服务对应的容器的总和小于设定阈值,则判定所述...

【专利技术属性】
技术研发人员:陈磊王天舟曹福祥张夏
申请(专利权)人:北京达佳互联信息技术有限公司
类型:发明
国别省市:北京,11

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

1