一种基于kubernetes的依赖关系实现方法技术

技术编号:18723948 阅读:107 留言:0更新日期:2018-08-22 00:52
本发明专利技术公开了一种基于kubernetes的依赖关系实现方法,此方法最显著特点是在service的定义文件中,增加新的属性relateService字段,该字段中内容为该service服务依赖服务label名称(在kubernetes中service定义文件中会有一个属性字段label定义service的名称)。Service有了relateService信息,则可以通过kubectl命令查询该服务所依赖的其他服务信息,也可以在启动和停止该服务时候,查询他所依赖的服务是否正常。如果service服务启动时候,查询不到所依赖的service服务,给出提示信息,让用户检测依赖服务状态;如果service服务要停止,通过查询是否有依赖于该服务的service在运行,如果存在则提示无法停止服务。

Implementation method of dependency relationship based on kubernetes

The invention discloses a kubernetes-based dependency implementation method, the most prominent feature of which is to add a new attribute relateService field to the service definition file, which contains the service dependency service label name (there will be an attribute field label in the service definition file in kubernetes) Define the name of service. With relateService information, the service can query other services that the service relies on through the kubectl command, or whether the service it relies on is normal when it starts and stops. If the service service service can not be queried at the start of the service, a prompt message is given to let the user detect the status of the dependent service; if the service service is to stop, whether the service that depends on the service is running, if it exists, the prompt can not stop the service.

【技术实现步骤摘要】
一种基于kubernetes的依赖关系实现方法
本专利技术涉及service服务依赖功能管理
,具体涉及一种基于kubernetes的依赖关系实现方法。
技术介绍
随着容器技术的不断火热,容器编排工具kubernetes也越来越多的进入人们的视线,变成了热门的讨论和研究课题。Kubernetes是谷歌研发的一个完备的分布式系统支撑平台。他具备容器集群管理能力,包括多层次的安全防护和准入机制、多租户应用支撑能力、服务注册和发现机制、智能负载均衡能力,以及强大的故障发现和自我修复能力。Deploment、service、POD(容器)是kubernetes的三个核心组件。Deploment负责定义pod(容器)的数量、承载的业务,并监控容器的状态,如果有容器发生异常,处于不可用状态,deploment自动创建一个新的容器,替换原有容器;当容器恢复正常,deploment也会杀掉多余的容器。Pod是kubernetes中定义的容器形式,承载实际的业务。在pod中会定义label标识该容器Service负责定义POD(容器)集群,deploment创建的Pod一般都承载相同的业务,他们相互独立,互相之间没有联系,对于请求也无法做到智能分配。Service正是弥补这一缺陷,他将具有相同业务的pod集合在一起,对外提供一个ip和端口,并且提供负载均衡能力,对于外部请求均衡的分配到不同pod处理。不管是kubernetes系统内部还是外部使用pod的承载业务时候,都是通过访问service实现的。现在存在一个问题,kubernetes中定义service服务一般是存在依赖关系,但是按照现在kubernetes的实现,无法体现这种依赖关系,所以也就无从谈起相关的依赖功能管理。
技术实现思路
本专利技术要解决的技术问题是:针对上述问题,本专利技术提供一种基于kubernetes的依赖关系实现方法。本专利技术所采用的技术方案为:一种基于kubernetes的依赖关系实现方法,所述方法通过在service服务的定义文件中,增加属性字段relateService,该字段中的内容为该service服务依赖服务label名称(在kubernetes中service定义文件中会有一个属性字段label定义service的名称),Service服务通过relateService信息,利用kubectl命令查询该服务所依赖的其他服务信息,以及在启动和停止该服务时候,查询他所依赖的服务是否正常。所述方法内容还包括:在service服务启动时候,如果查询不到所依赖的service服务,给出提示信息,让用户检测依赖服务状态。所述方法内容还包括:如果service服务要停止,查询是否有依赖于该服务的service在运行,如果存在则提示无法停止服务。所述方法在kubernetes系统通过yaml或json格式的文本定义service服务,定义的内容包括:服务的端口号,服务的标签label,以及它所管理的pod的标签label,以及relateService,其中relateService字段信息中定义的是该服务所依赖服务的label名称。所述relateService字段信息中定义的依赖服务为若干个,中间用逗号分隔。比如现在要定义A服务,该服务的正常运行要依赖于B服务、C服务,B服务的label为b,C服务的label为c,那么在A服务的定义文件中relateService=b,c。所述方法内容还包括:所述方法通过命令Kubectlcreate-fservice.yaml创建service服务。所述方法内容还包括:通过在命令中新增一个处理逻辑,检测定义文档中relateService定义的服务能够启动,实现原来是通过ping命令检测该服务对应的ip地址是否可以ping通,如果可以ping通说明服务已经启动而且正常,如果无法ping通说明依赖服务还无法正常使用。所述方法内容还包括:创建service的时候,给出提示,让用户先检查依赖服务状态,保证service服务启动之后的可用性。所述方法通过在kubernetes系统的命令kubectl中增加查询依赖服务标签的命令,如下Kubectlgetservice--show-relat-service-labels,查询service服务依赖。所述方法提供依赖服务检测功能,检测是否有依赖该服务的serivce服务正在运行,如果存在这样的服务,则给用户提示,无法删除该服务,并列出依赖该服务的service服务列表。用户可以根据自己的实际情况,决定是否一次删除该服务,还是放弃删除。本专利技术的有益效果为:本专利技术针对kubernetes的不足而有针对行的提出的优化,让kubernetes对服务的管理更加的智能,也让服务之间的关系更加的直管,极大的提高了kubernetes的可用性和易用性,让kubernetes系统更加的完善。附图说明图1为Kubernetes结构示意图;图2为在kubernetes系统的命令中增加查询依赖服务标签命令。具体实施方式根据说明书附图,结合具体实施方式对本专利技术进一步说明:所述方法具体实施过程如下:(1)定义service服务依赖如图1所示,kubernetes系统中的service服务是通过yaml和json格式的文本定义的,在文本中会定义服务的端口号,服务的标签label,以及它所管理的pod的标签label,及relateService字段,该字段信息中定义的是该服务所依赖服务的label名称,依赖服务可以是多个,中间用逗号分隔。如要定义A服务,该服务的正常运行要依赖于B服务、C服务,B服务的label为b,C服务的label为c,那么在A服务的定义文件中relateService=b,c。(2)创建service服务根据(1)中的定义service服务的文本,创建service服务,命令:Kubectlcreate-fservice.yaml;在创建service的时候,在命令中新增一个处理逻辑,检测定义文档中relateService定义的服务是否已经可以启动,实现原来是通过ping命令检测该服务对应的ip地址是否可以ping通,如果可以ping通说明服务已经启动而且正常,如果无法ping通,说明依赖服务还无法正常使用。给出提示,让用户先检查依赖服务状态,进而保证了service服务启动之后的可用性。(3)查询service服务依赖如图2所示,根据已经创建了service服务,在kubernetes系统的命令集(kubectl)中增加查询依赖服务标签的命令,Kubectlgetservice--show-relat-service-labels。(4)停止service服务当用户想删除某一个service服务时候,原来是直接删除没有任何处理,本专利技术方法增加一步依赖服务检测功能,检测是否有依赖该服务的serivce服务正在运行,如果存在这样的服务,则给用户提示,无法删除该服务,并列出依赖该服务的service服务列表。用户可以根据自己的实际情况,决定是否一次删除该服务,还是放弃删除。实施方式仅用于说明本专利技术,而并非对本专利技术的限制,有关
的普通技术人员,在不脱离本专利技术的精神和本文档来自技高网
...

