自动搭建Kubernetes主节点的方法及终端设备与流程

文档序号:15444921发布日期:2018-09-14 23:14阅读:158来源:国知局

本发明属于数据处理技术领域,尤其涉及自动搭建kubernetes主节点的方法、终端设备及计算机可读存储介质。



背景技术:

传统的虚拟化技术,如hypervisor虚拟化技术在性能和资源使用率等方面存在不足,而容器(container)技术通过将单个操作系统管理的资源划分到孤立的组中,提升了资源使用率,逐渐成为研究热门。容器可理解为一种沙盒。每个容器内运行一个应用,不同的容器相互隔离,但可在容器之间建立通信机制。docker容器技术允许在同一台主机或虚拟机上运行若干个容器,每个容器为独立的虚拟环境或应用。

通常来说,需要使用工具对容器进行控制。kubernetes为一款开源的容器操作平台,其可以实现将若干个容器组合成一个服务及动态地分配容器运行的主机等功能,为用户使用容器提供了极大的便利。通常来说,kubernetes集群包括主节点和从节点两类节点,其中主节点负责对kubernetes集群中所有资源进行管控和调度,故要使用kubernetes,首先需要进行主节点的搭建。但在现有技术中,主要通过用户手动搭建kubernetes主节点,并且搭建过程依赖互联网服务,搭建效率和适用性低。



技术实现要素:

有鉴于此,本发明实施例提供了自动搭建kubernetes主节点的方法、终端设备及计算机可读存储介质,以解决现有技术中需要依靠手动搭建kubernetes主节点,搭建效率和适用性低的问题。

本发明实施例的第一方面提供了一种自动搭建kubernetes主节点的方法,包括:

获取预设的用于搭建kubernetes主节点的脚本文件;

执行所述脚本文件,以根据用户输入的与所述kubernetes主节点相关的创建参数,生成配置文件;

启动saltstack工具,以根据所述配置文件搭建所述kubernetes主节点。

本发明实施例的第二方面提供了一种终端设备,所述终端设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:

获取预设的用于搭建kubernetes主节点的脚本文件;

执行所述脚本文件,以根据用户输入的与所述kubernetes主节点相关的创建参数,生成配置文件;

启动saltstack工具,以根据所述配置文件搭建所述kubernetes主节点。

本发明实施例的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

获取预设的用于搭建kubernetes主节点的脚本文件;

执行所述脚本文件,以根据用户输入的与所述kubernetes主节点相关的创建参数,生成配置文件;

启动saltstack工具,以根据所述配置文件搭建所述kubernetes主节点。

本发明实施例与现有技术相比存在的有益效果是:

本发明实施例通过获取预设的用于搭建kubernetes主节点的脚本文件,并通过执行预设的脚本文件,以根据用户输入的与所述kubernetes主节点相关的创建参数生成配置文件,最后启动saltstack工具,在saltstack工具控制下,自动根据该配置文件执行对kubernetes主节点的搭建,实现了kubernetes主节点的自动搭建,并且不需依赖互联网服务,提升了搭建效率和对搭建环境的适用性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的自动搭建kubernetes主节点的方法的实现流程图;

图2是本发明实施例提供的自动搭建kubernetes主节点的方法的实现流程图;

图3是本发明实施例提供的自动搭建kubernetes主节点的方法的实现流程图;

图4是本发明实施例提供的自动搭建kubernetes主节点的方法的实现流程图;

图5是本发明实施例提供的自动搭建kubernetes主节点的方法的实现流程图

图6是本发明实施例提供的终端设备的结构框图;

图7是本发明实施例提供的一个kubernetes集群的示意图;

图8是本发明实施例提供的基于kubernetes集群的区域结构图

图9是本发明实施例提供的终端设备的示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。

本发明实施例通过获取预先编写的用于搭建kubernetes主节点的脚本文件,并获取用户输入的与搭建kubernetes主节点相关的创建参数,执行预设的脚本文件,以根据该创建参数生成配置文件,最后启动saltstack工具,在saltstack工具控制下,自动根据该配置文件执行对kubernetes主节点的搭建,解决了需要手动搭建kubernetes主节点,并且搭建过程需处在联网环境,适用性差的问题。

