CN115220874B - 一种Kubernetes集群部署方法、装置、设备及存储介质 - Google Patents
一种Kubernetes集群部署方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115220874B CN115220874B CN202211075904.1A CN202211075904A CN115220874B CN 115220874 B CN115220874 B CN 115220874B CN 202211075904 A CN202211075904 A CN 202211075904A CN 115220874 B CN115220874 B CN 115220874B
- Authority
- CN
- China
- Prior art keywords
- configuration
- configuration information
- cluster
- target server
- parameters
- 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
- 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
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0876—Aspects of the degree of configuration automation
- H04L41/0886—Fully automatic configuration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0889—Techniques to speed-up the configuration process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/22—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Automation & Control Theory (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种Kubernetes集群部署方法、装置、设备及存储介质,涉及计算机技术领域,该方法包括:获取用户在前端的预设图形界面输入的用于部署Kubernetes集群的目标配置信息,并将所述目标配置信息以参数的形式发送给后端,以便所述后端将所述参数存储至预设数据库;基于自动化运维工具ansible,利用所述参数自动生成的ansible配置文件,确定出部署了所述Kubernetes集群的目标服务器的配置依赖,并在所述目标服务器上安装所述配置依赖;利用所述参数生成键值对样式的第一yaml文件,然后通过安全外壳协议连接到所述目标服务器,以便基于所述配置依赖和所述yaml文件部署所述Kubernetes集群至所述目标服务器。通过本申请的技术方案,可以快速标准化的部署Kubernetes集群,提高部署效率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种Kubernetes集群部署方法、装置、设备及存储介质。
背景技术
Kubernetes(k8s)是Google(谷歌)开源的容器集群管理系统。在Docker(应用容器引擎)技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。目前,在K8S部署的过程中面临以下几个困难:第一,因为现在的K8S采用手工部署方式,无非通过kubeadm(一个快捷搭建K8S的安装工具)或者二进制手工部署,然而K8S有几千个配置项,每次部署都要手工配置会导致部署出来的K8S集群不统一、不够标准化;另外,手工部署集群时,由于每个人对于配置项的修改影响了K8S的维护以及排障,不同的配置项可能会导致某些组件出现故障,或者影响K8S组件的性能,使得无法快速交付集群,无法交付一个高性能并且生产可用的K8S集群,缺乏稳定性;第二,创建K8S集群大量的配置参数没有地方存储,配置无法记录,由于有几千个不同的配置项,但是没有一个地方记录这些配置项,各种配置无法统一管理,即使知道如何去配置K8S集群,在配置的时候也会异常痛苦,效率极低。
在现有技术中,已经存在一些部署K8S的方法:(1)提出登录虚拟机,并通过dockerrun命名将镜像组件部署至虚拟机的方法,然而该方法中缺少了对K8S部署的配置进行管理,通过镜像去部署K8S,配置只能写死在镜像中无法做任何修改,存在无法调整和优化K8S配置的弊端;(2)提出利用控制机和ansible(自动化运维工具)在目标K8S集群上自动执行访问脚本、运行环境脚本、节点脚本和网络脚本,通过shell(计算机壳层)脚本化,把环境配置、机器间免密互通、必要软件安装、配置互连等过程变成流水化自动化的脚本的方法,然而大量使用脚本来管理K8S配置,通过ansible和kubeadm来部署K8S时,每个脚本都需要单独配置,这使得配置极其繁琐,大量配置参数没有固化,缺乏图形界面,对于不了解这些脚本的人产生了极大的学习成本。
综上可见,如何便捷的、快速的、标准化的完成Kubernetes部署过程中的各个参数的配置,达到分钟级别交付K8S集群,集群交付过程中,降低配置参数的学习成本和学习压力是目前有待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种Kubernetes集群部署方法、装置、设备及存储介质,能够便捷的、快速的、标准化的完成Kubernetes部署过程中的各个参数的配置,达到分钟级别交付K8S集群,集群交付过程中,降低配置参数的学习成本和学习压力。其具体方案如下:
第一方面,本申请公开了一种Kubernetes集群部署方法,包括:
获取用户在前端的预设图形界面输入的用于部署Kubernetes集群的目标配置信息,并将所述目标配置信息以参数的形式发送给后端,以便所述后端将所述参数存储至预设数据库;
基于自动化运维工具ansible,利用所述参数自动生成的ansible配置文件,确定出部署了所述Kubernetes集群的目标服务器的配置依赖,并在所述目标服务器上安装所述配置依赖;
利用所述参数生成键值对样式的第一yaml文件,然后通过安全外壳协议连接到所述目标服务器,以便基于所述配置依赖和所述yaml文件部署所述Kubernetes集群至所述目标服务器。
可选的,所述获取用户在前端的预设图形界面输入的用于部署Kubernetes集群的目标配置信息之前,还包括:
通过react框架编写所述前端,并添加用于配置第一配置信息的配置参数、用于配置第二配置信息的配置参数和用于配置第三配置信息的配置参数;其中,所述第一配置信息为与所述Kubernetes集群配置相关的信息,所述第二配置信息为与所述目标服务器配置相关的信息,所述第三配置信息为根据所述用户自定义选择安装的组件的信息。
可选的,所述获取用户在前端的图形界面输入的用于部署Kubernetes集群的目标配置信息,包括:
获取用户在前端的图形界面输入的所述第一配置信息、所述第二配置信息和所述第三配置信息;
利用所述第一配置信息、所述第二配置信息和所述第三配置信息生成目标配置信息。
可选的,所述获取用户在前端的预设图形界面输入的用于部署Kubernetes集群的目标配置信息,包括:
当部署所述Kubernetes集群时存在多个主节点,则在所述第二配置信息中输入haproxy节点的IP地址;
当部署所述Kubernetes集群时需要部署GPU节点时,则在所述第二配置信息中添加所述GPU节点的IP地址。
可选的,所述基于所述配置依赖和所述yaml文件部署所述Kubernetes集群至所述目标服务器,包括:
基于所述配置依赖调整所述目标服务器的内核参数;
基于所述yaml文件,利用二进制的方式部署所述Kubernetes集群的主节点,以便基于所述主节点根据所述第三配置信息在所述目标服务器上部署组件。
可选的,所述通过安全外壳协议连接到所述目标服务器,包括:
在确定了用于部署所述Kubernetes集群的所述目标服务器之后,通过所述目标服务器提供所述安全外壳协议的密码,以便利用所述密码通过安全外壳协议连接到所述目标服务器。
可选的,所述的Kubernetes集群部署方法,还包括:
将所述预设数据库中的参数存储成第二yaml文件,并将所述第二yaml文件保存为模板。
第二方面,本申请公开了一种Kubernetes集群部署装置,包括:
前端信息获取模块,用于获取用户在前端的预设图形界面输入的用于部署Kubernetes集群的目标配置信息;
后端参数存储模块,用于将所述目标配置信息以参数的形式发送给后端,以便所述后端将所述参数存储至预设数据库;
配置依赖安装模块,用于基于自动化运维工具ansible,利用所述参数自动生成的ansible配置文件,确定出部署了所述Kubernetes集群的目标服务器的配置依赖,并在所述目标服务器上安装所述配置依赖;
yaml文件生成模块,用于利用所述参数生成键值对样式的第一yaml文件,然后通过安全外壳协议连接到所述目标服务器,以便基于所述配置依赖和所述yaml文件部署所述Kubernetes集群至所述目标服务器。
第三方面,本申请公开了一种电子设备,所述电子设备包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如前所述的Kubernetes集群部署方法。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中所述计算机程序被处理器执行时实现如前所述的Kubernetes集群部署方法。
本申请中,首先获取用户在前端的预设图形界面输入的用于部署Kubernetes集群的目标配置信息,并将所述目标配置信息以参数的形式发送给后端,以便所述后端将所述参数存储至预设数据库;然后基于自动化运维工具ansible,利用所述参数自动生成的ansible配置文件,确定出部署了所述Kubernetes集群的目标服务器的配置依赖,并在所述目标服务器上安装所述配置依赖;最后利用所述参数生成键值对样式的第一yaml文件,然后通过安全外壳协议连接到所述目标服务器,以便基于所述配置依赖和所述yaml文件部署所述Kubernetes集群至所述目标服务器。可见,第一,本申请开发了图形界面,固化许多配置参数,对用户屏蔽了不必要的配置以及简化了配置流程,降低了配置学习成本,解决每一个Kubernetes集群不同的配置管理问题;另外,通过前端的图形界面输入配置,由于固化了大量的配置,使得每次交付的集群都有大量的标准化配置,实现了标准化,每个集群都大同小异便于维护。第二,将在前端的预设图形界面输入的用于部署Kubernetes集群的目标配置信息以参数的形式存储至预设数据库,用以管理配置参数;然后通过ansible自动化的部署Kubernetes,并在前端以yaml文件的形式展示,提高部署效率,将大部分的配置写死在ansible中,将生产环境高性能的Kubernetes配置固化在ansible中,然后部署到服务器上,实现高性能,提升部署出的集群的稳定性。由于做了大量的优化,经过大规模生产验证的配置全都被固化到程序中,然后通过后端程序自动的部署Kubernetes,也即,本申请在前端配置完成后,整个过程通过后端程序实现,全过程无人工干预,极大降低了工作量,大量节省人工配置程序的成本,大幅降低Kubernetes集群配置的学习成本,实现高效率,用极短的时间就能交付Kubernetes集群。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种Kubernetes集群部署方法流程图;
图2为本申请公开的一种yaml文件存储为模板的配置示意图;
图3为本申请公开的一种ansible通过安全外壳协议连接服务器配置示意图;
图4为本申请公开的一种利用yaml文件部署Kubernetes集群配置示意图;
图5为本申请公开的一种Kubernetes集群部署方法整体流程示意图;
图6为本申请公开的一种具体的Kubernetes集群部署方法流程图;
图7为本申请公开的一种前端部署集群输入信息示意图;
图8为本申请公开的一种前端部署集群输入信息示意图;
图9为本申请公开的一种前端部署集群输入信息示意图;
图10为本申请公开的一种前端部署集群输入信息示意图;
图11为本申请公开的一种Kubernetes集群部署装置结构示意图;
图12为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,在K8S部署的过程中面临手工配置导致部署出来的K8S集群不统一、不够标准化的问题;另外,手工部署集群时,由于每个人对于配置项的修改影响了K8S的维护以及排障,不同的配置项可能会导致某些组件出现故障,或者影响K8S组件的性能,使得无法快速交付集群,无法交付一个高性能并且生产可用的K8S集群,缺乏稳定性;并且,创建K8S集群大量的配置参数没有地方存储,配置无法记录,各种配置无法统一管理,即使知道如何去配置K8S集群,在配置的时候也会异常痛苦,效率极低。
为此,本申请提供了一种Kubernetes集群部署方案,能够便捷的、快速的、标准化的完成Kubernetes部署过程中的各个参数的配置,达到分钟级别交付K8S集群,集群交付过程中,降低配置参数的学习成本和学习压力。
本发明实施例公开了一种Kubernetes集群部署方法,参见图1所示,该方法包括:
步骤S11:获取用户在前端的预设图形界面输入的用于部署Kubernetes集群的目标配置信息,并将所述目标配置信息以参数的形式发送给后端,以便所述后端将所述参数存储至预设数据库。
本申请实施例中,开发平台通过React来编写平台前端,用以提供图形界面管理Kubernetes部署,在前端的预设图形界面,用户可以根据需求输入部署Kubernetes集群需要的目标配置信息。在此过程中,由于将需要的配置的参数变为可选项固化,所以通过预设图形界面输入部署集群需要的信息时,对用户屏蔽了不必要的配置简化了配置流程,降低了配置学习成本。
本申请实施例中,当用户在前端的预设图形界面输入目标配置信息后,所填的信息均会通过参数的形式传给后端的程序,开发平台可以通过Golang来编写程序后端,统一管理Kubernetes的部署。后端程序将对应的参数存储在预设数据库中,如MySQL数据库,也即,通过后端API接收传递的参数并将其存储在数据库中,可以支持配置项的历史记录展示与查询功能。
需要指出的是,所填的目标配置信息也可以以参数的形式存储成yaml文件并保存成模板,以记录历史配置,如此一来,后端程序接收各种参数保存为yaml模板,用以记录关键配置,可以让配置信息随时取用,通过该模板能够快速的填写配置信息,省去繁琐的配置步骤。如图2所示为本申请实施例的一种yaml文件存储为模板的配置示意图。
步骤S12:基于自动化运维工具ansible,利用所述参数自动生成的ansible配置文件,确定出部署了所述Kubernetes集群的目标服务器的配置依赖,并在所述目标服务器上安装所述配置依赖。
本申请实施例中,后端程序存储完配置参数到数据库以后,能够从数据库中取出,并自动生成ansible配置文件,ansible通过ssh(Secure Shell,安全外壳协议)连接到部署了Kubernetes集群的目标服务器,自动判断其各种配置依赖,并自动化安装这些依赖。例如,当ansible ssh连接到了某台部署了Kubernetes集群的虚拟机上,则自动判断虚拟机的各种配置依赖并安装配置依赖,自动调整linux的各种内核参数,提升K8S服务器的稳定性。如图3所示为本申请实施例的一种ansible通过安全外壳协议连接服务器配置示意图。
可以理解的是,由于在部署Kubernetes集群时有大量的配置需要管理。仅适用ansible来部署是没问题,但是配置的繁琐程度难以想象,配置更改后没有历史记录,会导致查无所依,不知修改每个配置项的目的为何,同时每个集群的配置是否相同或不同。查询起来也非常费事。因此本申请实施例中不仅使用ansible自动化部署,还解决了在自动化部署过程中最为重要的配置项管理问题,也即,通过后端程序读取预设数据库中的配置参数,配合ansible安装各种依赖和优化服务器配置,自动化的部署Kubernetes集群,优化内核参数。
步骤S13:利用所述参数生成键值对样式的第一yaml文件,然后通过安全外壳协议连接到所述目标服务器,以便基于所述配置依赖和所述yaml文件部署所述Kubernetes集群至所述目标服务器。
本申请实施例中,后端程序通过预设数据库获取目标配置信息的参数,生成键值对(key-value)样式的第一yaml文件,然后通过安全外壳协议(ssh)连接到目标服务器。
在一种具体的实施方式中,基于所述配置依赖调整所述目标服务器的内核参数;基于所述yaml文件,利用二进制的方式部署所述Kubernetes集群的主节点,以便基于所述主节点根据所述第三配置信息在所述目标服务器上部署组件;其中,所述第三配置信息为根据所述用户自定义选择安装的组件的信息,例如部署Kubernetes的各种插件,包括网络插件、监控插件、日志插件、LoadBalancer插件、ingress插件等。
如图4所示为本实施方式中的以二进制的方式部署Kubernetes集群的主节点(K8Smaster)的示意图,可以理解的是,本申请实施例支持部署高可用的Kubernetes集群,如果有多台主节点的服务器,后端程序会自动配置K8S master高可用。
本申请实施例中,在确定了用于部署所述Kubernetes集群的所述目标服务器之后,通过所述目标服务器提供所述安全外壳协议的密码,以便利用所述密码通过安全外壳协议连接到所述目标服务器。
如图5所示为本申请实施例的整体流程示意图,首先确定要部署Kubernetes集群的服务器,并提供ssh密码。服务器资源收集完成后,通过前端页面可视化进行简易配置,包括集群信息的配置、目标服务器信息配置、自定义组件选择安装,全部选择完毕后确认信息提交部署。后端程序会自动化完成配置及部署,在此过程中,后端程序支持持久化参数,可以将前端输入的参数自动生成yaml文件,利用yaml文件自动化完成参数配置、自动化完成配置依赖的安装、自动化完成Kubernetes的组件安装,整个流程完成了针对部署Kubernetes的平台,用以高效率的交付标准、高稳定性、高可用的Kubernetes集群。
本申请中,首先获取用户在前端的预设图形界面输入的用于部署Kubernetes集群的目标配置信息,并将所述目标配置信息以参数的形式发送给后端,以便所述后端将所述参数存储至预设数据库;然后基于自动化运维工具ansible,利用所述参数自动生成的ansible配置文件,确定出部署了所述Kubernetes集群的目标服务器的配置依赖,并在所述目标服务器上安装所述配置依赖;最后利用所述参数生成键值对样式的第一yaml文件,然后通过安全外壳协议连接到所述目标服务器,以便基于所述配置依赖和所述yaml文件部署所述Kubernetes集群至所述目标服务器。可见,第一,本申请开发了图形界面,固化许多配置参数,对用户屏蔽了不必要的配置以及简化了配置流程,降低了配置学习成本,解决每一个Kubernetes集群不同的配置管理问题;另外,通过前端的图形界面输入配置,由于固化了大量的配置,使得每次交付的集群都有大量的标准化配置,实现了标准化,每个集群都大同小异便于维护。第二,将在前端的预设图形界面输入的用于部署Kubernetes集群的目标配置信息以参数的形式存储至预设数据库,用以管理配置参数;然后通过ansible自动化的部署Kubernetes,并在前端以yaml文件的形式展示,提高部署效率,将大部分的配置写死在ansible中,将生产环境高性能的Kubernetes配置固化在ansible中,然后部署到服务器上,实现高性能,提升部署出的集群的稳定性。由于做了大量的优化,经过大规模生产验证的配置全都被固化到程序中,然后通过后端程序自动的部署Kubernetes,也即,本申请在前端配置完成后,整个过程通过后端程序实现,全过程无人工干预,极大降低了工作量,大量节省人工配置程序的成本,大幅降低Kubernetes集群配置的学习成本,实现高效率,用极短的时间就能交付Kubernetes集群。
本申请实施例公开了一种具体的Kubernetes集群部署方法,参见图6所示,该方法包括:
步骤S21:通过react框架编写所述前端,并添加用于配置第一配置信息的配置参数、用于配置第二配置信息的配置参数和用于配置第三配置信息的配置参数。
本申请实施例中,所述第一配置信息为与所述Kubernetes集群配置相关的信息,所述第二配置信息为与所述目标服务器配置相关的信息,所述第三配置信息为根据所述用户自定义选择安装的组件的信息。
如图7所示为在预设图形界面可以设置的第一配置信息界面,包括了Kubernetes集群配置相关的基本信息,如选择的容器、Kubernetes版本,以及网络相关信息和部署相关信息等。如图8所示为在预设图形界面可以设置的第二配置信息界面,填写Kubernetes各个组件要安装到的服务器,包括了Kubernetes集群配置相关的节点配置信息,如主从节点的IP地址,进一步的,当部署所述Kubernetes集群时存在多个主节点时,可以在所述第二配置信息中输入haproxy节点的IP地址;当部署所述Kubernetes集群时需要部署GPU节点时,则在所述第二配置信息中添加所述GPU节点的IP地址。如图9所示为在预设图形界面可以设置的第三配置信息界面,选择需要安装的组件,如网络插件,监控插件,日志插件,loadbalancer插件,ingress插件等。
可以理解的是,本申请实施例中所展示的界面仅为可以应用本申请实施例的应用场景的示例,帮助本领域技术人员理解本发明的技术内容,但并不意味本发明实施例不可以在预设图形界面设置其他的选项。
步骤S22:获取用户在前端的图形界面输入的所述第一配置信息、所述第二配置信息和所述第三配置信息;利用所述第一配置信息、所述第二配置信息和所述第三配置信息生成目标配置信息。
本申请实施例中,当在前端的预设图形界面中将第一配置信息、第二配置信息和第三配置信息输入完成后,如图10所示,确认配置,并提交部署。也即,利用所述第一配置信息、所述第二配置信息和所述第三配置信息生成目标配置信息。
步骤S23:基于自动化运维工具ansible,利用所述参数自动生成的ansible配置文件,确定出部署了所述Kubernetes集群的目标服务器的配置依赖,并在所述目标服务器上安装所述配置依赖。
步骤S24:利用所述参数生成键值对样式的第一yaml文件,然后通过安全外壳协议连接到所述目标服务器,以便基于所述配置依赖和所述yaml文件部署所述Kubernetes集群至所述目标服务器。
其中,关于上述步骤S23、步骤S24更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本申请中,首先通过react框架编写所述前端,并添加用于配置第一配置信息的配置参数、用于配置第二配置信息的配置参数和用于配置第三配置信息的配置参数;获取用户在前端的图形界面输入的所述第一配置信息、所述第二配置信息和所述第三配置信息;利用所述第一配置信息、所述第二配置信息和所述第三配置信息生成目标配置信息;然后基于自动化运维工具ansible,利用所述参数自动生成的ansible配置文件,确定出部署了所述Kubernetes集群的目标服务器的配置依赖,并在所述目标服务器上安装所述配置依赖;最后利用所述参数生成键值对样式的第一yaml文件,然后通过安全外壳协议连接到所述目标服务器,以便基于所述配置依赖和所述yaml文件部署所述Kubernetes集群至所述目标服务器。可见,第一,本申请开发了图形界面,固化许多配置参数,对用户屏蔽了不必要的配置以及简化了配置流程,降低了配置学习成本,解决每一个Kubernetes集群不同的配置管理问题;另外,通过前端的图形界面输入配置,由于固化了大量的配置,使得每次交付的集群都有大量的标准化配置,实现了标准化,每个集群都大同小异便于维护。第二,将在前端的预设图形界面输入的用于部署Kubernetes集群的目标配置信息以参数的形式存储至预设数据库,用以管理配置参数;然后通过ansible自动化的部署Kubernetes,并在前端以yaml文件的形式展示,提高部署效率,将大部分的配置写死在ansible中,将生产环境高性能的Kubernetes配置固化在ansible中,然后部署到服务器上,实现高性能,提升部署出的集群的稳定性。由于做了大量的优化,经过大规模生产验证的配置全都被固化到程序中,然后通过后端程序自动的部署Kubernetes,也即,本申请在前端配置完成后,整个过程通过后端程序实现,全过程无人工干预,极大降低了工作量,大量节省人工配置程序的成本,大幅降低Kubernetes集群配置的学习成本,实现高效率,用极短的时间就能交付Kubernetes集群。
相应的,本申请实施例还公开了一种Kubernetes集群部署装置,参见图11所示,该装置包括:
前端信息获取模块11,用于获取用户在前端的预设图形界面输入的用于部署Kubernetes集群的目标配置信息;
后端参数存储模块12,用于将所述目标配置信息以参数的形式发送给后端,以便所述后端将所述参数存储至预设数据库;
配置依赖安装模块13,用于基于自动化运维工具ansible,利用所述参数自动生成的ansible配置文件,确定出部署了所述Kubernetes集群的目标服务器的配置依赖,并在所述目标服务器上安装所述配置依赖;
yaml文件生成模块14,用于利用所述参数生成键值对样式的第一yaml文件,然后通过安全外壳协议连接到所述目标服务器,以便基于所述配置依赖和所述yaml文件部署所述Kubernetes集群至所述目标服务器。
其中,关于上述各个模块更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
由此可见,通过本实施例的上述方案,首先获取用户在前端的预设图形界面输入的用于部署Kubernetes集群的目标配置信息,并将所述目标配置信息以参数的形式发送给后端,以便所述后端将所述参数存储至预设数据库;然后基于自动化运维工具ansible,利用所述参数自动生成的ansible配置文件,确定出部署了所述Kubernetes集群的目标服务器的配置依赖,并在所述目标服务器上安装所述配置依赖;最后利用所述参数生成键值对样式的第一yaml文件,然后通过安全外壳协议连接到所述目标服务器,以便基于所述配置依赖和所述yaml文件部署所述Kubernetes集群至所述目标服务器。可见,第一,本申请开发了图形界面,固化许多配置参数,对用户屏蔽了不必要的配置以及简化了配置流程,降低了配置学习成本,解决每一个Kubernetes集群不同的配置管理问题;另外,通过前端的图形界面输入配置,由于固化了大量的配置,使得每次交付的集群都有大量的标准化配置,实现了标准化,每个集群都大同小异便于维护。第二,将在前端的预设图形界面输入的用于部署Kubernetes集群的目标配置信息以参数的形式存储至预设数据库,用以管理配置参数;然后通过ansible自动化的部署Kubernetes,并在前端以yaml文件的形式展示,提高部署效率,将大部分的配置写死在ansible中,将生产环境高性能的Kubernetes配置固化在ansible中,然后部署到服务器上,实现高性能,提升部署出的集群的稳定性。由于做了大量的优化,经过大规模生产验证的配置全都被固化到程序中,然后通过后端程序自动的部署Kubernetes,也即,本申请在前端配置完成后,整个过程通过后端程序实现,全过程无人工干预,极大降低了工作量,大量节省人工配置程序的成本,大幅降低Kubernetes集群配置的学习成本,实现高效率,用极短的时间就能交付Kubernetes集群。
进一步的,本申请实施例还公开了一种电子设备,图12是根据一示例性实施例示出的电子设备20结构图,图中内容不能认为是对本申请的使用范围的任何限制。
图12为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的Kubernetes集群部署方法中的相关步骤。另外,本实施例中的电子设备20具体可以为计算机。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222及数据223等,数据223可以包括各种各样的数据。存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的Kubernetes集群部署方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请实施例还公开了一种计算机可读存储介质,这里所说的计算机可读存储介质包括随机存取存储器(Random Access Memory,RAM)、内存、只读存储器(Read-Only Memory,ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、磁碟或者光盘或技术领域内所公知的任意其他形式的存储介质。其中,所述计算机程序被处理器执行时实现前述Kubernetes集群部署方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的Kubernetes集群部署或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种Kubernetes集群部署方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (7)
1.一种Kubernetes集群部署方法,其特征在于,包括:
获取用户在前端的预设图形界面输入的用于部署Kubernetes集群的目标配置信息,并将所述目标配置信息以参数的形式发送给后端,以便所述后端将所述参数存储至预设数据库;
基于自动化运维工具ansible,利用所述参数自动生成的ansible配置文件,确定出部署了所述Kubernetes集群的目标服务器的配置依赖,并在所述目标服务器上安装所述配置依赖;
利用所述参数生成键值对样式的第一yaml文件,然后通过安全外壳协议连接到所述目标服务器,以便基于所述配置依赖和所述第一yaml文件部署所述Kubernetes集群至所述目标服务器;
其中,所述获取用户在前端的预设图形界面输入的用于部署Kubernetes集群的目标配置信息之前,还包括:通过react框架编写所述前端,并添加用于配置第一配置信息的配置参数、用于配置第二配置信息的配置参数和用于配置第三配置信息的配置参数;其中,所述第一配置信息为与所述Kubernetes集群配置相关的信息,所述第二配置信息为与所述目标服务器配置相关的信息,所述第三配置信息为根据所述用户自定义选择安装的组件的信息;
所述获取用户在前端的图形界面输入的用于部署Kubernetes集群的目标配置信息,包括:获取用户在前端的图形界面输入的所述第一配置信息、所述第二配置信息和所述第三配置信息;利用所述第一配置信息、所述第二配置信息和所述第三配置信息生成目标配置信息;
所述基于所述配置依赖和所述第一yaml文件部署所述Kubernetes集群至所述目标服务器,包括:基于所述配置依赖调整所述目标服务器的内核参数;基于所述第一yaml文件,利用二进制的方式部署所述Kubernetes集群的主节点,以便基于所述主节点根据所述第三配置信息在所述目标服务器上部署组件。
2.根据权利要求1所述的Kubernetes集群部署方法,其特征在于,所述获取用户在前端的预设图形界面输入的用于部署Kubernetes集群的目标配置信息,包括:
当部署所述Kubernetes集群时存在多个主节点,则在所述第二配置信息中输入haproxy节点的IP地址;
当部署所述Kubernetes集群时需要部署GPU节点时,则在所述第二配置信息中添加所述GPU节点的IP地址。
3.根据权利要求1所述的Kubernetes集群部署方法,其特征在于,所述通过安全外壳协议连接到所述目标服务器,包括:
在确定了用于部署所述Kubernetes集群的所述目标服务器之后,通过所述目标服务器提供所述安全外壳协议的密码,以便利用所述密码通过安全外壳协议连接到所述目标服务器。
4.根据权利要求1至3任一项所述的Kubernetes集群部署方法,其特征在于,还包括:
将所述预设数据库中的参数存储成第二yaml文件,并将所述第二yaml文件保存为模板。
5.一种Kubernetes集群部署装置,其特征在于,包括:
前端信息获取模块,用于获取用户在前端的预设图形界面输入的用于部署Kubernetes集群的目标配置信息;
后端参数存储模块,用于将所述目标配置信息以参数的形式发送给后端,以便所述后端将所述参数存储至预设数据库;
配置依赖安装模块,用于基于自动化运维工具ansible,利用所述参数自动生成的ansible配置文件,确定出部署了所述Kubernetes集群的目标服务器的配置依赖,并在所述目标服务器上安装所述配置依赖;
yaml文件生成模块,用于利用所述参数生成键值对样式的第一yaml文件,然后通过安全外壳协议连接到所述目标服务器,以便基于所述配置依赖和所述第一yaml文件部署所述Kubernetes集群至所述目标服务器;
其中,所述Kubernetes集群部署装置,还用于获取用户在前端的预设图形界面输入的用于部署Kubernetes集群的目标配置信息之前,通过react框架编写所述前端,并添加用于配置第一配置信息的配置参数、用于配置第二配置信息的配置参数和用于配置第三配置信息的配置参数;其中,所述第一配置信息为与所述Kubernetes集群配置相关的信息,所述第二配置信息为与所述目标服务器配置相关的信息,所述第三配置信息为根据所述用户自定义选择安装的组件的信息;
所述前端信息获取模块,具体用于获取用户在前端的图形界面输入的所述第一配置信息、所述第二配置信息和所述第三配置信息;利用所述第一配置信息、所述第二配置信息和所述第三配置信息生成目标配置信息;
所述yaml文件生成模块,具体用于基于所述配置依赖调整所述目标服务器的内核参数;基于所述第一yaml文件,利用二进制的方式部署所述Kubernetes集群的主节点,以便基于所述主节点根据所述第三配置信息在所述目标服务器上部署组件。
6.一种电子设备,其特征在于,所述电子设备包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至4任一项所述的Kubernetes集群部署方法。
7.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的Kubernetes集群部署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211075904.1A CN115220874B (zh) | 2022-09-05 | 2022-09-05 | 一种Kubernetes集群部署方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211075904.1A CN115220874B (zh) | 2022-09-05 | 2022-09-05 | 一种Kubernetes集群部署方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115220874A CN115220874A (zh) | 2022-10-21 |
CN115220874B true CN115220874B (zh) | 2023-01-06 |
Family
ID=83616942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211075904.1A Active CN115220874B (zh) | 2022-09-05 | 2022-09-05 | 一种Kubernetes集群部署方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115220874B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116260860B (zh) * | 2022-12-09 | 2024-08-23 | 深圳前海环融联易信息科技服务有限公司 | 一种应用部署方法、装置、存储介质及电子设备 |
CN115865924B (zh) * | 2023-02-16 | 2023-04-21 | 天翼云科技有限公司 | 一种集群部署方法、装置、设备、介质及产品 |
CN117407008B (zh) * | 2023-12-14 | 2024-04-19 | 之江实验室 | 一种面向微小型数据中心的系统组件集群部署方法及装置 |
CN117908904B (zh) * | 2024-03-19 | 2024-05-31 | 麒麟软件有限公司 | 一种k8s集群部署及运维管理的方法和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112346818A (zh) * | 2020-11-02 | 2021-02-09 | 北京新媒传信科技有限公司 | 一种容器应用部署方法、装置、电子设备和存储介质 |
CN113127009A (zh) * | 2019-12-30 | 2021-07-16 | 航天信息股份有限公司 | 大数据管理平台的自动化部署方法和装置 |
CN114721764A (zh) * | 2020-12-18 | 2022-07-08 | 中兴通讯股份有限公司 | 业务编排部署方法、系统、网络设备和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6728748B1 (en) * | 1998-12-01 | 2004-04-27 | Network Appliance, Inc. | Method and apparatus for policy based class of service and adaptive service level management within the context of an internet and intranet |
US20190324743A1 (en) * | 2018-04-24 | 2019-10-24 | Cloud66 Inc. | Configuration file management |
US10860311B2 (en) * | 2018-06-13 | 2020-12-08 | Dell Products, L.P. | Method and apparatus for drift management in clustered environments |
CN111782232A (zh) * | 2020-07-31 | 2020-10-16 | 平安银行股份有限公司 | 集群的部署方法、装置、终端设备及存储介质 |
-
2022
- 2022-09-05 CN CN202211075904.1A patent/CN115220874B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127009A (zh) * | 2019-12-30 | 2021-07-16 | 航天信息股份有限公司 | 大数据管理平台的自动化部署方法和装置 |
CN112346818A (zh) * | 2020-11-02 | 2021-02-09 | 北京新媒传信科技有限公司 | 一种容器应用部署方法、装置、电子设备和存储介质 |
CN114721764A (zh) * | 2020-12-18 | 2022-07-08 | 中兴通讯股份有限公司 | 业务编排部署方法、系统、网络设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
Determining best practices for windows server deployment in the cloud;Revathy Nair等;《2016 International Conference on Advances in Computing, Communication, & Automation (ICACCA) (Spring)》;IEEE;20160929;全文 * |
基于Kubernetes集群的资源调度负载均衡研究;董亮亮;《中国优秀硕士学位论文全文数据库》;20210215(第2期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115220874A (zh) | 2022-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115220874B (zh) | 一种Kubernetes集群部署方法、装置、设备及存储介质 | |
CN108809722B (zh) | 一种部署Kubernetes集群的方法、装置和存储介质 | |
CN108536519B (zh) | 自动搭建Kubernetes主节点的方法及终端设备 | |
CN110752947B (zh) | 一种k8s集群部署方法及装置,一种部署平台 | |
CN112214330A (zh) | 集群中主节点的部署方法、装置及计算机可读存储介质 | |
CN105487892B (zh) | 一种Linux环境下的云中GIS服务部署系统 | |
CN113742031B (zh) | 节点状态信息获取方法、装置、电子设备及可读存储介质 | |
CN111064626B (zh) | 配置更新方法、装置、服务器及可读存储介质 | |
CN105099739A (zh) | 一种基于插件式软件部署方法、装置及应用服务器 | |
WO2016050270A1 (en) | Provisioning a service | |
US9935830B1 (en) | Cloud management system and method for disparate computing nodes in a cloud computing environment | |
CN110990026A (zh) | 一种PaaS平台自动部署方法及系统 | |
CN114996006A (zh) | 一种服务器编排配置执行方法、装置、设备及介质 | |
CN111786810A (zh) | 一种大规模测试床节点的自动化部署方法及系统 | |
CN111400041A (zh) | 服务器配置文件的管理方法、装置及计算机可读存储介质 | |
CN113590595A (zh) | 一种数据库多写方法、装置及相关设备 | |
CN113946323A (zh) | 基于微服务体系的在线开发方法、装置、设备及存储介质 | |
CN115357308A (zh) | 基于Docker的边缘物联代理装置、系统及应用方法 | |
CN113127009A (zh) | 大数据管理平台的自动化部署方法和装置 | |
CN113419818B (zh) | 基础组件部署方法、装置、服务器及存储介质 | |
CN106301855B (zh) | 一种网络管理系统部署方法、装置和网络管理系统 | |
Khalel et al. | Enhanced load balancing in kubernetes cluster by minikube | |
CN114579250B (zh) | 一种构建虚拟集群的方法、装置及存储介质 | |
CN111339055B (zh) | 大数据集群扩容方法及装置 | |
CN111045697A (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 |