CN112965784B - 一种服务访问方法、装置、设备及计算机可读存储介质 - Google Patents

一种服务访问方法、装置、设备及计算机可读存储介质 Download PDF

Info

Publication number
CN112965784B
CN112965784B CN202110224032.XA CN202110224032A CN112965784B CN 112965784 B CN112965784 B CN 112965784B CN 202110224032 A CN202110224032 A CN 202110224032A CN 112965784 B CN112965784 B CN 112965784B
Authority
CN
China
Prior art keywords
cluster
pod
resource change
healthy
access
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
Application number
CN202110224032.XA
Other languages
English (en)
Other versions
CN112965784A (zh
Inventor
陶明洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Weimeng Enterprise Development Co ltd
Original Assignee
Shanghai Weimeng Enterprise Development Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Weimeng Enterprise Development Co ltd filed Critical Shanghai Weimeng Enterprise Development Co ltd
Priority to CN202110224032.XA priority Critical patent/CN112965784B/zh
Publication of CN112965784A publication Critical patent/CN112965784A/zh
Application granted granted Critical
Publication of CN112965784B publication Critical patent/CN112965784B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Hardware Redundancy (AREA)

Abstract

本申请公开了一种服务访问方法、装置、设备及计算机可读存储介质,方法包括:预先创建多个集群,并将服务部署在各集群中;根据各集群的元信息计算各集群中每个健康pod的分配占比,并生成与集群对应的资源变动指令且发送至对应的集群;当接收到各集群上报的与资源变动指令对应的资源变动管理成功的消息后,则将接收到的访问量根据资源变动请求、各集群对应的资源变动指令分配给集群内各健康pod;若出现异常集群,则将异常集群对应的访问量分配给正常集群内各健康pod。本申请公开的上述技术方案,将异常集群对应的访问量分配到正常集群内各健康pod中,以通过正常集群内部的各健康pod提供服务,从而提高服务访问的可靠性。

Description

一种服务访问方法、装置、设备及计算机可读存储介质
技术领域
本申请涉及云计算技术领域,更具体地说,涉及一种服务访问方法、装置、设备及计算机可读存储介质。
背景技术
Kubernetes是一个开源的、用于管理云平台中多个主机上的容器化的应用集群,它提供了应用部署、规划、更新和维护的一种机制,让部署容器化应用简单并且高效。
目前,常利用一个单独的Kubernetes集群来部署服务,并由该Kubernetes集群中的各pod来管理和处理服务对应的访问量,但是,在现有方法中,一旦上述Kubernetes集群出现故障,则会导致所有访问量对应的访问无法正常对服务进行访问,从而会降低服务访问的可靠性。
综上所述,如何提高服务访问的可靠性,是目前本领域技术人员亟待解决的技术问题。
发明内容
有鉴于此,本申请的目的是提供一种服务访问方法、装置、设备及计算机可读存储介质,用于提高服务访问的可靠性。
为了实现上述目的,本申请提供如下技术方案:
一种服务访问方法,包括:
预先创建多个集群,并将服务部署在各所述集群中;
根据各所述集群的元信息,计算各所述集群中每个健康pod的分配占比,并根据各所述集群中每个健康pod的分配占比生成与所述集群对应的资源变动指令且发送至对应的集群;
当接收到各所述集群上报的与所述资源变动指令对应的资源变动管理成功的消息后,若接收到访问量,则将所述访问量根据资源变动请求、各所述集群对应的资源变动指令分配给所述集群内各健康pod,以进行服务访问;
若出现异常集群,则将所述异常集群对应的访问量分配给正常集群内各健康pod,以进行服务访问。
优选的,将所述异常集群对应的访问量分配给正常集群内各健康pod,包括:
根据所述资源变动请求中各所述正常集群的资源变动占比,将所述异常集群对应的访问量分配给各所述正常集群;
根据各所述正常集群对应的资源变动指令,将分配给所述正常集群的访问量分配给所述正常集群内各健康pod。
优选的,还包括:
若在所述异常集群恢复正常之前接收到新的访问量,则根据所述资源变动请求中各所述正常集群的资源变动占比,将所述新的访问量分配给各所述正常集群;
若在所述异常集群恢复正常之后接收到新的访问量,则根据所述资源变动请求中各所述集群的资源变动占比,将所述新的访问量分配给各所述集群;其中,所述集群包括恢复正常的所述异常集群。
优选的,将所述访问量根据资源变动请求、各所述集群对应的资源变动指令分配给所述集群内各健康pod,包括:
将接收到的所述访问量根据所述资源变动请求中各所述集群的资源变动占比分配给各所述集群,并根据IP列表及各所述集群对应的资源变动指令将分配给所述集群的访问量分配给所述集群内各健康pod;
其中,所述IP列表为根据各所述集群返回的其内部各健康pod的信息生成的,所述信息包括健康pod的IP、健康pod所属集群及服务名。
优选的,在根据IP列表及各所述集群对应的资源变动指令将分配给所述集群的访问量分配给所述集群内各健康pod之后,还包括:
当接收到所述集群发送的其内部存在不可用的pod的消息时,将不可用的pod的信息从所述IP列表中删除,以得到新的IP列表,并在所述不可用的pod对应有访问量时从所述新的IP列表中选择目标IP,将所述不可用的pod对应的访问量分配给所述目标IP对应的健康pod,且根据所述新的IP列表计算所述不可用的pod所属的集群中剩余健康pod的分配占比。
优选的,在根据所述新的IP列表计算所述不可用的pod所属的集群中剩余健康pod的分配占比之后,还包括:
若接收到所述不可用的pod恢复正常的消息,则将恢复正常的pod的信息加入到所述新的IP列表中,并根据所述新的IP列表计算所述恢复正常的pod所属的集群中各健康pod的分配占比。
优选的,将所述访问量根据资源变动请求、各所述集群对应的资源变动指令分配给所述集群内各健康pod,包括:
根据所述资源变动请求中各所述集群的资源变动占比,将接收到的所述访问量分配给各所述集群,并由各所述集群根据所述集群对应的资源变动指令,将分配给所述集群的访问量分配给所述集群内部各健康pod。
一种服务访问装置,包括:
创建模块,用于预先创建多个集群,并将服务部署在各所述集群中;
计算模块,用于根据各所述集群的元信息,计算各所述集群中每个健康pod的分配占比,并根据各所述集群中每个健康pod的分配占比生成与所述集群对应的资源变动指令且发送至对应的集群;
第一分配模块,用于当接收到各所述集群上报的与所述资源变动指令对应的资源变动管理成功的消息后,若接收到访问量,则将所述访问量根据资源变动请求、各所述集群对应的资源变动指令分配给所述集群内各健康pod,以进行服务访问;
第二分配模块,用于若出现异常集群,则将所述异常集群对应的访问量分配给正常集群内各健康pod,以进行服务访问。
一种服务访问设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述任一项所述的服务访问方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的服务访问方法的步骤。
本申请提供了一种服务访问方法、装置、设备及计算机可读存储介质,其中,该方法包括:预先创建多个集群,并将服务部署在各集群中;根据各集群的元信息,计算各集群中每个健康pod的分配占比,并根据各集群中每个健康pod的分配占比生成与集群对应的资源变动指令且发送至对应的集群;当接收到各集群上报的与资源变动指令对应的资源变动管理成功的消息后,若接收到访问量,则将访问量根据资源变动请求、各集群对应的资源变动指令分配给集群内各健康pod,以进行服务访问;若出现异常集群,则将异常集群对应的访问量分配给正常集群内各健康pod,以进行服务访问。
本申请公开的上述技术方案,预先将服务部署在所创建的多个集群中,并根据各集群发送的元信息计算各集群中每个健康pod的分配占比,且根据各集群中每个健康pod的分配占比生成与集群对应的资源变动指令并发送至对应的集群,之后,在接收到各集群上报的与资源变动指令对应的资源变动管理成功的消息后,则将接收到的访问量根据资源变动请求及各集群对应的资源变动指令对应分配给各集群内的各健康pod,而不再将所有访问量集中在一个集群中,而且若在对服务访问的过程中出现异常集群,则将异常集群对应的访问量分配到正常集群内各健康pod中,以通过正常集群内部的各健康pod提供服务,从而避免出现因集群异常而导致无法进行服务访问的情况,进而提高服务访问的可靠性,另外,通过将访问量分配在不同的集群中可以实现负载均衡,以便于更好地进行服务访问。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种服务访问方法的流程图;
图2为本申请实施例提供的第一服务组件与各集群中第二服务组件的相关联动示意图;
图3为本申请实施例提供的资源变动管理的流程图;
图4为本申请实施例提供的一种服务访问装置的结构示意图;
图5为本申请实施例提供的一种服务访问设备的结构示意图。
具体实施方式
Kubernetes是一个开源的、用于管理云平台中多个主机上的容器化的应用集群,它提供了应用部署、规划、更新和维护的一种机制,让部署容器化应用简单并且高效,且Kubernetes集群能够实现将应用的运行、配置、管理、所有生存周期与当前操作系统解耦,并且使得容器和容器之间相互隔离,不会相互影响。目前,在利用Kubernetes集群部署服务且进行服务访问时,通常都是单独一个Kubernetes集群来部署服务,并由该Kubernetes集群管理和处理服务对应的访问量,以实现服务访问,但是,这种服务访问方式会在该Kubernetes集群出现故障时导致所有的访问量无法正常对服务进行访问,因此,则会降低服务访问的可靠性。
为此,本申请提供一种服务访问的技术方案,用于提高服务访问的可靠性。
为了使本领域技术人员更清楚地理解本技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1,其示出了本申请实施例提供的一种服务访问方法的流程图,本申请实施例提供的一种服务访问方法,可以包括:
S11:预先创建多个集群,并将服务部署在各集群中。
在访问服务前,预先创建多个集群,并将相同服务均部署在所创建的多个集群中。
需要说明的是,本申请提及的集群具体为Kubernetes集群,且各集群可以与第一服务组件(具体可以为controller组件)相连,以利用第一服务组件进行服务访问。另外,本申请所创建的各个集群中可以均包含有第二服务组件(具体可以为agent组件),各集群中的第二服务组件均与第一服务组件相互通信,且各集群中的第二服务组件用于获取集群的元信息及集群中每个pod的健康状况,并接收第一服务组件下发的指令,且调用Kubernetes集群的API(Application Programming Interface,应用编程接口)最终实现Kubernetes资源变动的管理。同时集群中每个pod中可以部署有第三组件(具体可以为sidecar组件),其可以用于实时上报pod的健康情况给第二服务组件。具体可以参见图2,其示出了本申请实施例提供的第一服务组件与各集群中第二服务组件的相关联动示意图,其中,图2是以包含三个集群为例进行说明的,至于包含其他数量集群的过程与图2类似,在此不再赘述。
S12:根据各集群的元信息,计算各集群中每个健康pod的分配占比,并根据各集群中每个健康pod的分配占比生成与集群对应的资源变动指令且发送至对应的集群。
在进行服务访问时,第一服务组件可以接收各集群中的第二服务组件发送的集群的元信息,其中,这里提及的集群的元信息包含但不限于集群的pod数、pod的IP、集群名、集群所部署服务的服务名、pod的健康情况,且pod的健康情况具体可以由pod中的第三服务组件获取并向第二服务组件上报而得到。
第一服务组件在接收到各集群的元信息之后,可以根据各集群的元信息计算各集群中每个健康pod的分配占比,其中,这里提及的计算各集群中每个健康pod的分配占比的过程具体可以为根据集群中包含的健康pod的数量平均计算每个健康pod的分配占比,例如:假设集群1有10个健康pod,则每个健康pod的分配占比即为(1/10)*100%=10%,假设集群2中有2个健康pod,则每个健康pod的分配占比即为(1/2)*100%=50%。
在计算出各集群中每个健康pod的分配占比之后,可以根据各集群中每个健康pod的分配占比生成与集群对应的资源变动指令,并将与集群对应的资源变动指令发送至对应的集群,具体即为发送至对应集群中的第二服务组件。其中,上述资源变动指令中包含集群中每个健康pod的分配占比。
S13:当接收到各集群上报的与资源变动指令对应的资源变动管理成功的消息后,若接收到访问量,则将访问量根据资源变动请求、各集群对应的资源变动指令分配给集群内各健康pod,以进行服务访问。
各集群中的第二服务组件在接收到与该集群对应的资源变动指令后,会调用集群的API中对应的接口,以管理资源变动,其中,管理资源变动的过程具体包括告知集群中每个健康pod其对应的分配占比等。若资源变动管理成功,则第二服务组件会向第一服务组件上报其资源变动管理成功的消息。若第一服务组件接收到各集群中的第二服务组件上报的与资源变动指令对应的资源变动管理成功的消息后,则表明此时各集群成功实现资源变动管理,之后,若第一服务组件接收到访问量,则第一服务组件可以根据所接收到的资源变动请求、步骤S12所生成的各集群对应的资源变动指令将其所接收到的访问量分配给各集群内的各健康pod,以利用每个健康pod所分配的访问量在pod中进行服务访问,其中,资源变动请求具体可以由用户进行发送,且该资源变动请求中包含有各个集群的资源变动占比。
需要说明的是,在第二服务组件根据所接收到的资源变动指令管理资源变动时,若资源变动管理不成功,则第二服务组件会向第一服务组件上报其资源变动管理不成功的消息。另外,若集群中的第二服务组件失去了与第一服务组件的网络连接,则此时第一服务组件也接收不到集群上报的与资源变动指令对应的资源变动管理成功的消息。其中,在第二服务组件向第一服务组件上报资源变动管理成功与否的消息时,各集群中的第二服务组件还会记录回滚日志undo log,其中,回滚日志undo log中包含集群名、资源变动管理是否成功、若资源变动管理未成功则资源变动管理失败的原因等。
另外需要说明的是,在步骤S12之后,若确定未接收到至少一个集群上报的与资源变动指令对应的资源变动管理成功的消息,则向各集群发出各集群均根据对应的回滚日志执行回滚操作的消息,以使各集群执行回滚操作,同时发出本次资源变动失败的提示,以便于用户可以及时获知该提示,并根据该提示对集群进行管理和维护等。结合本申请中的第一服务组件和第二服务组件,则上述过程具体即为:若第一服务组件确定未接收到至少一个集群中的第二服务组件上报的资管变动管理成功的消息后,则第一服务组件通知所有集群中的第二服务组件根据对应的回滚日志执行回滚操作,并发出本次资源变动失败的提示。具体可以参见图3,其示出本申请实施例提供的资源变动管理的流程图。
S14:若出现异常集群,则将异常集群对应的访问量分配给正常集群内各健康pod,以进行服务访问。
在接收到各集群上报的与资源变动指令对应的资源变动管理成功的消息后且接收到访问量之后,且在服务访问完成之前,若出现异常集群,则第二服务组件可以将异常集群对应的访问量分配给正常集群内各健康pod,以利用正常集群中每个健康pod所分配的访问量在pod中进行服务访问。需要说明的是,上述确定异常集群的过程为:若第一服务组件在预设时间段内未接收到第二服务组件上报的信息,则第一服务组件就认为无法上报信息的第二服务组件对应的集群出现异常。
通过上述过程可以在即使出现异常集群时也能保证服务访问的正常进行,因此,则可以提高服务访问的可靠性和稳定性。另外,本申请通过将访问量根据资源变动请求及所生成的资源变动指令分配给各集群中的健康pod而实现负载均衡,从而便于更好地对服务进行访问,达到更好的访问质量。
本申请公开的上述技术方案,预先将服务部署在所创建的多个集群中,并根据各集群发送的元信息计算各集群中每个健康pod的分配占比,且根据各集群中每个健康pod的分配占比生成与集群对应的资源变动指令并发送至对应的集群,之后,在接收到各集群上报的与资源变动指令对应的资源变动管理成功的消息后,则将接收到的访问量根据资源变动请求及各集群对应的资源变动指令对应分配给各集群内的各健康pod,而不再将所有访问量集中在一个集群中,而且若在对服务访问的过程中出现异常集群,则将异常集群对应的访问量分配到正常集群内各健康pod中,以通过正常集群内部的各健康pod提供服务,从而避免出现因集群异常而导致无法进行服务访问的情况,进而提高服务访问的可靠性,另外,通过将访问量分配在不同的集群中可以实现负载均衡,以便于更好地进行服务访问。
本申请实施例提供的一种服务访问方法,将异常集群对应的访问量分配给正常集群内各健康pod,可以包括:
根据资源变动请求中各正常集群的资源变动占比,将异常集群对应的访问量分配给各正常集群;
根据各正常集群对应的资源变动指令,将分配给正常集群的访问量分配给正常集群内各健康pod。
在将异常集群对应的访问量分配给正常集群内各健康pod时,具体可以根据资源变动请求中各正常集群的资源变动占比来将异常集群对应的访问量分配给各正常集群,例如:假设异常集群对应的访问量为100,剩余两个正常集群中集群2和集群3的资源变动占比为2:3,则可以将异常集群对应的这100个访问量按照集群2和集群3的资源变动占比而给集群2分配100*(2/(2+3))=40个访问量,并给集群3分配100*(3/(2+3))=60个访问量。之后,则可以根据每个正常集群对应的资源变动指令而将分配给正常集群的访问量对应分配给正常集群内各健康pod。
通过上述过程可以实现异常集群对应的访问量的合理分配,以使得各正常集群能够合理地处理异常集群对应的访问量。
本申请实施例提供的一种服务访问方法,还可以包括:
若在异常集群恢复正常之前接收到新的访问量,则根据资源变动请求中各正常集群的资源变动占比,将新的访问量分配给各正常集群;
若在异常集群恢复正常之后接收到新的访问量,则根据资源变动请求中各集群的资源变动占比,将新的访问量分配给各集群;其中,集群可以包括恢复正常的异常集群。
在本申请中,在将异常集群对应的访问量分配给正常集群内各健康pod,以进行服务访问之后,若第一服务组件在异常集群恢复正常之前接收到新的访问量,则此时第一服务组件根据资源变动请求中各正常集群的资源变动占比而将新的访问量分配给各正常集群,即将异常集群排除在外,也即仅将新的访问量分配给正常集群,以避免正常给异常集群分配访问量但因异常集群未恢复正常而导致这些访问量无法进行服务访问的情况出现,从而便于提高服务访问的可靠性。另外,若第一服务组件在异常集群恢复正常之后接收到新的访问量,则此时第一服务组件在对新的访问量进行分配时,具体是根据资源变动请求中各集群(包括恢复正常的异常集群)的资源变动占比而将新的访问量分配给各集群,即将恢复正常的异常集群考虑在内,也即对恢复正常的异常集群也进行访问量的分配,以实现负载均衡,并减少其他集群的访问量处理压力。
本申请实施例提供的一种服务访问方法,将访问量根据资源变动请求、各集群对应的资源变动指令分配给集群内各健康pod,可以包括:
将接收到的访问量根据资源变动请求中各集群的资源变动占比分配给各集群,并根据IP列表及各集群对应的资源变动指令将分配给集群的访问量分配给集群内各健康pod;
其中,IP列表为根据各集群返回的其内部各健康pod的信息生成的,信息可以包括健康pod的IP、健康pod所属集群及服务名。
在本申请中,在将访问量根据资源变动请求、各集群对应的资源变动指令分配给集群内各健康pod时,第一服务组件具体可以将接收到的访问量根据资源变动请求中各集群的资源变动占比给各集群分配访问量,具体即是将第一服务组件接收到的访问量分别与每个集群的资源变动占比相乘,以得到每个集群应分配的访问量,并根据每个集群应分配的访问量给每个集群分配访问量。
在将接收到的访问量根据上述方式对应分配给每个集群之后,可以根据IP列表及各集群对应的资源变动指令将分配给集群的访问量分配给集群内各健康pod,具体即将集群分配到的访问量乘以该集群对应的资源变动指令中各健康pod的分配占比,以得到每个健康pod应分配的访问量,并根据各集群中每个健康pod应分配的访问量将分配给集群的访问量分配给集群内各健康pod。
其中,上述提及的IP列表具体为根据各集群中第二服务组件返回的该集群内部各健康pod的信息生成的,这里提及的pod的信息具体可以包括健康pod的IP、健康pod所属集群及健康pod中的服务对应的服务名,且上述过程具体是由第一服务组件将各集群中相同服务的健康pod的IP更新至外部路由网关中构成IP列表。
通过根据IP列表来给集群内各健康pod分配访问量来避免直接访问pod,从而保证访问量分配的安全性。
另外,需要说明的是,当集群中的健康pod需要访问其他服务时,可以对路由网关中的IP进行查询以用于DNS(Domain Name System,域名系统)解析,以便于通过DNS解析得到其他服务对应的健康pod的IP,从而使应用可以跨集群访问其他服务。
本申请实施例提供的一种服务访问方法,在根据IP列表及各集群对应的资源变动指令将分配给集群的访问量分配给集群内各健康pod之后,还可以包括:
当接收到集群发送的其内部存在不可用的pod的消息时,将不可用的pod的信息从IP列表中删除,以得到新的IP列表,并在不可用的pod对应有访问量时从新的IP列表中选择目标IP,将不可用的pod对应的访问量分配给目标IP对应的健康pod,且根据新的IP列表计算不可用的pod所属的集群中剩余健康pod的分配占比。
在根据IP列表及各集群对应的资源变动指令将分配给集群的访问量分配给集群内各健康pod之后,若第一服务组件接收到集群发送的(具体可以为集群内部的第二服务组件发送的)集群内部存在不可用的pod的消息后,第一服务组件可以将不可用的pod从IP列表中删除,以得到新的IP列表,其中,集群所发送的不可用的pod的消息中具体包含该不可用的pod的IP,且确定不可用的pod的过程为:若集群中的pod中的应用失活或其他原因导致第二服务组件在一定时间内无法联系到pod,或者在第二服务组件访问其所在集群中的pod时若第二服务组件在限定次数中均访问失败,则第二服务组件会向第一服务组件发出集群内部存在不可用的pod的消息。通过删除不可用的pod可以防止服务访问到此不可用的pod而导致服务访问无法继续进行。
另外,在将不可用的pod的信息从IP列表中删除之后,若不可用的pod对应的有访问量,则第一服务组件可以从新的IP列表中选择目标IP,并将不可用的pod对应的访问量分配给目标IP对应的健康pod,以通过该目标IP对应的健康pod进行服务访问。需要说明的是,在选择目标IP时,可以优选与不可用的pod同属一个集群的pod的IP,以在不跨集群的情况下进行访问量的转移和服务的访问,当然,也可以从新的IP列表中选择任意一个IP作为目标IP,本申请对此不做任何限定。
在将不可用的pod的信息从IP列表中删除的同时,可以根据新的IP列表中不可用的pod所属的集群中所剩余的健康pod的数量来计算该集群中所剩余的健康pod的分配占比,以便于后续第一服务组件在不可用的pod未恢复正常之前接收到新的访问量时,其可以依据该不可用的pod所属集群中剩余的健康pod的分配占比来进行访问量的分配。
本申请实施例提供的一种服务访问方法,在根据新的IP列表计算不可用的pod所属的集群中剩余健康pod的分配占比之后,还可以包括:
若接收到不可用的pod恢复正常的消息,则将恢复正常的pod的信息加入到新的IP列表中,并根据新的IP列表计算恢复正常的pod所属的集群中各健康pod的分配占比。
在根据新的IP列表计算不可用的pod所属的集群中剩余健康pod的分配占比之后,若第一服务组件接收到不可用的pod恢复正常的消息,则第一服务组件可以将恢复正常的pod的信息加入到新的IP列表中,之后,则可以根据加入恢复正常的pod的信息之后的IP列表计算恢复正常的pod所属的集群中各健康pod的分配占比,以便于后续第一服务组件在不可用的pod恢复正常之后接收到新的访问量时,其可以依据该恢复正常的pod所属集群中各健康pod的分配占比来进行访问量的分配。
本申请实施例提供的一种服务访问方法,将访问量根据资源变动请求、各集群对应的资源变动指令分配给集群内各健康pod,可以包括:
根据资源变动请求中各集群的资源变动占比,将接收到的访问量分配给各集群,并由各集群根据集群对应的资源变动指令,将分配给集群的访问量分配给集群内部各健康pod。
在本申请中,除了根据IP列表来给集群内各健康pod进行访问量分配之外,还可以采用如下方式进行访问量的分配:
具体地,先根据资源变动请求中各集群的资源变动占比来将接收到的访问量分配给各集群(具体分配给各集群中的第二服务组件),之后,由各集群中的第二服务组件根据该集群对应的资源变动指令将分配给集群的访问量分配给集群内部各健康pod。
本申请实施例还提供了一种服务访问装置,参见图4,其示出了本申请实施例提供的一种服务访问装置的结构示意图,可以包括:
创建模块41,用于预先创建多个集群,并将服务部署在各集群中;
计算模块42,用于根据各集群的元信息,计算各集群中每个健康pod的分配占比,并根据各集群中每个健康pod的分配占比生成与集群对应的资源变动指令且发送至对应的集群;
第一分配模块43,用于当接收到各集群上报的与资源变动指令对应的资源变动管理成功的消息后,若接收到访问量,则将访问量根据资源变动请求、各集群对应的资源变动指令分配给集群内各健康pod,以进行服务访问;
第二分配模块44,用于若出现异常集群,则将异常集群对应的访问量分配给正常集群内各健康pod,以进行服务访问。
本申请实施例提供的一种服务访问装置,第二分配模块44可以包括:
第一分配单元,用于根据资源变动请求中各正常集群的资源变动占比,将异常集群对应的访问量分配给各正常集群;
第二分配单元,用于根据各正常集群对应的资源变动指令,将分配给正常集群的访问量分配给正常集群内各健康pod。
本申请实施例提供的一种服务访问装置,还可以包括:
第三分配模块,用于若在异常集群恢复正常之前接收到新的访问量,则根据资源变动请求中各正常集群的资源变动占比,将新的访问量分配给各正常集群;
第四分配模块,用于若在异常集群恢复正常之后接收到新的访问量,则根据资源变动请求中各集群的资源变动占比,将新的访问量分配给各集群;其中,集群可以包括恢复正常的异常集群。
本申请实施例提供的一种服务访问装置,第一分配模块43可以包括:
第三分配单元,用于将接收到的访问量根据资源变动请求中各集群的资源变动占比分配给各集群,并根据IP列表及各集群对应的资源变动指令将分配给集群的访问量分配给集群内各健康pod;
其中,IP列表为根据各集群返回的其内部各健康pod的信息生成的,信息可以包括健康pod的IP、健康pod所属集群及服务名。
本申请实施例提供的一种服务访问装置,第一分配模块43还可以包括:
第一计算单元,用于在根据IP列表及各集群对应的资源变动指令将分配给集群的访问量分配给集群内各健康pod之后,当接收到集群发送的其内部存在不可用的pod的消息时,将不可用的pod的信息从IP列表中删除,以得到新的IP列表,并在不可用的pod对应有访问量时从新的IP列表中选择目标IP,将不可用的pod对应的访问量分配给目标IP对应的健康pod,且根据新的IP列表计算不可用的pod所属的集群中剩余健康pod的分配占比。
本申请实施例提供的一种服务访问装置,第一分配模块43还可以包括:
第二计算单元,用于在根据新的IP列表计算不可用的pod所属的集群中剩余健康pod的分配占比之后,若接收到不可用的pod恢复正常的消息,则将恢复正常的pod的信息加入到新的IP列表中,并根据新的IP列表计算恢复正常的pod所属的集群中各健康pod的分配占比。
本申请实施例提供的一种服务访问装置,第一分配模块43以包括:
第四分配单元,用于根据资源变动请求中各集群的资源变动占比,将接收到的访问量分配给各集群,并由各集群根据集群对应的资源变动指令,将分配给集群的访问量分配给集群内部各健康pod。
本申请实施例还提供了一种服务访问设备,参见图5,其示出了本申请实施例提供的一种服务访问设备的结构示意图,可以包括:
存储器51,用于存储计算机程序;
处理器52,用于执行存储器51存储的计算机程序时可实现如下步骤:
预先创建多个集群,并将服务部署在各集群中;根据各集群的元信息,计算各集群中每个健康pod的分配占比,并根据各集群中每个健康pod的分配占比生成与集群对应的资源变动指令且发送至对应的集群;当接收到各集群上报的与资源变动指令对应的资源变动管理成功的消息后,若接收到访问量,则将访问量根据资源变动请求、各集群对应的资源变动指令分配给集群内各健康pod,以进行服务访问;若出现异常集群,则将异常集群对应的访问量分配给正常集群内各健康pod,以进行服务访问。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时可实现如下步骤:
预先创建多个集群,并将服务部署在各集群中;根据各集群的元信息,计算各集群中每个健康pod的分配占比,并根据各集群中每个健康pod的分配占比生成与集群对应的资源变动指令且发送至对应的集群;当接收到各集群上报的与资源变动指令对应的资源变动管理成功的消息后,若接收到访问量,则将访问量根据资源变动请求、各集群对应的资源变动指令分配给集群内各健康pod,以进行服务访问;若出现异常集群,则将异常集群对应的访问量分配给正常集群内各健康pod,以进行服务访问。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例提供的一种服务访问装置、设备及计算机可读存储介质中相关部分的说明可以参见本申请实施例提供的一种服务访问方法中对应部分的详细说明,在此不再赘述。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种服务访问方法,其特征在于,包括:
预先创建多个集群,并将服务部署在各所述集群中;
根据各所述集群的元信息,计算各所述集群中每个健康pod的分配占比,并根据各所述集群中每个健康pod的分配占比生成与所述集群对应的资源变动指令且发送至对应的集群;
当接收到各所述集群上报的与所述资源变动指令对应的资源变动管理成功的消息后,若接收到访问量,则将所述访问量根据资源变动请求、各所述集群对应的资源变动指令分配给所述集群内各健康pod,以进行服务访问;
若出现异常集群,则将所述异常集群对应的访问量分配给正常集群内各健康pod,以进行服务访问。
2.根据权利要求1所述的服务访问方法,其特征在于,将所述异常集群对应的访问量分配给正常集群内各健康pod,包括:
根据所述资源变动请求中各所述正常集群的资源变动占比,将所述异常集群对应的访问量分配给各所述正常集群;
根据各所述正常集群对应的资源变动指令,将分配给所述正常集群的访问量分配给所述正常集群内各健康pod。
3.根据权利要求1所述的服务访问方法,其特征在于,还包括:
若在所述异常集群恢复正常之前接收到新的访问量,则根据所述资源变动请求中各所述正常集群的资源变动占比,将所述新的访问量分配给各所述正常集群;
若在所述异常集群恢复正常之后接收到新的访问量,则根据所述资源变动请求中各所述集群的资源变动占比,将所述新的访问量分配给各所述集群;其中,所述集群包括恢复正常的所述异常集群。
4.根据权利要求1所述的服务访问方法,其特征在于,将所述访问量根据资源变动请求、各所述集群对应的资源变动指令分配给所述集群内各健康pod,包括:
将接收到的所述访问量根据所述资源变动请求中各所述集群的资源变动占比分配给各所述集群,并根据IP列表及各所述集群对应的资源变动指令将分配给所述集群的访问量分配给所述集群内各健康pod;
其中,所述IP列表为根据各所述集群返回的其内部各健康pod的信息生成的,所述信息包括健康pod的IP、健康pod所属集群及服务名。
5.根据权利要求4所述的服务访问方法,其特征在于,在根据IP列表及各所述集群对应的资源变动指令将分配给所述集群的访问量分配给所述集群内各健康pod之后,还包括:
当接收到所述集群发送的其内部存在不可用的pod的消息时,将不可用的pod的信息从所述IP列表中删除,以得到新的IP列表,并在所述不可用的pod对应有访问量时从所述新的IP列表中选择目标IP,将所述不可用的pod对应的访问量分配给所述目标IP对应的健康pod,且根据所述新的IP列表计算所述不可用的pod所属的集群中剩余健康pod的分配占比。
6.根据权利要求5所述的服务访问方法,其特征在于,在根据所述新的IP列表计算所述不可用的pod所属的集群中剩余健康pod的分配占比之后,还包括:
若接收到所述不可用的pod恢复正常的消息,则将恢复正常的pod的信息加入到所述新的IP列表中,并根据所述新的IP列表计算所述恢复正常的pod所属的集群中各健康pod的分配占比。
7.根据权利要求1所述的服务访问方法,其特征在于,将所述访问量根据资源变动请求、各所述集群对应的资源变动指令分配给所述集群内各健康pod,包括:
根据所述资源变动请求中各所述集群的资源变动占比,将接收到的所述访问量分配给各所述集群,并由各所述集群根据所述集群对应的资源变动指令,将分配给所述集群的访问量分配给所述集群内部各健康pod。
8.一种服务访问装置,其特征在于,包括:
创建模块,用于预先创建多个集群,并将服务部署在各所述集群中;
计算模块,用于根据各所述集群的元信息,计算各所述集群中每个健康pod的分配占比,并根据各所述集群中每个健康pod的分配占比生成与所述集群对应的资源变动指令且发送至对应的集群;
第一分配模块,用于当接收到各所述集群上报的与所述资源变动指令对应的资源变动管理成功的消息后,若接收到访问量,则将所述访问量根据资源变动请求、各所述集群对应的资源变动指令分配给所述集群内各健康pod,以进行服务访问;
第二分配模块,用于若出现异常集群,则将所述异常集群对应的访问量分配给正常集群内各健康pod,以进行服务访问。
9.一种服务访问设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的服务访问方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的服务访问方法的步骤。
CN202110224032.XA 2021-03-01 2021-03-01 一种服务访问方法、装置、设备及计算机可读存储介质 Active CN112965784B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110224032.XA CN112965784B (zh) 2021-03-01 2021-03-01 一种服务访问方法、装置、设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110224032.XA CN112965784B (zh) 2021-03-01 2021-03-01 一种服务访问方法、装置、设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112965784A CN112965784A (zh) 2021-06-15
CN112965784B true CN112965784B (zh) 2022-09-16

Family

ID=76277591

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110224032.XA Active CN112965784B (zh) 2021-03-01 2021-03-01 一种服务访问方法、装置、设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112965784B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114217950B (zh) * 2021-11-08 2022-10-21 杭州博盾习言科技有限公司 节点调度状态控制方法和系统
CN115022209A (zh) * 2022-06-24 2022-09-06 中国电信股份有限公司 监控方法、装置和计算机可读存储介质
CN115277652B (zh) * 2022-06-29 2024-03-22 北京百度网讯科技有限公司 基于推理服务的流媒体处理方法、装置、电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107579931A (zh) * 2017-09-08 2018-01-12 杭州云象网络技术有限公司 一种基于Kubernetes的区块链即服务资源适配方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10963356B2 (en) * 2018-04-18 2021-03-30 Nutanix, Inc. Dynamic allocation of compute resources at a recovery site
CN110825580A (zh) * 2019-10-11 2020-02-21 紫光云(南京)数字技术有限公司 Kuberrnates Pod健康监控方法
CN111405055A (zh) * 2020-03-23 2020-07-10 北京达佳互联信息技术有限公司 多集群管理方法、系统、服务器、存储介质
CN111614738B (zh) * 2020-05-07 2022-05-10 北京金山云网络技术有限公司 基于Kubernetes集群的服务访问方法、装置、设备及存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107579931A (zh) * 2017-09-08 2018-01-12 杭州云象网络技术有限公司 一种基于Kubernetes的区块链即服务资源适配方法

Also Published As

Publication number Publication date
CN112965784A (zh) 2021-06-15

Similar Documents

Publication Publication Date Title
CN112965784B (zh) 一种服务访问方法、装置、设备及计算机可读存储介质
CN108683516B (zh) 一种应用实例的升级方法、装置和系统
CN112532675B (zh) 一种网络边缘计算系统的创建方法、装置及介质
US8069237B2 (en) Network system, information management server, and information management method
CN113169952B (zh) 一种基于区块链技术的容器云管理系统
US9405640B2 (en) Flexible failover policies in high availability computing systems
CN108881512B (zh) Ctdb的虚拟ip均衡分配方法、装置、设备及介质
US20050039192A1 (en) Generation of problem tickets for a computer system
CN107005426B (zh) 一种虚拟网络功能的生命周期管理方法及装置
CN111061432B (zh) 一种业务迁移方法、装置、设备及可读存储介质
CN108023939A (zh) 分布式系统中锁服务器故障的处理方法及其系统
US20100332532A1 (en) Distributed directory environment using clustered ldap servers
CN111090495A (zh) 节点管理方法、装置、设备、存储介质和系统
CN111311254A (zh) 一种基于区块链的业务处理方法、装置和系统
CN113347037A (zh) 一种数据中心访问方法及装置
US7519855B2 (en) Method and system for distributing data processing units in a communication network
CN113946276A (zh) 集群中的磁盘管理方法、装置及服务器
US20120072482A1 (en) Device for access to data aboard an aircraft
CN107770296B (zh) 分配地址的方法及装置
US20140047108A1 (en) Self organizing network event reporting
CN111124593B (zh) 信息处理方法及装置、网元及存储介质
CN111198756A (zh) 一种kubernetes集群的应用调度方法及装置
CN116389385A (zh) 一种系统资源处理方法、装置、存储介质及设备
CN112001800B (zh) 在区块链系统中进行业务处理的方法和装置
CN115580658A (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