为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。

图1示出了本发明实施例提供的自动搭建kubernetes主节点的方法的实现流程,详述如下:

在s101中,获取预设的用于搭建kubernetes主节点的脚本文件。

在本发明实施例中,主要通过saltstack工具进行kubernetes主节点的搭建,首先,获取预设的用于搭建kubernetes主节点的脚本文件,为了便于说明,对kubernetes及kubernetes主节点进行介绍。kubernetes为一款自动化容器操作的开源平台,能够实现对容器的部署、调度和节点集群间扩展等功能,将安装有kubernetes平台的物理服务器或虚拟机称作kubernetes节点。通常来说,需要多个kubernetes节点组建为kubernetes集群(kubernetescluster)以实现对容器的部署和管理。在一个kubernetes集群内,有且只有一套控制单元,即kubernetes主节点(kubernetesmaster),主要负责接收请求、资源调度以及进行管理,kubernetes主节点的组成部分在后文进行具体阐述。除了kubernetes主节点之外,kubernetes集群内还包括多个kubernetes主节点的下属对象,即kubernetes从节点(kubernetesnode),用于实际运行由kubernetes主节点分配的容器。

对于搭建过程,相比于传统的手动编写kubernetes主节点的每一条配置代码,在本发明实施例中,主要通过脚本文件搭建kubernetes主节点,脚本文件是确定的一系列控制计算机进行运算操作动作的组合,在其中可实现逻辑分支,脚本文件可采用shell语言等编写。

可选地,在接收到用户关于kubernetes主节点的搭建指令后,获取文件服务器packageserver上存储的脚本文件。在本发明实施例中,可向用户提供搭建kubernetes主节点的搭建选项,搭建选项可以以图形化界面或者命令行的形式呈现至用户,在获取到用户关于该搭建选项的确认结果,即获取到用户的搭建指令后,执行获取脚本文件的操作。另外,脚本文件在预先设置完成后,可放置于文件服务器packageserver中,packageserver为高速下载服务器,可用于放置各类二进制文件及脚本文件,其内的内容通常固定不变,故可应用在本发明实施例中,提升了脚本文件获取的实时性和可靠性。在此基础上,由于kubernetes平台适用于不同的操作系统,如windows、linux等,而不同的环境下,底层的搭建代码存在一定程度的差异,故可针对多个操作系统编写与其对应的多个脚本文件,并将多个脚本文件放置于packageserver中。在接收到用户通过终端设备发出的关于kubernetes主节点的搭建指令后,识别终端设备所属操作系统,并获取packageserver上存储的与终端设备的操作系统对应的脚本文件,防止获取到的脚本文件与运行环境不匹配,无法执行。

在s102中,执行所述脚本文件,以根据用户输入的与所述kubernetes主节点相关的创建参数,生成配置文件。

在获取到预设的脚本文件后,执行该脚本文件,在该脚本文件的执行过程中获取与kubernetes主节点相关的创建参数,部分创建参数如kubernetes主节点的版本号等可自动获取,另一部分创建参数如日志文件路径等需要检测用户输入,并从用户的输入内容中查找与日志文件路径相关的内容。其中,与kubernetes主节点相关的创建参数包括kubernetes主节点的属性参数,比如安装版本、kubernetes主节点的互联网协议地址、运行kubernetes主节点的主机标识(名称)以及区域标识等,还包括构成kubernetes主节点的各个组件的属性参数等。当获取到用户输入的创建参数后,脚本文件根据该创建参数生成配置文件。配置文件实质利用脚本语言编写而成,与脚本文件相似,为了便于说明,可将配置文件命名为部署脚本,在后续步骤中,配置文件执行,以通过saltstack工具搭建kubernetes主节点。

可选地,根据与kubernetes主节点相关的创建参数的各个类型生成输入模板,并获取用户通过输入模板输入的创建参数。由于创建参数的各个类型确定,故可根据创建参数的类型生成输入模板,输入模板中包含创建参数的各个类型的名称,便于用户输入与各个类型的名称对应的内容,降低了创建参数输入出错的可能。此外,输入模板还可配置于脚本文件中,当需要获取创建参数时,脚本文件执行,自动提供输入模板至用户。