【技术保护点】
1.一种基于kubernetes的依赖关系实现方法,其特征在于,所述方法通过在service服务的定义文件中,增加属性字段relateService,该属性字段中的内容为该service服务依赖服务的label名称,Service服务通过relateService信息,利用kubectl命令查询该服务所依赖的其他服务信息,并在启动和停止该服务时候,查询他所依赖的服务是否正常。

【技术特征摘要】
1.一种基于kubernetes的依赖关系实现方法,其特征在于,所述方法通过在service服务的定义文件中,增加属性字段relateService,该属性字段中的内容为该service服务依赖服务的label名称,Service服务通过relateService信息,利用kubectl命令查询该服务所依赖的其他服务信息,并在启动和停止该服务时候,查询他所依赖的服务是否正常。2.根据权利要求1所述的一种基于kubernetes的依赖关系实现方法,其特征在于,所述方法内容还包括:在service服务启动时候,如果查询不到所依赖的service服务,给出提示信息,让用户检测依赖服务状态。3.根据权利要求1所述的一种基于kubernetes的依赖关系实现方法,其特征在于,所述方法内容还包括:如果service服务要停止,查询是否有依赖于该服务的service在运行,如果存在则提示无法停止服务。4.根据权利要求1-3任一所述的一种基于kubernetes的依赖关系实现方法,其特征在于,所述方法在kubernetes系统通过yaml或json格式的文本定义service服务,定义的内容包括:服务的端口号,服务的标签label,以及它所管理的pod的标签label,以及relateService,其中relateService字段信息中定义的是该服务所依赖服务的label名称...

【专利技术属性】
技术研发人员:刘娜
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

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

1