CN110457114B - 应用集群部署方法及装置 - Google Patents
应用集群部署方法及装置 Download PDFInfo
- Publication number
- CN110457114B CN110457114B CN201910673056.6A CN201910673056A CN110457114B CN 110457114 B CN110457114 B CN 110457114B CN 201910673056 A CN201910673056 A CN 201910673056A CN 110457114 B CN110457114 B CN 110457114B
- Authority
- CN
- China
- Prior art keywords
- application
- application instance
- host node
- label
- cluster
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出一种应用集群部署方法及装置,其中方法包括:获取应用集群,以及应用集群中待部署的应用实例;针对每个待部署的应用实例,根据应用实例的标识查询应用实例关系表,判断应用实例关系表中是否存在与标识对应的标签;若存在与标识对应的标签,则将应用实例部署在标签对应的主机节点上,从而能够在应用实例重新部署时,将应用实例部署在之前部署的主机节点上,确保应用实例的运行数据不丢失,从而确保应用集群的正常运行。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种应用集群部署方法及装置。
背景技术
目前,在容器集群管理***(kubemetes,k8s)中进行应用集群部署的方法主要为,在部署应用集群时,将应用实例的运行数据保存在其所运行的主机节点的本地磁盘上,当应用实例重新部署时,会将应用实例随机分配到其他主机节点上去运行,从而无法获取到保存在之前主机节点上的运行数据,容易破坏集群数据的完备性,影响应用集群的正常运行。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一个目的在于提出一种应用集群部署方法,用于解决现有技术中应用集群的正常运行难以确保的问题。
本发明的第二个目的在于提出一种应用集群部署装置。
本发明的第三个目的在于提出另一种应用集群部署装置。
本发明的第四个目的在于提出一种非临时性计算机可读存储介质。
本发明的第五个目的在于提出一种计算机程序产品。
为达上述目的,本发明第一方面实施例提出了一种应用集群部署方法,包括:
获取应用集群,以及所述应用集群中待部署的应用实例;
针对每个待部署的应用实例,根据所述应用实例的标识查询应用实例关系表,判断所述应用实例关系表中是否存在与所述标识对应的标签;
若存在与所述标识对应的标签,则将所述应用实例部署在所述标签对应的主机节点上。
进一步的,所述的方法还包括:
若不存在与所述标识对应的标签,则为所述应用实例选择标签,将所述应用实例部署在选择的标签对应的主机节点上;
将所述应用实例的标识与选择的标签的对应关系,存储到所述应用实例关系表中。
进一步地,将所述应用实例部署在所述标签对应的主机节点上之后,还包括:
在所述应用实例的运行过程中,获取所述应用实例的运行数据,将所述运行数据存储在所述主机节点上以所述标识命名的文件中。
进一步的,所述的方法还包括:
接收故障请求,所述故障请求包括:出现故障的主机节点对应的第一标签;
回收所述第一标签;
获取集群管理***中的新增主机节点,将所述第一标签分配给所述新增主机节点,以在所述出现故障的主机节点上部署的第一应用实例重新部署时,将所述第一应用实例部署在所述新增主机节点上,并根据所述应用集群的各个应用实例对应的文件对所述第一应用实例对应的文件进行恢复操作。
进一步的,所述的方法还包括:
接收删除请求,所述删除请求包括:待删除的应用集群的集群标识;
针对所述待删除的应用集群中的每个应用实例,根据所述应用实例的标识查询应用实例关系表,获取部署有所述应用实例的第二主机节点,删除所述第二主机节点上以所述应用实例的标识命名的文件。
进一步的,所述的方法还包括:
接收移除请求,所述移除请求包括:待移除的主机节点的标签;
回收所述标签,并删除所述待移除的主机节点上的所有应用实例对应的文件。
本发明实施例的应用集群部署方法,通过获取应用集群,以及应用集群中待部署的应用实例;针对每个待部署的应用实例,根据应用实例的标识查询应用实例关系表,判断应用实例关系表中是否存在与标识对应的标签;若存在与标识对应的标签,则将应用实例部署在标签对应的主机节点上,从而能够在应用实例重新部署时,将应用实例部署在之前部署的主机节点上,确保应用实例的运行数据不丢失,从而确保应用集群的正常运行。
为达上述目的,本发明第二方面实施例提出了一种应用集群部署装置,包括:
获取模块,用于获取应用集群,以及所述应用集群中待部署的应用实例;
查询模块,用于针对每个待部署的应用实例,根据所述应用实例的标识查询应用实例关系表,判断所述应用实例关系表中是否存在与所述标识对应的标签;
部署模块,用于在存在与所述标识对应的标签时,将所述应用实例部署在所述标签对应的主机节点上。
进一步的,所述的装置还包括:存储模块;
所述部署模块,还用于在不存在与所述标识对应的标签时,为所述应用实例选择标签,将所述应用实例部署在选择的标签对应的主机节点上;
所述存储模块,用于将所述应用实例的标识与选择的标签的对应关系,存储到所述应用实例关系表中。
进一步地,所述的装置还包括:运行处理模块,用于在所述应用实例的运行过程中,获取所述应用实例的运行数据,将所述运行数据存储在所述主机节点上以所述标识命名的文件中。
进一步的,所述的装置还包括:第一接收模块、回收模块和分配模块;
所述第一接收模块,用于接收故障请求,所述故障请求包括:出现故障的主机节点对应的第一标签;
所述回收模块,用于回收所述第一标签;
所述分配模块,用于获取集群管理***中的新增主机节点,将所述第一标签分配给所述新增主机节点,以在所述出现故障的主机节点上部署的第一应用实例重新部署时,将所述第一应用实例部署在所述新增主机节点上,并根据所述应用集群的各个应用实例对应的文件对所述第一应用实例对应的文件进行恢复操作。
进一步的,所述的装置还包括:第二接收模块和删除模块;
所述第二接收模块,用于接收删除请求,所述删除请求包括:待删除的应用集群的集群标识;
所述删除模块,用于针对所述待删除的应用集群中的每个应用实例,根据所述应用实例的标识查询应用实例关系表,获取部署有所述应用实例的第二主机节点,删除所述第二主机节点上以所述应用实例的标识命名的文件。
进一步的,所述的装置还包括:第三接收模块和回收删除模块;
所述第三接收模块,用于接收移除请求,所述移除请求包括:待移除的主机节点的标签;
所述回收删除模块,用于回收所述标签,并删除所述待移除的主机节点上的所有应用实例对应的文件。
本发明实施例的应用集群部署装置,通过获取应用集群,以及应用集群中待部署的应用实例;针对每个待部署的应用实例,根据应用实例的标识查询应用实例关系表,判断应用实例关系表中是否存在与标识对应的标签;若存在与标识对应的标签,则将应用实例部署在标签对应的主机节点上,从而能够在应用实例重新部署时,将应用实例部署在之前部署的主机节点上,确保应用实例的运行数据不丢失,从而确保应用集群的正常运行。
为达上述目的,本发明第三方面实施例提出了另一种应用集群部署装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如上所述的应用集群部署方法。
为了实现上述目的,本发明第四方面实施例提出了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的应用集群部署方法。
为了实现上述目的,本发明第五方面实施例提出了一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时,实现如上所述的应用集群部署方法。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例提供的一种应用集群部署方法的流程示意图;
图2为主机节点的标签的配置示意图;
图3为应用实例关系表的示意图;
图4为本发明实施例提供的另一种应用集群部署方法的流程示意图;
图5为应用实例对应的文件的示意图;
图6为主机节点故障时的示意图;
图7为将回收的标签分配给新增主机节点D的示意图;
图8为应用实例3的运行数据的恢复示意图;
图9为应用集群的删除示意图;
图10为主机节点的移除示意图;
图11为本发明实施例提供的一种应用集群部署装置的结构示意图;
图12为本发明实施例提供的另一种应用集群部署装置的结构示意图;
图13为本发明实施例提供的另一种应用集群部署装置的结构示意图;
图14为本发明实施例提供的另一种应用集群部署装置的结构示意图;
图15为本发明实施例提供的另一种应用集群部署装置的结构示意图;
图16为本发明实施例提供的另一种应用集群部署装置的结构示意图;
图17为本发明实施例提供的另一种应用集群部署装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的应用集群部署方法及装置。
图1为本发明实施例提供的一种应用集群部署方法的流程示意图。如图1所示,该应用集群部署方法,主要包括以下步骤:
S101、获取应用集群,以及应用集群中待部署的应用实例。
本发明提供的应用集群部署方法的执行主体为应用集群部署装置,应用集群部署装置具体可以为由***开源的容器集群管理***(kubemetes,k8s),以及k8s***中管理主机节点上的应用集群管理组件。另外,应用集群部署装置还可以为安装有k8s***的服务器集群。本实施例中,以执行主体为k8s***中管理主机节点上的应用集群管理组件为例进行说明。
本实施例中,应用集群为设置有多个应用实例的应用。应用集群中包括有多个应用实例,多个应用实例执行相同的功能。本实施例中,可以根据应用集群待执行的功能的需要,确定需要运行的应用实例的数量,将该数量的应用实例确定为应用集群中待部署的应用实例。
S102、针对每个待部署的应用实例,根据应用实例的标识查询应用实例关系表,判断应用实例关系表中是否存在与标识对应的标签。
本实施例中,应用集群管理组件上预存有应用实例关系表,该表中保存有各个应用实例的标识与各个主机节点的标签之间的对应关系。其中,针对待部署的应用实例,若应用实例关系表中存在与该应用实例的标识对应的标签,则确定该应用实例在某个主机节点上部署过,该应用实例不是第一次部署;若应用实例关系表中未存在与该应用实例的标识对应的标签,则确定该应用实例没有部署过。其中,应用实例的标识可以为应用实例的名称、编号等。
本实施例中,针对k8s***中的每个主机节点,应用集群管理组件会为该主机节点生成唯一标签。其中,生成唯一标签的方式可以为顺序递增的方式,例如,标签(locknum)为1,标签为2,标签为3,以此类推。本实施例中,应用集群管理组件为各个主机节点生成唯一标签后,可以将标签配置在主机节点的label字段。如图2所示,为主机节点的标签的配置示意图。在图2中,主机节点A的标签的值为1,主机节点B的标签的值为2,主机节点C的标签的值为3。
S103、若存在与标识对应的标签,则将应用实例部署在标签对应的主机节点上。
本实施例中,将应用实例部署在标签对应的主机节点上,由于主机节点上存储有应用实例之前的运行数据,可以直接结合之前的运行数据来运行应用实例,确保应用实例的正常运行。本实施例中,可以通过配置k8s***中ReplicaSet的NodeSelector属性来将应用实例重新部署运行在之前的主机节点上。
另外,在上述实施例的基础上,所述的方法还包括:若不存在与标识对应的标签,则为应用实例选择标签,将应用实例部署在选择的标签对应的主机节点上;将应用实例的标识与选择的标签的对应关系,存储到应用实例关系表中。
本实施例中,为应用实例选择标签的方法可以为随机选择或者互斥选择。互斥选择指的是,若待部署的应用实例有a和b,将a部署在主机节点1上后,就不会将b部署在主机节点1上,而是将b部署在其他主机节点上,从而可以确保在主机节点1故障时仍有可用的应用实例。
本实施例中,应用实例关系表的示意图可以如图3所示,在图3中,应用实例1的标识为app-cluster-inst-1,对应的标签的值为1;应用实例2的标识为app-cluster-inst-2,对应的标签的值为1;应用实例3的标识为app-cluster-inst-3,对应的标签的值为2。
本发明实施例的应用集群部署方法,通过获取应用集群,以及应用集群中待部署的应用实例;针对每个待部署的应用实例,根据应用实例的标识查询应用实例关系表,判断应用实例关系表中是否存在与标识对应的标签;若存在与标识对应的标签,则将应用实例部署在标签对应的主机节点上,从而能够在应用实例重新部署时,将应用实例部署在之前部署的主机节点上,确保应用实例的运行数据不丢失,从而确保应用集群的正常运行。
图4为本发明实施例提供的另一种应用集群部署方法的流程示意图。如图4所示,在图1所示实施例的基础上,步骤103之后,所述的方法还可以包括以下步骤:
S104、在应用实例的运行过程中,获取应用实例的运行数据,将运行数据存储在主机节点上以标识命名的文件中。
本实施例中,应用实例对应的文件的示意图可以如图5所示,在图5中,在主机节点A上以app-cluster-inst-1命名的文件里保存有应用实例1的运行数据;在主机节点A上以app-cluster-inst-2命名的文件里保存有应用实例2的运行数据;在主机节点B上以app-cluster-inst-3命名的文件里保存有应用实例3的运行数据。
本实施例中,可以通过使用k8s***中的hostpath volume方式来将应用实例的运行数据保存在部署该应用实例的主机节点的本身磁盘上。
进一步的,在上述实施例的基础上,在第一种实施场景中,当存在故障的主机节点时,应用集群管理组件会接收到故障请求。应用集群管理组件接收到故障请求的方式可以为,通过对各个主机节点的状态进行监测,确定存在故障的主机节点;或者,接收到存在故障的主机节点发送的故障请求。
本实施例中,当应用集群管理组件接收到故障请求后,可以执行以下步骤:回收第一标签;获取集群管理***中的新增主机节点,将第一标签分配给新增主机节点,以在出现故障的主机节点上部署的第一应用实例重新部署时,将第一应用实例部署在新增主机节点上,并根据应用集群的各个应用实例对应的文件对第一应用实例对应的文件进行恢复操作。
本实施例中,当不是第一次部署第一应用实例时,会查询应用实例关系表,获取与第一应用实例的标识对应的标签,将第一应用实例部署在标签对应的主机节点上,即新增主机节点上。由于新增主机节点上并未保存有第一应用实例的运行数据,因此需要从应用集群的各个应用实例对应的文件中恢复出第一应用实例对应的运行数据,以便结合第一应用实例对应的运行数据,对第一应用实例进行运行操作。本实施例中,主机节点故障时的示意图可以如图6所示,在图6中,出现故障的主机节点为主机节点B,主机节点B故障导致部署在主机节点上的应用实例3无法运行,因此,需要回收主机节点B的标签,将该标签分配给新增主机节点D,将应用实例3部署在新增主机节点D上。如图7所示,为将回收的标签分配给新增主机节点D的示意图。
本实施例中,将回收的标签分配给新增主机节点D后,需要根据主机节点A上应用实例1对应的文件和应用实例2对应的文件进行应用实例3的运行数据的恢复操作。如图8所示,为应用实例3的运行数据的恢复示意图。
进一步的,在上述实施例的基础上,在第二种实施场景中,应用集群管理组件还可以执行以下步骤:接收删除请求,删除请求包括:待删除的应用集群的集群标识;针对待删除的应用集群中的每个应用实例,根据应用实例的标识查询应用实例关系表,获取部署有应用实例的第二主机节点,删除第二主机节点上以应用实例的标识命名的文件。
本实施例中,当删除应用集群时,需要将应用集群中每个应用实例对应的运行数据删除。因此,需要根据应用集群中应用实例的标识查询应用实例关系表,确定应用实例的运行数据所在的主机节点,然后从主机节点上删除应用实例的运行数据。例如,如图9所示,为应用集群的删除示意图。在图9中,应用集群1包括:应用实例1,应用实例2和应用实例3,因此,需要删除主机节点A中应用实例1对应的文件,删除主机节点A中应用实例2对应的文件,以及删除主机节点B中应用实例3对应的文件。
进一步的,在上述实施例的基础上,在第三种实施场景中,应用集群管理组件还可以执行以下步骤:接收移除请求,移除请求包括:待移除的主机节点的标签;回收标签,并删除待移除的主机节点上的所有应用实例对应的文件。其中,回收标签后,可以将回收的标签分配给新增主机节点。所有应用实例对应的文件的删除,是为了避免数据泄露。例如,如图10所示,为主机节点的移除示意图。在图10中,待移除的主机节点为主机节点A,因此,需要将主机节点A上应用集群1的应用实例1对应的文件,以及应用实例2对应的文件删除;需要将主机节点A上应用集群2的应用实例1对应的文件删除。
本发明实施例的应用集群部署方法,通过获取应用集群,以及应用集群中待部署的应用实例;针对每个待部署的应用实例,根据应用实例的标识查询应用实例关系表,判断应用实例关系表中是否存在与标识对应的标签;若存在与标识对应的标签,则将应用实例部署在标签对应的主机节点上;在应用实例的运行过程中,获取应用实例的运行数据,将运行数据存储在主机节点上以标识命名的文件中,从而能够在主机节点移除或者出现故障时,回收标签并分配给新增主机节点,从而能够将应用实例以及对应的文件部署在新增主机节点上,确保应用集群的正常运行。
图11为本发明实施例提供的一种应用集群部署装置的结构示意图。如图11所示,主要包括:获取模块11、查询模块12和部署模块13。
其中,获取模块11,用于获取应用集群,以及所述应用集群中待部署的应用实例;
查询模块12,用于针对每个待部署的应用实例,根据所述应用实例的标识查询应用实例关系表,判断所述应用实例关系表中是否存在与所述标识对应的标签;
部署模块13,用于在存在与所述标识对应的标签时,将所述应用实例部署在所述标签对应的主机节点上。
本发明提供的应用集群部署装置具体可以为由***开源的容器集群管理***(kubemetes,k8s),以及k8s***中管理主机节点上的应用集群管理组件。另外,应用集群部署装置还可以为安装有k8s***的服务器集群。本实施例中,以执行主体为k8s***中管理主机节点上的应用集群管理组件为例进行说明。
本实施例中,应用集群为设置有多个应用实例的应用。应用集群中包括有多个应用实例,多个应用实例执行相同的功能。本实施例中,可以根据应用集群待执行的功能的需要,确定需要运行的应用实例的数量,将该数量的应用实例确定为应用集群中待部署的应用实例。
本实施例中,应用集群管理组件上预存有应用实例关系表,该表中保存有各个应用实例的标识与各个主机节点的标签之间的对应关系。其中,针对待部署的应用实例,若应用实例关系表中存在与该应用实例的标识对应的标签,则确定该应用实例在某个主机节点上部署过,该应用实例不是第一次部署;若应用实例关系表中未存在与该应用实例的标识对应的标签,则确定该应用实例没有部署过。其中,应用实例的标识可以为应用实例的名称、编号等。
本实施例中,针对k8s***中的每个主机节点,应用集群管理组件会为该主机节点生成唯一标签。其中,生成唯一标签的方式可以为顺序递增的方式,例如,标签(locknum)为1,标签为2,标签为3,以此类推。本实施例中,应用集群管理组件为各个主机节点生成唯一标签后,可以将标签配置在主机节点的label字段。
本实施例中,将应用实例部署在标签对应的主机节点上,由于主机节点上存储有应用实例之前的运行数据,可以直接结合之前的运行数据来运行应用实例,确保应用实例的正常运行。本实施例中,可以通过配置k8s***中ReplicaSet的NodeSelector属性来将应用实例重新部署运行在之前的主机节点上。
另外,结合参考图12,在上述实施例的基础上,所述的装置还可以包括:存储模块14。
其中,所述部署模块13,还用于在不存在与所述标识对应的标签时,为所述应用实例选择标签,将所述应用实例部署在选择的标签对应的主机节点上;
所述存储模块14,用于将所述应用实例的标识与选择的标签的对应关系,存储到所述应用实例关系表中。
本实施例中,为应用实例选择标签的方法可以为随机选择或者互斥选择。互斥选择指的是,若待部署的应用实例有a和b,将a部署在主机节点1上后,就不会将b部署在主机节点1上,而是将b部署在其他主机节点上,从而可以确保在主机节点1故障时仍有可用的应用实例。
本发明实施例的应用集群部署装置,通过获取应用集群,以及应用集群中待部署的应用实例;针对每个待部署的应用实例,根据应用实例的标识查询应用实例关系表,判断应用实例关系表中是否存在与标识对应的标签;若存在与标识对应的标签,则将应用实例部署在标签对应的主机节点上,从而能够在应用实例重新部署时,将应用实例部署在之前部署的主机节点上,确保应用实例的运行数据不丢失,从而确保应用集群的正常运行。
进一步地,结合参考图13,在图11所示实施例的基础上,所述的装置还可以包括:运行处理模块15,用于在所述应用实例的运行过程中,获取所述应用实例的运行数据,将所述运行数据存储在所述主机节点上以所述标识命名的文件中。
本实施例中,应用实例对应的文件的示意图可以如图5所示,在图5中,在主机节点A上以app-cluster-inst-1命名的文件里保存有应用实例1的运行数据;在主机节点A上以app-cluster-inst-2命名的文件里保存有应用实例2的运行数据;在主机节点B上以app-cluster-inst-3命名的文件里保存有应用实例3的运行数据。
本实施例中,可以通过使用k8s***中的hostpath volume方式来将应用实例的运行数据保存在部署该应用实例的主机节点的本身磁盘上。
进一步地,结合参考图14,在图13所示实施例的基础上,所述的装置还可以包括:第一接收模块16、回收模块17和分配模块18;
所述第一接收模块16,用于接收故障请求,所述故障请求包括:出现故障的主机节点对应的第一标签;
所述回收模块17,用于回收所述第一标签;
所述分配模块18,用于获取集群管理***中的新增主机节点,将所述第一标签分配给所述新增主机节点,以在所述出现故障的主机节点上部署的第一应用实例重新部署时,将所述第一应用实例部署在所述新增主机节点上,并根据所述应用集群的各个应用实例对应的文件对所述第一应用实例对应的文件进行恢复操作。
本实施例中,当不是第一次部署第一应用实例时,会查询应用实例关系表,获取与第一应用实例的标识对应的标签,将第一应用实例部署在标签对应的主机节点上,即新增主机节点上。由于新增主机节点上并未保存有第一应用实例的运行数据,因此需要从应用集群的各个应用实例对应的文件中恢复出第一应用实例对应的运行数据,以便结合第一应用实例对应的运行数据,对第一应用实例进行运行操作。本实施例中,主机节点故障时的示意图可以如图6所示,在图6中,出现故障的主机节点为主机节点B,主机节点B故障导致部署在主机节点上的应用实例3无法运行,因此,需要回收主机节点B的标签,将该标签分配给新增主机节点D,将应用实例3部署在新增主机节点D上。如图7所示,为将回收的标签分配给新增主机节点D的示意图。
将回收的标签分配给新增主机节点D后,需要根据主机节点A上应用实例1对应的文件和应用实例2对应的文件进行应用实例3的运行数据的恢复操作。如图8所示,为应用实例3的运行数据的恢复示意图。
进一步地,结合参考图15,在图13所示实施例的基础上,所述的装置还可以包括:第二接收模块19和删除模块20;
所述第二接收模块19,用于接收删除请求,所述删除请求包括:待删除的应用集群的集群标识;
所述删除模块20,用于针对所述待删除的应用集群中的每个应用实例,根据所述应用实例的标识查询应用实例关系表,获取部署有所述应用实例的第二主机节点,删除所述第二主机节点上以所述应用实例的标识命名的文件。
本实施例中,当删除应用集群时,需要将应用集群中每个应用实例对应的运行数据删除。因此,需要根据应用集群中应用实例的标识查询应用实例关系表,确定应用实例的运行数据所在的主机节点,然后从主机节点上删除应用实例的运行数据。例如,如图9所示,为应用集群的删除示意图。在图9中,应用集群1包括:应用实例1,应用实例2和应用实例3,因此,需要删除主机节点A中应用实例1对应的文件,删除主机节点A中应用实例2对应的文件,以及删除主机节点B中应用实例3对应的文件。
进一步的,结合参考图16,在图13所示实施例的基础上,所述的装置还可以包括:第三接收模块21和回收删除模块22;
所述第三接收模块21,用于接收移除请求,所述移除请求包括:待移除的主机节点的标签;
所述回收删除模块22,用于回收所述标签,并删除所述待移除的主机节点上的所有应用实例对应的文件。
其中,回收标签后,可以将回收的标签分配给新增主机节点。所有应用实例对应的文件的删除,是为了避免数据泄露。例如,如图10所示,为主机节点的移除示意图。在图10中,待移除的主机节点为主机节点A,因此,需要将主机节点A上应用集群1的应用实例1对应的文件,以及应用实例2对应的文件删除;需要将主机节点A上应用集群2的应用实例1对应的文件删除。
本发明实施例的应用集群部署装置,通过获取应用集群,以及应用集群中待部署的应用实例;针对每个待部署的应用实例,根据应用实例的标识查询应用实例关系表,判断应用实例关系表中是否存在与标识对应的标签;若存在与标识对应的标签,则将应用实例部署在标签对应的主机节点上;在应用实例的运行过程中,获取应用实例的运行数据,将运行数据存储在主机节点上以标识命名的文件中,从而能够在主机节点移除或者出现故障时,回收标签并分配给新增主机节点,从而能够将应用实例以及对应的文件部署在新增主机节点上,确保应用集群的正常运行。
图17为本发明实施例提供的另一种应用集群部署装置的结构示意图。该应用集群部署装置包括:
存储器1001、处理器1002及存储在存储器1001上并可在处理器1002上运行的计算机程序。
处理器1002执行所述程序时实现上述实施例中提供的应用集群部署方法。
进一步地,应用集群部署装置还包括:
通信接口1003,用于存储器1001和处理器1002之间的通信。
存储器1001,用于存放可在处理器1002上运行的计算机程序。
存储器1001可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器1002,用于执行所述程序时实现上述实施例所述的应用集群部署方法。
如果存储器1001、处理器1002和通信接口1003独立实现,则通信接口1003、存储器1001和处理器1002可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended IndustryStandard Architecture,简称为EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图17中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器1001、处理器1002及通信接口1003,集成在一块芯片上实现,则存储器1001、处理器1002及通信接口1003可以通过内部接口完成相互间的通信。
处理器1002可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的应用集群部署方法。
本发明还提供一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时,实现如上所述的应用集群部署方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理器的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行***、装置或设备或结合这些指令执行***、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种应用集群部署方法,其特征在于,包括:
获取应用集群,以及所述应用集群中待部署的应用实例;
针对每个待部署的应用实例,根据所述应用实例的标识查询应用实例关系表,判断所述应用实例关系表中是否存在与所述标识对应的标签;
若存在与所述标识对应的标签,则将所述应用实例部署在所述标签对应的主机节点上;
将所述应用实例部署在所述标签对应的主机节点上之后,还包括:
在所述应用实例的运行过程中,获取所述应用实例的运行数据,将所述运行数据存储在所述主机节点上以所述标识命名的文件中;
所述的方法,还包括:
接收故障请求,所述故障请求包括:出现故障的主机节点对应的第一标签;
回收所述第一标签;
获取集群管理***中的新增主机节点,将所述第一标签分配给所述新增主机节点,以在所述出现故障的主机节点上部署的第一应用实例重新部署时,将所述第一应用实例部署在所述新增主机节点上,并根据所述应用集群的各个应用实例对应的文件对所述第一应用实例对应的文件进行恢复操作。
2.根据权利要求1所述的方法,其特征在于,还包括:
若不存在与所述标识对应的标签,则为所述应用实例选择标签,将所述应用实例部署在选择的标签对应的主机节点上;
将所述应用实例的标识与选择的标签的对应关系,存储到所述应用实例关系表中。
3.根据权利要求1所述的方法,其特征在于,还包括:
接收删除请求,所述删除请求包括:待删除的应用集群的集群标识;
针对所述待删除的应用集群中的每个应用实例,根据所述应用实例的标识查询应用实例关系表,获取部署有所述应用实例的第二主机节点,删除所述第二主机节点上以所述应用实例的标识命名的文件。
4.根据权利要求1所述的方法,其特征在于,还包括:
接收移除请求,所述移除请求包括:待移除的主机节点的标签;
回收所述标签,并删除所述待移除的主机节点上的所有应用实例对应的文件。
5.一种应用集群部署装置,其特征在于,包括:
获取模块,用于获取应用集群,以及所述应用集群中待部署的应用实例;
查询模块,用于针对每个待部署的应用实例,根据所述应用实例的标识查询应用实例关系表,判断所述应用实例关系表中是否存在与所述标识对应的标签;
部署模块,用于在存在与所述标识对应的标签时,将所述应用实例部署在所述标签对应的主机节点上;
所述的装置,还包括:运行处理模块,用于在所述应用实例的运行过程中,获取所述应用实例的运行数据,将所述运行数据存储在所述主机节点上以所述标识命名的文件中;
所述的装置,还包括:第一接收模块、回收模块和分配模块;
所述第一接收模块,用于接收故障请求,所述故障请求包括:出现故障的主机节点对应的第一标签;
所述回收模块,用于回收所述第一标签;
所述分配模块,用于获取集群管理***中的新增主机节点,将所述第一标签分配给所述新增主机节点,以在所述出现故障的主机节点上部署的第一应用实例重新部署时,将所述第一应用实例部署在所述新增主机节点上,并根据所述应用集群的各个应用实例对应的文件对所述第一应用实例对应的文件进行恢复操作。
6.根据权利要求5所述的装置,其特征在于,还包括:存储模块;
所述部署模块,还用于在不存在与所述标识对应的标签时,为所述应用实例选择标签,将所述应用实例部署在选择的标签对应的主机节点上;
所述存储模块,用于将所述应用实例的标识与选择的标签的对应关系,存储到所述应用实例关系表中。
7.根据权利要求5所述的装置,其特征在于,还包括:第二接收模块和删除模块;
所述第二接收模块,用于接收删除请求,所述删除请求包括:待删除的应用集群的集群标识;
所述删除模块,用于针对所述待删除的应用集群中的每个应用实例,根据所述应用实例的标识查询应用实例关系表,获取部署有所述应用实例的第二主机节点,删除所述第二主机节点上以所述应用实例的标识命名的文件。
8.根据权利要求5所述的装置,其特征在于,还包括:第三接收模块和回收删除模块;
所述第三接收模块,用于接收移除请求,所述移除请求包括:待移除的主机节点的标签;
所述回收删除模块,用于回收所述标签,并删除所述待移除的主机节点上的所有应用实例对应的文件。
9.一种电子设备,其特征在于,包括:
存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-4任一所述的应用集群部署方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-4任一所述的应用集群部署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910673056.6A CN110457114B (zh) | 2019-07-24 | 2019-07-24 | 应用集群部署方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910673056.6A CN110457114B (zh) | 2019-07-24 | 2019-07-24 | 应用集群部署方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110457114A CN110457114A (zh) | 2019-11-15 |
CN110457114B true CN110457114B (zh) | 2020-11-27 |
Family
ID=68483359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910673056.6A Active CN110457114B (zh) | 2019-07-24 | 2019-07-24 | 应用集群部署方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110457114B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124765A (zh) * | 2019-12-06 | 2020-05-08 | 中盈优创资讯科技有限公司 | 一种基于节点标签的大数据集群任务调度方法及*** |
CN112600931B (zh) * | 2020-12-22 | 2022-05-24 | 新华三云计算技术有限公司 | 一种api网关部署方法及装置 |
CN114374688A (zh) * | 2022-01-12 | 2022-04-19 | 南方电网大数据服务有限公司 | 应用程序部署方法、装置、计算机设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101938416A (zh) * | 2010-09-01 | 2011-01-05 | 华南理工大学 | 一种基于动态重配置虚拟资源的云计算资源调度方法 |
CN102932164A (zh) * | 2011-09-09 | 2013-02-13 | 微软公司 | 群集客户端故障转移 |
CN104836819A (zh) * | 2014-02-10 | 2015-08-12 | 阿里巴巴集团控股有限公司 | 动态负载均衡的方法、***及监控调度设备 |
CN107305502A (zh) * | 2016-04-21 | 2017-10-31 | 中兴通讯股份有限公司 | 一种应用实例迁移的方法及设备 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9507676B2 (en) * | 2014-12-17 | 2016-11-29 | International Business Machines Corporation | Cluster creation and management for workload recovery |
CN104836850A (zh) * | 2015-04-16 | 2015-08-12 | 华为技术有限公司 | 一种实例节点管理的方法及管理设备 |
CN104852965B (zh) * | 2015-04-16 | 2018-10-02 | 北京京东尚科信息技术有限公司 | 一种用户账号项目管理方法及*** |
CN105159759B (zh) * | 2015-08-31 | 2019-01-08 | 华为软件技术有限公司 | 应用实例部署方法和装置 |
CN107463582B (zh) * | 2016-06-03 | 2021-11-12 | 中兴通讯股份有限公司 | 分布式部署Hadoop集群的方法及装置 |
CN107562510B (zh) * | 2016-06-30 | 2021-09-21 | 华为技术有限公司 | 一种应用实例的管理方法及管理设备 |
CN108270726B (zh) * | 2016-12-30 | 2021-05-11 | 华为技术有限公司 | 应用实例部署方法及装置 |
CN107256178B (zh) * | 2017-04-27 | 2019-12-17 | 北京数人科技有限公司 | 一种容器管理平台 |
US10963349B2 (en) * | 2017-08-25 | 2021-03-30 | Vmware, Inc. | Containerized application snapshots |
US10496396B2 (en) * | 2017-09-29 | 2019-12-03 | Oracle International Corporation | Scalable artificial intelligence driven configuration management |
US11392363B2 (en) * | 2018-01-11 | 2022-07-19 | Robin Systems, Inc. | Implementing application entrypoints with containers of a bundled application |
-
2019
- 2019-07-24 CN CN201910673056.6A patent/CN110457114B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101938416A (zh) * | 2010-09-01 | 2011-01-05 | 华南理工大学 | 一种基于动态重配置虚拟资源的云计算资源调度方法 |
CN102932164A (zh) * | 2011-09-09 | 2013-02-13 | 微软公司 | 群集客户端故障转移 |
CN104836819A (zh) * | 2014-02-10 | 2015-08-12 | 阿里巴巴集团控股有限公司 | 动态负载均衡的方法、***及监控调度设备 |
CN107305502A (zh) * | 2016-04-21 | 2017-10-31 | 中兴通讯股份有限公司 | 一种应用实例迁移的方法及设备 |
Non-Patent Citations (1)
Title |
---|
《集群作业管理***SGE及其应用》;李媛 等;《计算机工程与设计》;20090722;第30卷(第12期);第2911-2914页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110457114A (zh) | 2019-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110457114B (zh) | 应用集群部署方法及装置 | |
CN110297766B (zh) | 基于分布式测试节点集群的软件测试方法及软件测试*** | |
TWI446683B (zh) | 分散式電池管理系統及其標識分配方法 | |
CN112243044B (zh) | 容器地址分配方法及装置 | |
CN111858306B (zh) | 一种芯片验证方法、装置、芯片及存储介质 | |
CN107566518B (zh) | 在安装文件过程中管理设备信息的方法和装置 | |
CN110597635B (zh) | 图形处理资源分配方法、装置、计算机设备及存储介质 | |
CN105095263B (zh) | ***的生成方法及其装置 | |
CN109271172B (zh) | 一种swarm集群的宿主机性能扩展方法及装置 | |
CN108984295B (zh) | 内存回收方法、计算机装置及计算机可读存储介质 | |
CN104915226A (zh) | 一种网络设备软件启动方法、装置及网络设备 | |
CN111897558A (zh) | 容器集群管理***Kubernetes升级方法和装置 | |
CN115756955A (zh) | 一种数据备份、数据恢复的方法、装置及计算机设备 | |
CN112269665A (zh) | 内存的处理方法和装置、电子设备和存储介质 | |
CN111506388A (zh) | 容器性能探测方法、容器管理平台及计算机存储介质 | |
CN112527446A (zh) | 时区同步方法、设备及终端设备 | |
CN108073453B (zh) | 分布式集群中cpu资源的调度方法以及装置 | |
CN112905322B (zh) | 资源加锁的方法、计算设备及计算机存储介质 | |
CN111491040B (zh) | 一种ip分配方法以及ip分配装置 | |
CN110532148B (zh) | 微服务***的监控方法及装置 | |
CN115993979A (zh) | 配置转换方法、平滑升级方法、装置、设备及存储介质 | |
CN112148513B (zh) | 单点服务数据的转储方法、装置及存储介质 | |
CN112306040A (zh) | 车辆检测方法、装置、设备及服务器 | |
CN113961479A (zh) | 适用于芯片验证环境下的存储器管理方法、装置、电子设备及存储介质 | |
CN114020212B (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 |