在s103中,启动saltstack工具,以根据所述配置文件搭建所述kubernetes主节点。

以往的如kops等工具虽然能够进行对kubernetes主节点的搭建,但是在具体的搭建过程中,需要用户编写代码完成对如kubernetes主节点互联网协议地址的配置。故在本发明实施例中,使用saltstack工具搭建kubernetes主节点。需要说明的是,saltstack工具为开源的基础设施管理工具,分为管理主节点(saltmaster)和管理从节点(saltminion)两个部分。与kubernetes主节点和kubernetes从节点的关系类似,saltstack工具的管理主节点主要对管理从节点进行统一管理,而管理从节点运行于需要管理的物理服务器或虚拟机上,通过执行管理主节点传输的指令,并根据配置文件搭建kubernetes主节点,具体过程在后文进行阐述。

通过图1所示实施例可知,在本发明实施例中,通过获取预设的用于搭建kubernetes主节点的脚本文件,脚本文件可存储于文件服务器packageserver中,并获取与kubernetes主节点相关的创建参数,在执行脚本文件后,生成与创建参数对应的配置文件,最后启动saltstack工具,具体通过saltstack工具内的管理主节点和管理从节点,根据配置文件搭建kubernetes主节点,实现了kubernetes主节点的自动化搭建,减少了用户操作,提升了搭建效率。

图2所示,是在本发明实施例一的基础上,对通过saltstack工具根据配置文件搭建kubernetes主节点的过程进行细化后得到的步骤。本发明实施例提供了自动搭建kubernetes主节点的方法的实现流程图,如图2所示,该方法可以包括以下步骤:

在s201中,在所述saltstack工具下配置管理主节点和多个管理从节点,其中,所述管理主节点与所述多个管理从节点连接。

saltstack工具应用客户端/服务器架构,可实现远程命令执行和配置管理等功能。saltstack工具下包含管理主节点和多个管理从节点,管理主节点相当于saltstack工具的服务器,负责资源管理,多个管理从节点相当于saltstack工具的客户端,负责执行管理主节点下发的指令。在本发明实施例中,将为用户提供具体服务的区域称为可用区,并将可用区内部具体分为资源管理区和公共服务区,其中,资源管理区用于部署资源管理相关的程序与组件,可以访问公共服务区的物理服务器或虚拟机,相当于客户端/服务器架构中的服务器,故管理主节点运行于资源管理区;公共服务区用于部署为用户提供具体服务的程序或服务,相当于客户端/服务器架构中的客户端,故在公共服务区安装管理从节点。在saltstack工具启动后,自动配置管理主节点和多个管理从节点,其中,管理从节点在启动时,会根据加密算法生成私钥和公钥,生成完毕后并将公钥发送至管理主节点,管理主节点验证并接受公钥,从而与管理从节点建立连接。值得一提的是,管理主节点与管理从节点之间通过消息队列zeromq传递消息,也即管理主节点将消息发布至消息队列zeromq,管理从节点通过订阅消息队列zeromq从而得到该消息。

在s202中,调用所述管理主节点,以使所述多个管理从节点中的一个根据所述配置文件搭建所述kubernetes主节点。

saltstack工具下的管理主节点和多个管理从节点配置完成后,saltstack工具调用管理主节点,管理主节点从多个管理从节点中选择一个,被选择的管理从节点接收搭建的指令,根据配置文件搭建kubernetes主节点,实质是在该管理从节点所在的物理服务器或虚拟机进行kubernetes主节点的搭建。

对步骤s202中调用管理主节点,以使多个管理从节点中的一个根据配置文件搭建kubernetes主节点的过程进行细化,可得到如图3所示的一种实现方法,如图3所示,本发明实施例提供的自动搭建kubernetes主节点的方法包括如下步骤:

在s301中,检测所述多个管理从节点下是否存在所述kubernetes主节点。

