CN110413288B - 应用部署方法、装置、服务器及存储介质 - Google Patents
应用部署方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN110413288B CN110413288B CN201910703051.3A CN201910703051A CN110413288B CN 110413288 B CN110413288 B CN 110413288B CN 201910703051 A CN201910703051 A CN 201910703051A CN 110413288 B CN110413288 B CN 110413288B
- Authority
- CN
- China
- Prior art keywords
- target service
- application
- service component
- component
- server
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- 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/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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例涉及大数据技术领域,具体而言,涉及一种应用部署方法、装置、服务器及存储介质,所述方法包括:获取待部署应用所需的目标服务组件;基于预先存储的目标服务组件的页面信息生成目标服务组件的参数配置页面;基于参数配置页面获取目标服务组件的配置参数;获取目标服务组件的内置属性;依据内置属性和配置参数调用Kubernetes集群提供的预设函数以启动目标服务组件,使Kubernetes集群部署待部署应用。本发明实现了一键式部署,提高了应用部署的效率。
Description
技术领域
本发明实施例涉及大数据技术领域,具体而言,涉及一种应用部署方法、装置、服务器及存储介质。
背景技术
现有技术中,在部署应用时,通常需要手工创建相应的服务器及资源,并搭建应用运行的依赖环境,预估应用需要占用的内存、CPU、存储空间等资源,这种方法对物理服务器环境有强依赖,应用部署的效率低,当物理服务器意外宕机时,物理服务器上部署的应用难以迁移。
发明内容
本发明实施例的目的在于提供一种应用部署方法、装置、服务器及存储介质,用以解决应用部署的效率低的问题。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提供了一种应用部署方法,应用于服务器,所述服务器与Kubernetes集群通信,所述方法包括:获取待部署应用所需的目标服务组件;基于目标服务组件的页面信息生成目标服务组件的参数配置页面;基于参数配置页面获取目标服务组件的配置参数;获取目标服务组件的内置属性;依据内置属性和配置参数调用Kubernetes集群提供的预设函数以启动目标服务组件,使Kubernetes集群部署待部署应用。
第二方面,本发明实施例还提供了一种应用部署装置,应用于服务器,所述服务器与Kubernetes集群通信,所述装置包括组件获取模块、页面生成模块、参数获取模块、内置属性获取模块和部署模块。其中,组件获取模块用于获取待部署应用所需的目标服务组件;页面生成模块用于基于预先存储的目标服务组件的页面信息生成目标服务组件的参数配置页面;参数获取模块,用于基于参数配置页面获取目标服务组件的配置参数;内置属性获取模块,用于获取目标服务组件的内置属性;部署模块,用于依据内置属性和配置参数调用Kubernetes集群提供的预设函数以启动目标服务组件,使Kubernetes集群部署待部署应用。
第三方面,本发明实施例还提供了一种服务器,所述服务器包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的应用部署方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述应用部署方法。
相对现有技术,本发明实施例提供的一种应用部署方法、装置、服务器及存储介质,在用户基于Kubernetes集群部署应用时,首先在确定待部署应用的目标服务组件,***会为目标服务组件生成参数配置页面;然后,获取用户在参数配置页面上输入配置参数及目标服务组件的内置属性,依据内置属性和配置参数调用Kubernetes集群提供的预设函数,以启动目标服务组件,使Kubernetes集群部署待部署应用。与现有技术相比,本发明实施例只需要用户在参数配置页面上输入目标服务组件的配置参数,依据目标服务组件的配置参数自动完成待部署应用的部署,实现一键式部署,提高了应用部署的效率。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的应用场景的软件架构示意图。
图2示出了本发明实施例提供的服务器的方框示意图。
图3示出了本发明实施例提供的应用部署方法流程图。
图4为图3示出的步骤S101一种实现方式的子步骤流程图。
图5为图3示出的步骤S101另一种实现方式的子步骤流程图。
图6为图3示出的步骤S105的子步骤流程图。
图7示出了本发明实施例提供的接口函数内部调用关系图。
图8示出了本发明实施例提供的web应用部署后的示例图。
图9示出了本发明实施例提供的应用部署装置的方框示意图。
图标:10-服务器;101-存储器;102-通信接口;103-处理器;104-总线;200-应用部署装置;201-组件获取模块;202-页面生成模块;203-参数获取模块;204-内置属性获取模块;205-部署模块。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在大数据技术领域,随着需要部署的应用的增多,物理服务器环境依赖导致的不兼容和难迁移的问题凸显,导致部署效率急剧下降、可靠性降低,为了减少应用部署时对物理服务器环境的强依赖,通常将应用部署在虚拟机上,虚拟机是基于物理服务器和操作***之间的中间软件层虚拟出的硬件资源,在虚拟出的硬件资源之上,再安装所需要的操作***形成的,因此,可以基于不同的物理服务器环境创建部署应用所需要的操作***环境,再基于操作***环境部署应用,由此,减少了应用部署对物理服务器环境的依赖。
虽然虚拟机减少了应用部署对物理服务器环境的依赖,但是,在实际应用中,开发的环境与实际运维的环境差异较大,开发环境与运维环境之间无法达到很好的桥接,在部署上线应用时,依旧需要花时间去处理环境不兼容的问题。
为了进一步提高应用部署效率,实现一键部署,本发明实施例基于Kubernetes集群进行应用部署,Kubernetes集群是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes集群的目标是让部署容器化的应用简单并且高效,Kubernetes集群提供了应用部署、规划、更新和维护的一种机制。本发明实施例提供参数配置页面,当用户在参数配置页面上输入配置参数后,依据配置参数调用Kubernetes集群提供的预设函数,完成待部署应用的部署,下面将进行详细描述。
请参照图1,图1示出了本发明实施例提供的应用场景的软件架构示意图。图1中,底层为运行Linux操作***的存储控制器,用于管理硬件存储设备,通过存储控制器上运行的Linux操作***在存储设备上部署clusterFs集群文件***,主要用于保存容器组pod挂载所需的数据,pod是Kubernetes集群创建或部署的最小/最简单的基本单位,一个pod代表Kubernetes集群上正在运行的一个进程。一个pod封装一个应用容器container或者多个container、存储资源、一个独立的网络IP以及管理控制容器运行方式的策略选项,这些container共享存储资源、网络、命名空间,被统一安排和调度,并运行在共享的上下文中。container是一种便携式、轻量级的操作***级虚拟化技术,通过镜像自包含软件的运行环境,可以很方便的在任何地方运行。Kubernetes集群基于clusterFs集群文件***部署,应用部署***又基于Kubernetes集群实现。Kubernetes集群分为2个命名空间:内置服务空间和应用服务空间,内置服务空间,主要用来启动应用部署***依赖的数据库、服务代理工具、镜像库等支撑***正常运行的服务;应用服务空间为用户通过应用部署***部署的应用提供服务支持,上述的应用部署装置属于应用部署***的一个功能模块,应用部署***还包括监控模块和镜像管理模块等其他功能模块,监控模块主要对于对部署的应用的健康状态进行检查和预警、对于应用资源使用情况进行绘图呈现和预警,镜像管理模块用于负责管理每个服务组件对应的镜像。
请参照图2,图2示出了本发明实施例提供的服务器10的方框示意图,服务器10包括存储器101、通信接口102、处理器103和总线104,所述存储器101、通信接口102和处理器103通过总线104连接,处理器103用于执行存储器101中存储的可执行模块,例如计算机程序。
其中,存储器101可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口102(可以是有线或者无线)实现该服务器10与外部存储设备之间的通信连接。
总线104可以是ISA总线、PCI总线或EISA总线等。图2中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器101用于存储程序,所述处理器103在接收到执行指令后,执行所述程序以实现本发明上述实施例揭示的应用部署方法。
在本实施例中,服务器10与Kubernetes集群通信至少包括以下两种情形:(1)服务器10是独立于Kubernetes集群的硬件设备,此时,服务器10与Kubernetes集群通信连接,服务器10在获取内置属性和配置参数后,调用Kubernetes集群提供的预设函数启动目标服务组件,以使Kubernetes集群部署待部署应用。(2)上述实施例揭示的应用部署方法对应的部署程序也运行于Kubernetes集群,即执行该部署程序的服务器10是Kubernetes集群中的服务器,此时,执行该部署程序的服务器10与Kubernetes集群通信,服务器10在获取内置属性和配置参数后,调用Kubernetes集群提供的预设函数启动目标服务组件,以使Kubernetes集群部署待部署应用。请参照图3,图3示出了本发明实施例提供的应用部署方法流程图,应用于服务器10,该应用部署方法包括以下步骤:
步骤S101,获取待部署应用所需的目标服务组件。
在本实施例中,一个应用可以划分为多个服务,服务可以采用服务组件来描述,每个服务可以对应一个服务组件,服务组件定义了对应服务的配置参数项及内置属性项,配置参数项可以是内存、CPU、环境变量等服务组件依赖的外部运行环境需要配置的参数,配置参数项的取值可以由用户在参数配置页面上输入;内置属性项可以是镜像文件名、启动参数等与服务组件依赖的程序相关的属性及对应的取值,例如,服务组件A的内置属性项包括镜像文件名,镜像文件名的取值为:a_image,根据该镜像文件名可以找到运行服务组件A需要执行的程序。内置属性项可以是预先存储于服务器10中的数据库。一个待部署应用可以需要一个或多个目标服务组件,当每一目标服务组件均通过调用Kubernetes集群提供的预设函数启动后,就完成了该待部署应用的部署,例如,一个web应用需要三个目标服务组件:web前端、redis数据库、mysql数据库,当这三个目标服务组件均通过调用Kubernetes集群提供的预设函数启动后,该web应用部署完成。
在本实施例中,首先,用户可以在部署界面下发应用部署指令以确定目标服务组件,然后,服务器10再获取目标服务组件,至少有两种具体实现方式确定目标服务组件,子步骤S1011-S1012对应一种确定目标服务组件的方式,子步骤S1013-S1014对应另一种确定目标服务组件的方式。
请参照图4,图4为图3示出的步骤S101一种实现方式的子步骤流程图,步骤S101可以包括如下子步骤:
子步骤S1011,接收应用部署指令,其中,应用部署指令用于指示服务器从至少一个服务模板中确定目标服务模板。
在本实施例中,为了简化用户操作,服务器10中预先存储了多个常用的服务模板,每一服务模板中均包括了多个服务组件,用户通过选择服务模板即可选择服务模板中的所有服务组件,避免了用户在部署界面上逐个选择所需要的服务组件,以此简化用户操作,增强可用性。
子步骤S1012,将目标服务模板包括的服务组件确定为待部署应用所需的目标服务组件。
在本实施例中,用户通过选中目标服务模板可以选中目标服务模板中的所有目标服务组件,由此,实现一次操作即可选中所需的目标服务组件,进一步简化了用户操作。
在本实施例中,当预先存储的服务模板达不到待部署应用的要求时,为了便于用户快速地确定所需要的目标服务组件,还可以为待部署应用选择除了目标服务模板中的服务组件之外的组件,增强了应用部署的灵活性,子步骤S1013-S1014即可达到这一目的。
请参照图5,图5为图3示出的步骤S101另一种实现方式的子步骤流程图,步骤S101还可以包括如下子步骤:
子步骤S1013,接收应用部署指令,其中,应用部署指令用于指示服务器从至少一个服务模板中确定目标服务模板,以及从至少一个备选服务组件中确定自选服务组件。
在本实施例中,部署界面除了显示服务模板供用户选择,还可以显示备选服务组件供用户选择,备选服务组件的页面信息预先存储与服务器10中。
子步骤S1014,将目标服务模板包括的服务组件以及自选服务组件确定为待部署应用所需的目标服务组件。
需要说明的是,用户也可以根据模板生成规则和实际场景的需要生成自定义模板,进一步增加应用部署的灵活性。
还需要说明的是,用户也可以不使用目标服务模板,直接从备选服务组件中确定自选服务组件,将自选服务组件确定为待部署应用所需的目标服务组件。
步骤S102,基于预先存储的目标服务组件的页面信息生成目标服务组件的参数配置页面。
在本实施例中,为了便于用户更方便地输入配置参数,服务器10中预先存储了目标服务组件的页面信息,根据目标服务组件的页面信息可以生成对应的参数配置页面,以使用户可以在参数配置页面上输入目标服务组件的配置参数。
步骤S103,基于参数配置页面获取目标服务组件的配置参数。
在本实施例中,例如,参数配置页面上显示mysql的配置参数项可以有:用户名、密码、内存、CPU的占用时间、部署方式,用户可以在参数配置页面上输入配置参数项对应的配置参数,用户名为:test、密码为:123456、内存为1GB、CPU的占用时间为10ms、部署方式为单机方式。
步骤S104,获取目标服务组件的内置属性。
步骤S105,依据内置属性和配置参数调用Kubernetes集群提供的预设函数以启动目标服务组件,使Kubernetes集群部署待部署应用。
在本实施例中,Kubernetes集群部署待部署应用是通过启动待部署应用所需的每一目标服务组件实现的,为了使每一目标服务组件可以按照用户要求启动,因此,需要依据该目标服务组件的配置参数及内置参数启动,而多个目标服务组件之间具有预设的调用关系,为了可以是待部署应用正常使用,必须按照预设的调用关系依次启动对应的目标服务组件,为了将待部署应用部署在Kubernetes集群上,使得待部署应用更稳定、更高效地运行,通过调用Kubernetes集群提供的预设函数启动目标服务组件。
在本实施例中,为了实现与Kubernetes集群低耦合,尽量简化与Kubernetes集群提供的预设函数之间的交互,提高可维护性,首先,将每一目标服务组件的配置参数和内置属性进行封装得到每一目标服务组件对应的组件实体类。然后,根据目标服务组件之间的相互关系,将目标服务组件的组件实体类进行封装得到待部署应用的应用实体类。最后,对应用实体类进行解析,依据目标服务组件之间的相互关系调用Kubernetes集群提供的预设函数启动每一目标服务组件。
请参照图6,图6为图3示出的步骤S105的子步骤流程图,步骤S105可以包括如下子步骤:
子步骤S1051,将每一目标服务组件的配置参数及内置属性进行封装,得到每一目标服务组件的组件实体类。
在本实施例中,组件实体类可以是抽象结构的实例,该抽象结构包括服务组件的配置参数项和内置属性项、以及对配置参数项进行操作的操作方法和对内置属性项进行操作的操作方法。以java实现为例,抽象结构可以是一个组件类,将该组件类进行实例化后得到组件实体类,一个简单的实例化的过程可以是:先创建该组件类的一个对象,然后根据配置参数和内置属性为该对象中对应的属性项进行赋值。需要说明的是,实际应用场景中,采用的开发语言可以是C++,python等,本申请不对具体实现语言预定限定,对于组件类的实例化的过程可以不仅仅包括赋值,也可以包括一些方法的增加和实现等等。
子步骤S1052,依据目标服务组件之间的相互关系,将各个目标服务组件的组件实体类进行封装,得到待部署应用的应用实体类。
在本实施例中,应用实体类的具体封装过程与组件实体类的封装过程类似,只不过使用的抽象结构不是上述的组件类,而是一个包含了目标服务组件之间的相互关系的应用类,将该应用类进行实例化后得到待部署应用的应用实体类。该应用实体类包括了待部署应用所需的目标服务组件的组件实体类及目标服务组件之间的相互关系。
子步骤S1053,依据应用实体类调用Kubernetes集群提供的预设函数以启动各个目标服务组件。
作为一种具体实施方式,可以通过如下方式实现:
首先,对应用实体类进行解析,依据目标服务组件之间的相互关系确定每一目标服务组件的启动顺序。
在本实施例中,目标服务组件之间的相互关系可以是目标服务组件中两两目标服务组件之间的依赖关系,例如,web前端组件依赖redis组件,因此,redis组件要先于web前端组件启动。
其次,确定启动每一目标服务组件所需的Kubernetes集群提供的预设函数。
最后,按照每一目标服务组件的启动顺序,依次调用对应的预设函数启动对应的目标服务组件。
需要说明的是,作为一种具体实现方式,子步骤S1044的实现步骤可以封装在一个接口函数中,该接口函数的输入参数为应用实体类,该接口函数可以:将该应用实体类进行解析,依据目标服务组件之间的相互关系确定每一目标服务组件的启动顺序;确定启动每一目标服务组件所需的Kubernetes集群提供的预设函数;按照每一目标服务组件的启动顺序,依次调用对应的预设函数启动对应的目标服务组件。
请参照图7,图7示出了本发明实施例提供的接口函数内部调用关系图。由于所有的目标服务组件最终都以pod的形式运行,而pod相关的数据需要进行持久化存储,考虑到可靠性,pod可以有多个副本。接口函数内部实现时,首先会为目标服务组件准备对应的存储空间,然后在基于此存储空间生成pod所需的其他资源。图7中,存储模块为pod提供存储空间,基于存储模块部署集群文件***(例如clusterFs集群文件***),用于管理存储模块提供的空间并对外提供访问接口,接口函数首先调用集群文件***提供的访问接口,准备pod所需要的空间,然后调用Kubernetes集群提供的接口函数(也称为K8s api)进行pod所需的资源的创建,包括:基于准备好的存储空间创建持久卷pv(persistent volume,pv)和持久卷声明pvc(persistent volume claim,pvc),pv为pvc提供存储资源,pvc是存储的请求,pvc向pv请求特定的存储资源大小及存储访问模式,而无需关心具体存储资源即存储访问的实现细节,pvc需要绑定到pv上,才能向绑定的pv请求所需的存储资源;创建statefulset控制器,statefulset控制器为Kubernetes集群中的有状态控制器,能保证pod的每个副本在整个生命周期中名称是不变的,同时statefuleset控制器会保证副本按照固定的顺序启动、更新或者删除;创建服务(service),service定义了外界访问一组特定pod的方式,service为pod提供负载均衡,service有自己的IP和端口,通过该IP和端口对外提供服务;创建ingress代理,ingress代理可以给service提供集群外部访问的统一资源定位符URL(Uniform Resource Locator,URL)、负载均衡、安全套接层SSL(Secure SocketsLayer,SSL)终止、超文本传输协议HTTP(HyperText Transfer Protocol,HTTP)路由等;创建pod,将container加入pod,每个container均对应一个镜像,container基于卷(volume)运行,volume通过pvc为container提供运行所需的存储资源。
请参照图8,图8示出了本发明实施例提供的web应用部署后的示例图。图8中,web应用包括三个目标组件:web前端目标组件、redis目标组件及mysql目标组件,web前端目标组件有两个pod互为备份:pod1和pod1的副本,对应一个服务1,redis数据库目标组件和mysql数据库目标组件均有两个pod,每个pod各自对应一个服务,提供对外服务,这两个服务分别对外提供主从服务,redis目标组件有主容器组2和从容器组2,分别对应主服务2和从服务2,mysql目标组件有主容器组3和从容器组3,分别对应主服务3和从服务3,该web应用通过ingress代理对外以URL形式提供应用服务,例如,用户可以通过http://ip:port/ test/访问该web应用提供的服务。这三个目标组件最终均是基于clusterFs集群文件***提供的存储空间运行并提供web服务的。
与现有技术相比,本发明实施例具有以下有益效果:
首先,提供参数配置页面给用户输入配置参数,得到用户的配置参数后,无需用户再次操作,自动完成应用的部署,实现了一键式部署,极大地提高了应用部署的效率。
其次,使用服务模板,简化了用户操作,进一步提高应用部署的效率。
再次,用户可以自定义服务模板,提高了应用部署的灵活性。
最后,将调用Kubernetes集群提供的预设函数的操作统一封装在同一个接口函数内,实现了与Kubernetes集群的低耦合,简化软件的开发、降低软件维护成本。
请参照图9,图9示出了本发明实施例提供的应用部署装置200的方框示意图。应用部署装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器101中或固化在所述服务器10的操作***(operating system,OS)中的软件功能模块。应用部署装置200包括组件获取模块201、页面生成模块202、参数获取模块203、内置属性获取模块204及部署模块205。
组件获取模块201,用于获取待部署应用所需的目标服务组件。
在本实施例中,服务器10预先存储有至少一个服务模板,每一服务模板包括至少一个服务组件,作为一种具体实施方式,组件获取模块201具体用于:接收应用部署指令,其中,应用部署指令用于指示服务器从至少一个服务模板中确定目标服务模板;将目标服务模板包括的服务组件确定为待部署应用所需的目标服务组件。
在本实施例中,服务器10预先存储有至少一个服务模板和至少一个备选服务组件,每一服务模板包括至少一个服务组件,作为另一种具体实施方式,组件获取模块201具体还用于:接收应用部署指令,其中,应用部署指令用于指示服务器从至少一个服务模板中确定目标服务模板,以及从至少一个备选服务组件中确定自选服务组件;将目标服务模板包括的服务组件以及自选服务组件确定为待部署应用所需的目标服务组件。
页面生成模块202,用于基于预先存储的目标服务组件的页面信息生成目标服务组件的参数配置页面。
参数获取模块203,用于基于参数配置页面获取目标服务组件的配置参数。
内置属性获取模块204,用于获取目标服务组件的内置属性。
部署模块205,用于依据内置属性和配置参数调用Kubernetes集群提供的预设函数以启动目标服务组件,使Kubernetes集群部署待部署应用。
在本实施例中,目标服务组件为多个,部署模块205具体用于:将每一目标服务组件的配置参数及内置属性进行封装,得到每一目标服务组件的组件实体类;依据目标服务组件之间的相互关系,将目标服务组件的组件实体类进行封装,得到待部署应用的应用实体类;依据应用实体类调用Kubernetes集群提供的预设函数以启动各个目标服务组件。
在本实施例中,部署模块205执行依据应用实体类调用Kubernetes集群提供的预设函数以使Kubernetes集群部署待部署应用的方式,包括:对应用实体类进行解析,依据目标服务组件之间的相互关系确定每一目标服务组件的启动顺序;确定启动每一目标服务组件所需的Kubernetes集群提供的预设函数;按照每一目标服务组件的启动顺序,调用对应的预设函数启动对应的目标服务组件。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的应用部署装置200的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明实施例还揭示了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器103执行时实现本发明前述实施例揭示的应用部署方法。
综上所述,本发明实施例提供一种应用部署方法、装置、服务器及存储介质,应用于服务器,所述服务器与Kubernetes集群通信,所述方法包括:获取待部署应用所需的目标服务组件;其中,目标服务组件的页面信息预先存储于所述服务器;根据目标服务组件的页面信息生成目标服务组件的参数配置页面;从参数配置页面获取目标服务组件的配置参数;依据配置参数调用Kubernetes集群提供的预设函数以使Kubernetes集群部署待部署应用。与现有技术相比,本发明实施例只需要用户在参数配置页面上输入目标服务组件的配置参数,依据目标服务组件的配置参数自动完成待部署应用的部署,实现一键式部署,提高了应用部署的效率。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
Claims (8)
1.一种应用部署方法,其特征在于,应用于服务器,所述服务器与Kubernetes集群通信,所述服务器预先存储有至少一个服务模板,每一所述服务模板包括至少一个服务组件,所述方法包括:
获取待部署应用所需的目标服务组件;所述获取待部署应用所需的目标服务组件的步骤,包括:
接收应用部署指令,其中,所述应用部署指令用于指示所述服务器从所述至少一个服务模板中确定目标服务模板;
将所述目标服务模板包括的服务组件确定为所述待部署应用所需的所述目标服务组件;
基于预先存储的所述目标服务组件的页面信息生成所述目标服务组件的参数配置页面;
基于所述参数配置页面获取所述目标服务组件的配置参数;
获取所述目标服务组件的内置属性;
依据所述内置属性和所述配置参数调用所述Kubernetes集群提供的预设函数以启动所述目标服务组件,使所述Kubernetes集群部署所述待部署应用。
2.如权利要求1所述的应用部署方法,其特征在于,所述服务器预先存储有至少一个备选服务组件,所述获取待部署应用所需的目标服务组件的步骤,包括:
接收应用部署指令,其中,所述应用部署指令用于指示所述服务器从所述至少一个服务模板中确定目标服务模板,以及从所述至少一个备选服务组件中确定自选服务组件;
将所述目标服务模板包括的服务组件以及所述自选服务组件确定为所述待部署应用所需的所述目标服务组件。
3.如权利要求1所述的应用部署方法,其特征在于,当所述目标服务组件为多个时,所述依据所述内置属性和所述配置参数调用所述Kubernetes集群提供的预设函数以启动所述目标服务组件的步骤,包括:
将每一目标服务组件的所述配置参数及所述内置属性进行封装,得到所述每一目标服务组件的组件实体类;
依据目标服务组件之间的相互关系,将各个目标服务组件的组件实体类进行封装,得到所述待部署应用的应用实体类;
依据所述应用实体类调用所述Kubernetes集群提供的预设函数以启动各个目标服务组件。
4.如权利要求3所述的应用部署方法,其特征在于,所述依据所述应用实体类调用所述Kubernetes集群提供的预设函数以启动各个目标服务组件的步骤,包括:
对所述应用实体类进行解析,依据目标服务组件之间的相互关系确定每一目标服务组件的启动顺序;
确定启动每一目标服务组件所需的所述Kubernetes集群提供的预设函数;
按照所述每一目标服务组件的启动顺序,依次调用对应的预设函数启动对应的目标服务组件。
5.一种应用部署装置,其特征在于,应用于服务器,所述服务器与Kubernetes集群通信,所述服务器预先存储有至少一个服务模板,每一所述服务模板包括至少一个服务组件,所述装置包括:
组件获取模块,用于获取待部署应用所需的目标服务组件;所述组件获取模块具体用于:
接收应用部署指令,其中,所述应用部署指令用于指示所述服务器从所述至少一个服务模板中确定目标服务模板;
将所述目标服务模板包括的服务组件确定为所述待部署应用所需的所述目标服务组件;
页面生成模块,用于基于预先存储的所述目标服务组件的页面信息生成所述目标服务组件的参数配置页面;
参数获取模块,用于基于所述参数配置页面获取所述目标服务组件的配置参数;
内置属性获取模块,用于获取所述目标服务组件的内置属性;
部署模块,用于依据所述内置属性和所述配置参数调用所述Kubernetes集群提供的预设函数以启动所述目标服务组件,使所述Kubernetes集群部署所述待部署应用。
6.如权利要求5所述的应用部署装置,其特征在于,所述服务器预先存储有至少一个备选服务组件,所述组件获取模块具体用于:
接收应用部署指令,其中,所述应用部署指令用于指示所述服务器从所述至少一个服务模板中确定目标服务模板,以及从所述至少一个备选服务组件中确定自选服务组件;
将所述目标服务模板包括的服务组件以及自选服务组件确定为所述待部署应用所需的所述目标服务组件。
7.一种服务器,其特征在于,所述服务器包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-4中任一项所述的方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910703051.3A CN110413288B (zh) | 2019-07-31 | 2019-07-31 | 应用部署方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910703051.3A CN110413288B (zh) | 2019-07-31 | 2019-07-31 | 应用部署方法、装置、服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110413288A CN110413288A (zh) | 2019-11-05 |
CN110413288B true CN110413288B (zh) | 2023-05-09 |
Family
ID=68364774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910703051.3A Active CN110413288B (zh) | 2019-07-31 | 2019-07-31 | 应用部署方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110413288B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158709A (zh) * | 2019-12-29 | 2020-05-15 | 北京浪潮数据技术有限公司 | 一种集群部署方法、装置、设备及计算机可读存储介质 |
CN111221593A (zh) * | 2019-12-31 | 2020-06-02 | 五八有限公司 | 一种动态加载方法及装置 |
CN111277460B (zh) * | 2020-01-17 | 2022-02-25 | 江苏满运软件科技有限公司 | 一种ZooKeeper容器化控制的方法、装置、存储介质及电子设备 |
CN111399983B (zh) * | 2020-03-18 | 2024-05-14 | 北京达佳互联信息技术有限公司 | 基于容器编排调度服务的调度方法及装置 |
CN113676501A (zh) * | 2020-05-13 | 2021-11-19 | 北京金山云网络技术有限公司 | 基于Kubernetes集群的应用部署方法、装置以及电子设备 |
CN111666155A (zh) * | 2020-06-02 | 2020-09-15 | 中国建设银行股份有限公司 | 一种资源配置文件管理方法、装置、设备及介质 |
CN111897539B (zh) * | 2020-07-20 | 2024-03-29 | 国云科技股份有限公司 | 一种根据服务角色的进行应用部署的方法及装置 |
CN111984270A (zh) * | 2020-08-20 | 2020-11-24 | 第四范式(北京)技术有限公司 | 应用部署方法和*** |
CN112162753A (zh) * | 2020-09-28 | 2021-01-01 | 腾讯科技(深圳)有限公司 | 软件部署方法、装置、计算机设备和存储介质 |
CN112764753B (zh) * | 2020-12-31 | 2024-04-12 | 北京知因智慧科技有限公司 | 一种项目的部署方法、装置、电子设备及存储介质 |
CN114253557B (zh) * | 2022-03-01 | 2022-05-20 | 苏州浪潮智能科技有限公司 | 一种云平台应用部署方法、装置、电子设备及存储介质 |
CN115357258B (zh) * | 2022-10-24 | 2022-12-27 | 北京闪马智建科技有限公司 | 应用的部署方法、装置、存储介质及电子装置 |
CN116737344B (zh) * | 2023-08-10 | 2023-11-07 | 中国电子投资控股有限公司 | 一种多容器集群的调度方法及调度服务*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009152736A1 (zh) * | 2008-06-16 | 2009-12-23 | 华为技术有限公司 | 创建业务、部署业务的方法、装置 |
CN107766060A (zh) * | 2017-10-31 | 2018-03-06 | 新华三云计算技术有限公司 | 应用配置部署方法及装置 |
CN109391514A (zh) * | 2018-10-11 | 2019-02-26 | 深信服科技股份有限公司 | 基于高可用性的设备部署方法、服务器、存储介质及装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7206817B2 (en) * | 2002-01-18 | 2007-04-17 | Bea Systems, Inc. | Systems and methods for application management and deployment |
CN105867955A (zh) * | 2015-09-18 | 2016-08-17 | 乐视云计算有限公司 | 一种应用程序部署***及部署方法 |
CN105260203B (zh) * | 2015-09-25 | 2017-11-17 | 福州大学 | 一种基于模型的Hadoop部署以及配置方法 |
CN105487891A (zh) * | 2015-11-26 | 2016-04-13 | 航天恒星科技有限公司 | 一种分布式集群的部署方法及*** |
CN106055388A (zh) * | 2016-06-25 | 2016-10-26 | 国云科技股份有限公司 | 一种云平台应用自动部署框架 |
US10505830B2 (en) * | 2016-08-11 | 2019-12-10 | Micro Focus Llc | Container monitoring configuration deployment |
CN106406933B (zh) * | 2016-08-30 | 2020-05-12 | 广西电网有限责任公司 | 一种Tomcat集群一键自动部署方法 |
CN108011739B (zh) * | 2016-10-31 | 2021-05-04 | 华为技术有限公司 | 一种虚拟网络的部署方法、装置及*** |
CN108574702A (zh) * | 2017-03-08 | 2018-09-25 | 中兴通讯股份有限公司 | 一种云应用部署方法和*** |
CN109426514B (zh) * | 2017-08-24 | 2022-09-02 | 北京金山云网络技术有限公司 | 服务自动化部署方法、装置、电子设备及存储介质 |
CN108549542A (zh) * | 2018-04-11 | 2018-09-18 | 泰康保险集团股份有限公司 | 一种文件部署方法、装置及设备 |
CN108958927B (zh) * | 2018-05-31 | 2023-04-18 | 康键信息技术(深圳)有限公司 | 容器应用的部署方法、装置、计算机设备和存储介质 |
CN109885316B (zh) * | 2019-02-18 | 2023-05-09 | 国家计算机网络与信息安全管理中心 | 基于kubernetes的hdfs-hbase部署方法及装置 |
-
2019
- 2019-07-31 CN CN201910703051.3A patent/CN110413288B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009152736A1 (zh) * | 2008-06-16 | 2009-12-23 | 华为技术有限公司 | 创建业务、部署业务的方法、装置 |
CN107766060A (zh) * | 2017-10-31 | 2018-03-06 | 新华三云计算技术有限公司 | 应用配置部署方法及装置 |
CN109391514A (zh) * | 2018-10-11 | 2019-02-26 | 深信服科技股份有限公司 | 基于高可用性的设备部署方法、服务器、存储介质及装置 |
Non-Patent Citations (1)
Title |
---|
何震苇 等.基于开源PaaS技术的互联网业务平台自动部署方案.《电信科学》.2015,(第10期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN110413288A (zh) | 2019-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110413288B (zh) | 应用部署方法、装置、服务器及存储介质 | |
US11178207B2 (en) | Software version control without affecting a deployed container | |
US11405274B2 (en) | Managing virtual network functions | |
US20210406079A1 (en) | Persistent Non-Homogeneous Worker Pools | |
US8762986B2 (en) | Advanced packaging and deployment of virtual appliances | |
US10324709B2 (en) | Apparatus and method for validating application deployment topology in cloud computing environment | |
US20150186129A1 (en) | Method and system for deploying a program module | |
US9996331B1 (en) | Customized application state transition | |
CN111527474B (zh) | 软件功能的动态交付 | |
US11528186B2 (en) | Automated initialization of bare metal servers | |
US11456914B2 (en) | Implementing affinity and anti-affinity with KUBERNETES | |
US11681585B2 (en) | Data migration for a shared database | |
US11271895B1 (en) | Implementing advanced networking capabilities using helm charts | |
US10482111B2 (en) | Custom property cluster definition for a graphic user interface | |
CN116028163A (zh) | 一种容器组的动态链接库调度方法、装置及存储介质 | |
CN117112122A (zh) | 一种集群部署方法和装置 | |
US11750451B2 (en) | Batch manager for complex workflows | |
US10073689B2 (en) | Managing application lifecycles within a federation of distributed software applications | |
CN115357198B (zh) | 存储卷的挂载方法及装置、存储介质及电子设备 | |
WO2023084345A1 (en) | Automated deployment of enterprise archive with dependency on application server via script | |
CN115202820A (zh) | Pod单元的创建方法、装置、设备及存储介质 | |
CN115437647A (zh) | 适配多框架的微服务部署方法、装置、终端及存储介质 | |
CN110971665A (zh) | 一种对接多类型存储的管理方法、***、设备及存储介质 | |
US11743188B2 (en) | Check-in monitoring for workflows | |
CN114860203A (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 |