由于创建参数与kubernetes主节点相关,故在启动saltstack工具,并配置完成管理主节点和多个管理从节点后,由管理主节点在与其连接的多个管理从节点下查找是否存在与创建参数对应的kubernetes主节点。

在s302中,若所述多个管理从节点下都不存在所述kubernetes主节点,则从所述多个管理从节点中选取与所述创建参数对应的管理从节点,作为搭建从节点。

如果在所有的管理从节点下都未查找到kubernetes主节点,则证明kubernetes主节点未被创建。值得一提的是,由于在本发明实施例中,是在管理从节点下搭建kubernetes主节点,故在步骤s102中,获取的与kubernetes主节点相关的创建参数也包含用户配置的管理从节点相关的参数,那么在本步骤中,即可根据创建参数从多个管理从节点中选择相应的管理从节点,作为搭建从节点。若检测到创建参数不包含与管理从节点相关的参数,则可从多个管理从节点中随机选择其中的一个作为搭建从节点,也可根据预设的选择机制在多个管理从节点中进行选择。

在s303中,在所述搭建从节点下根据所述配置文件搭建所述kubernetes主节点。

选取搭建从节点后,在该搭建从节点下根据配置文件搭建kubernetes主节点。此外,可对该搭建从节点设置标记,具体可对该搭建从节点设置标记戳,证明该搭建从节点已被用于创建kubernetes主节点。在标记戳设置完成后,若再次设置新的kubernetes主节点,那么在执行步骤s301的操作,即在检测多个管理从节点下是否存在kubernetes主节点时,则可根据管理从节点是否存在标记戳来判断该管理从节点是否已用于创建kubernetes主节点,提升了检测效率。

通过图2所示实施例可知,在本发明实施例中,通过在saltstack工具下配置管理主节点和多个管理从节点,管理主节点和多个管理从节点相连接,通过消息队列zeromq实现通信,并调用管理主节点,使管理主节点从多个管理从节点中选取一个,在选取的管理从节点下根据配置文件搭建kubernetes主节点,体现了通过saltstack工具搭建kubernetes主节点的具体过程,提升了搭建kubernetes主节点的稳定性。

图4所示,是在本发明实施例一的基础上,对启动saltstack工具,以根据所述配置文件搭建所述kubernetes主节点的过程进行细化后得到的步骤。本发明实施例提供了自动搭建kubernetes主节点的方法的实现流程图,如图4所示,该方法可以包括以下步骤:

在s401中,通过所述saltstack工具部署所述数据库组件,并获取与所述创建参数相关的网络配置数据,将所述网络配置数据加载至所述数据库组件。

在本发明实施例中,kubernetes主节点包括数据库(etcd)组件、接口服务(kubeapiserver)组件、控制(kubecontrollermanager)组件以及调度(kubescheduler)组件,为了便于解释本发明实施例的内容,提供了如图7所示的一个kubernetes集群的示意图,在图7中,master代表kubernetes主节点,controllermanager代表控制组件,scheduler代表调度组件,apiserver代表接口服务组件,etcd代表数据库组件,最下方的node代表kubernetes从节点。值得一提的是,在搭建kubernetes主节点,配置kubernetes主节点下的各个组件前,关闭防火墙,基于防火墙策略实现最小化的网络打通,即将管理主节点所在的资源管理区和管理从节点所在的公共服务区之间的网络打通。

数据库组件即etcd组件是分布式键值存储服务,通过分布式raft算法来保证数据一致性,并且提供基于超文本传输协议(hypertexttransferprotocol,http)和javascript对象标记语言(javascriptobjectnotation,json)的应用程序编程接口(applicationprogramminginterface,api),在本发明实施例中,数据库组件用于配置管理、数据存储及作为分布式锁,可通过saltstack工具进行部署,具体地,管理从节点根据配置文件配置数据库组件,具体通过配置文件从文件服务器中获取数据库组件配置文件,该数据库组件配置文件为二进制文件,用于配置数据库组件服务,配置内容还包括数据库名称和数据路径等。当数据库组件配置完成后,获取与创建参数相关的网络配置数据,并将网络配置数据加载至数据库组件。其中,网络配置数据的获取方式可以是在脚本文件中预设网络配置模板,并在获取到创建参数时,提取出创建参数中与网络配置数据相关的内容,并添加至网络配置模板中,从而在需要网络配置数据时直接从网络配置模板中获取。在添加kubernetes从节点,待加入的节点向数据库组件发送请求时,数据库组件可根据网络配置数据将待加入的节点识别为kubernetes从节点。

在s402中,依次部署所述接口服务组件、所述控制组件以及所述调度组件,并修改所述接口服务组件的服务地址。

数据库组件部署完成后,继续部署接口服务组件。如图7所示,在kubernetes主节点中,接口服务组件负责可与数据库组件进行数据交互,值得一提的是,除了接口服务组件外,kubernetes主节点的其他组件不会直接操作数据库组件。接口服务组件是kubernetes主节点的数据中心,管理kubernetes集群的应用程序编程接口。在步骤s102中提到,配置文件实质上是脚本语言编写的脚本文件,故在本步骤中,根据配置文件自动提取文件服务器中的接口服务配置文件,并根据接口服务配置文件对接口服务组件进行配置。另外,用户输入的创建参数包含数据库组件地址和接口服务地址,而配置文件由创建参数生成,故在步骤中还通过配置文件在接口服务组件中配置数据库组件地址和接口服务组件地址,其中,数据库组件地址为数据库组件中提供数据库服务的地址,在接口服务组件配置该数据库组件地址,以使接口服务组件能够通过数据库组件地址访问数据库组件;接口服务组件地址为接口服务组件的本地地址。值得一提的是,接口服务组件包括两类通信接口,一类是用于为kubernetes从节点提供访问数据库组件的接口,需要通过安全证书进行权限认证,具体内容在后文进行介绍;另一类是用于与调度组件和控制组件进行数据交互的接口,此接口为组件内部接口,不需进行权限认证。

控制组件为kubernetes集群的管理控制中心,保证kubernetes集群中各种资源的状态处于正常状态,当监控到kubernetes集群中某个资源状态不正常时,控制组件会触发调度操作,控制组件包括节点控制器(nodecontroller)和副本控制器(replicationcontroller)等。调度组件负责对kubernetes集群中的容器进行编排,具体负责将容器调度到具体的kubernetes从节点。调度组件通过接口服务组件提供的应用程序编程接口监听容器,获取待调度容器,并根据预设的排序机制对各个kubernetes从节点进行排序,将容器调度至排序首位的kubernetes从节点。通过配置文件从文件服务器中获取控制组件配置文件和调度组件配置文件,控制组件配置文件和调度组件配置文件都为二进制文件,其中控制组件配置文件用于对控制组件相关服务进行配置,调度组件配置文件用于对调度组件相关进行配置。配置过程还包括设置环境变量,环境变量包括控制组件和调度组件的版本环境变量等,环境变量由用户输入的创建参数确定,并通过配置文件在控制组件和调度组件中进行环境变量的自动配置。此外,根据配置文件自动修改接口服务组件的服务地址,以便控制组件和调度组件分别能够与接口服务组件进行数据交互,其中服务地址是指接口服务组件向外提供服务的地址。在配置完成kubernetes主节点下的所有组件后,可创建系统域名系统(domainnamesystem,dns)服务,也即kube-dns,负责在kubernetes集群内部创建dns服务,使得容器之间通过域名查找服务,便于容器之间构建服务。可选地,创建dashboard,dashboard是kubernetes集群的用户界面,便于用户通过dashboard对kubernetes集群的资源进行查看及操作。

通过图4所示实施例可知,在本发明实施例中,kubernetes主节点包括数据库组件、接口服务组件、控制组件和调度组件,通过saltstack工具部署数据库组件,并从网络配置模板中获取与创建参数相关的网络配置数据,将网络配置数据加载至所述数据库组件,数据库组件配置完成后,依次部署接口服务组件、控制组件和调度组件,并修改接口服务组件的服务地址,便于控制组件和调度组件单独和接口服务组件进行数据交互,体现了kubernetes主节点下各个组件的部署过程,提升了组件配置的自动化程度。

图5所示,是在本发明实施例一的基础上,对部署数据库组件的过程进行细化后得到的步骤。本发明实施例提供了自动搭建kubernetes主节点的方法的实现流程图,如图5所示,该方法可以包括以下步骤:

在s501中,根据所述配置文件生成第一安全证书和第二安全证书,其中,第一安全证书用于控制对所述数据库组件的访问权限,第二安全证书用于控制对所述接口服务组件的访问权限。

由于数据库组件和接口服务组件经常进行数据交互,故为了提升上述两个组件的安全性,在部署数据库组件时,根据配置文件自动生成第一安全证书和第二安全证书,第一安全证书和第二安全证书都为安全套接字层(securesocketlayer,ssl)证书。其中,第一安全证书用于控制对数据库组件的访问权限,第二安全证书用于控制对接口服务组件的访问权限。

在s502中,将所述第一安全证书配置至所述数据库组件和所述接口服务组件,并将所述第二安全证书配置至所述接口服务组件。

将第一安全证书配置至数据库组件和接口服务组件中,配置完成并启动数据库组件服务后,kubernetes从节点和接口服务组件在与数据库组件进行数据交互之前,都需要经过第一安全证书的验证。将第二安全证书配置至接口服务组件中,在启动接口服务组件服务后,kubernetes从节点在与接口服务组件进行数据交互之前,都需要经过第二安全证书的验证。

通过图5所示实施例可知,在本发明实施例中,在部署数据库组件时,生成第一安全证书和第二安全证书,并将第一安全证书配置至数据库组件和接口服务组件,用于控制kubernetes从节点和接口服务组件对数据库组件的访问权限,将第二安全证书配置至接口服务组件,用于控制kubernetes从节点对接口服务组件的访问权限,提升了数据库组件和接口服务组件的访问安全性。

在本发明另一实施例中,可基于专有网络实现kubernetes主节点及kubernetes集群的搭建,如图8所示,提供了基于kubernetes集群的区域结构图。首先对图8中的各个结构进行说明,用户专有网络(virtualprivatecloud,vpc)是用户创建的自定义私有网络,不同的专有网络之间逻辑隔离,用户可在自己的专有网络中创建和管理云主机,实现负载均衡、安全访问控制等功能,vpc1和vpc2是不同用户创建的专有网络。可用区包括资源管理区和公共服务区,以及具体的用户vpc区域,为云平台服务提供具体服务的区域,图8中的eca和sca为可用区的两个实例,分别代表华东区a和华南区a。如前所述,资源管理区用于部署资源管理相关的程序与组件,可以访问公共服务区的物理服务器或虚拟机,而公共服务区用于部署为用户提供具体服务的程序或服务,可以与用户vpc互通,公共服务区内包含资源池,资源池为可运行的物理服务器或虚拟机的集合,packageserver代表文件服务器,资源池内的master1和master2等代表kubernetes主节点,而vpc1和vpc2中的node代表kubernetes从节点,不同用户的用户vpc之间默认隔离。管理区是相对于可用区更高一层的统称,能够对所有可用区的资源管理区和公共服务区打通并进行管理,图8中管理区内的manager代表kubernetesmanager,是能够管理kubernetes集群的管理程序。

另外,图8的管理区中与manager连接的db代表数据库,与manager连接的etcd集群代表数据库组件集群。其中,数据库用于存储数据,数据库组件集群作为分布式锁保证一致性。kubernetesmanager通过调用资源管理区的管理主节点来对公共服务区的物理服务器或虚拟机进行管理,公共服务区的资源池内存在多个管理从节点,当kubernetesmanager部署kubernetes主节点时,从资源池的多个管理从节点中选取可用的管理从节点,并在该管理从节点部署kubernetes主节点。部署完成后,用户vpc下的节点作为kubernetes从节点,与kubernetes主节点组成kubernetes集群。本发明实施例通过在用户的专有网络下搭建kubernetes主节点以及kubernetes集群,保证了不同kubernetes集群间的隔离性。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

图6示出了本发明实施例提供的终端设备的结构框图,该终端设备包括的各单元用于执行图1对应的实施例中的各步骤。具体请参阅图1与图1所对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。

参见图6,所述终端设备包括:

第一获取单元61,用于获取预设的用于搭建kubernetes主节点的脚本文件;

第二获取单元62,用于执行所述脚本文件,以根据用户输入的与所述kubernetes主节点相关的创建参数,生成配置文件;

搭建单元63,用于启动saltstack工具,以根据所述配置文件搭建所述kubernetes主节点。

可选地,搭建单元63包括:

节点配置单元,用于在所述saltstack工具下配置管理主节点和多个管理从节点,其中,所述管理主节点与所述多个管理从节点连接;

调用单元,用于调用所述管理主节点,以使所述多个管理从节点中的一个根据所述配置文件搭建所述kubernetes主节点。

可选地,调用单元包括:

检测单元,用于检测所述多个管理从节点下是否存在所述kubernetes主节点;

选取单元,用于若所述多个管理从节点下都不存在所述kubernetes主节点,则从所述多个管理从节点中选取与所述创建参数对应的管理从节点,作为搭建从节点;

搭建子单元,用于在所述搭建从节点下根据所述配置文件搭建所述kubernetes主节点。

可选地,kubernetes主节点包括数据库组件、接口服务组件、控制组件以及调度组件,搭建单元63包括:

部署单元,用于通过所述saltstack工具部署所述数据库组件,并获取与所述创建参数相关的网络配置数据,将所述网络配置数据加载至所述数据库组件;

依次部署单元,用于依次部署所述接口服务组件、所述控制组件以及所述调度组件,并修改所述接口服务组件的服务地址。

可选地,部署单元还包括:

生成单元,用于根据所述配置文件生成第一安全证书和第二安全证书,其中,第一安全证书用于控制对所述数据库组件的访问权限,第二安全证书用于控制对所述接口服务组件的访问权限;

配置单元,用于将所述第一安全证书配置至所述数据库组件和所述接口服务组件,并将所述第二安全证书配置至所述接口服务组件。

因此,本发明实施例提供的终端设备实现了kubernetes主节点的自动搭建,减少了人工操作,提升了kubernetes主节点搭建的效率。

图9是本发明实施例提供的终端设备的示意图。如图9所示,该实施例的终端设备9包括:处理器90、存储器91以及存储在所述存储器91中并可在所述处理器90上运行的计算机程序92。所述处理器9执行所述计算机程序9时实现上述各个自动搭建kubernetes主节点实施例中的步骤,例如图1所示的步骤s101至s103。或者,所述处理器90执行所述计算机程序92时实现上述各装置实施例中各单元的功能,例如图6所示单元61至63的功能。

示例性的,所述计算机程序92可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器91中,并由所述处理器90执行,以完成本发明。所述一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序92在所述终端设备9中的执行过程。例如,所述计算机程序92可以被分割成第一获取单元、第二获取单元和搭建单元,各单元具体功能如下:

第一获取单元,用于获取预设的用于搭建kubernetes主节点的脚本文件;

第二获取单元,用于执行所述脚本文件,以根据用户输入的与所述kubernetes主节点相关的创建参数,生成配置文件;

搭建单元,用于启动saltstack工具,以根据所述配置文件搭建所述kubernetes主节点。

所述终端设备9可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备9可包括,但不仅限于,处理器90、存储器91。本领域技术人员可以理解,图9仅仅是终端设备9的示例,并不构成对终端设备9的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备9还可以包括输入输出设备、网络接入设备、总线等。

所称处理器90可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器91可以是所述终端设备9的内部存储单元,例如终端设备9的硬盘或内存。所述存储器91也可以是所述终端设备9的外部存储设备,例如所述终端设备9上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器91还可以既包括所述终端设备9的内部存储单元也包括外部存储设备。所述存储器91用于存储所述计算机程序以及所述终端设备9所需的其他程序和数据。所述存储器91还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1