自动部署Kubernetes从节点的方法及终端设备与流程

文档序号:15462308发布日期:2018-09-18 18:27阅读:252来源:国知局

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



背景技术:

传统的虚拟化技术在性能和资源使用率等方面存在不足,而Docker提供的容器技术通过将单个操作系统管理的资源划分到孤立的组中,提升了资源使用率,逐渐成为研究热门。该容器技术允许在同一台主机或虚拟机上运行若干个容器,每个容器都为一个独立的虚拟环境或应用。而Kubernetes作为一款开源的容器操作平台,其可以实现将若干个容器组合成一个服务及动态地分配容器运行的主机等功能,为用户使用容器提供了极大的便利。

在Kubernetes集群中,包括主节点和从节点两类节点,其中主节点负责对Kubernetes集群中的资源进行管控和调度,而从节点负责承载容器运行,是容器的宿主机。在现有技术中,如果想在Kubernetes集群中部署新的从节点,需要人工在对应的主机或虚拟机上安装大量的组件,以及进行大量配置。故现有的部署Kubernetes从节点的方法主要依靠人工操作,部署过程较为繁琐,并且在部署过程中容易发生配置错误,出错率高。



技术实现要素:

有鉴于此,本发明实施例提供了自动部署Kubernetes从节点的方法、终端设备及计算机可读存储介质,以解决现有技术中Kubernetes从节点部署较为繁琐,并且出错率高的问题。

本发明实施例的第一方面提供了一种自动部署Kubernetes从节点的方法,包括:

获取用户的请求信息,所述请求信息包括主节点标识和节点参数,所述节点参数用于指示物理节点或虚拟机节点;

查找与所述主节点标识对应的Kubernetes集群,并从数据库中获取与所述节点参数对应的待部署节点标识;

调用控制服务器,以查找与所述待部署节点标识对应的待部署节点,并将所述待部署节点部署为所述Kubernetes集群的Kubernetes从节点。

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

获取用户的请求信息,所述请求信息包括主节点标识和节点参数,所述节点参数用于指示物理节点或虚拟机节点;

查找与所述主节点标识对应的Kubernetes集群,并从数据库中获取与所述节点参数对应的待部署节点标识;

调用控制服务器,以查找与所述待部署节点标识对应的待部署节点,并将所述待部署节点部署为所述Kubernetes集群的Kubernetes从节点。

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

获取用户的请求信息,所述请求信息包括主节点标识和节点参数,所述节点参数用于指示物理节点或虚拟机节点;

查找与所述主节点标识对应的Kubernetes集群,并从数据库中获取与所述节点参数对应的待部署节点标识;

调用控制服务器,以查找与所述待部署节点标识对应的待部署节点,并将所述待部署节点部署为所述Kubernetes集群的Kubernetes从节点。

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

本发明实施例通过获取用户的请求信息,请求信息包括主节点标识和节点参数,其中节点参数用于指示物理节点或虚拟机节点,通过主节点标识查找到Kubernetes主节点,进而确定Kubernetes主节点所在的Kubernetes集群,并在数据库中查找出与节点参数对应的待部署节点标识,最后调用控制服务器,通过控制服务器查找与待部署节点标识对应的待部署节点,将该待部署节点部署为Kubernetes集群的Kubernetes从节点,本发明实施例在获取到用户的请求信息后,实现了Kubernetes从节点的自动部署,降低了部署过程中出错的可能性,并且节省了人力,提升了部署效率。

附图说明

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

图1是本发明实施例一提供的自动部署Kubernetes从节点的方法的实现流程图;

图2是本发明实施例二提供的自动部署Kubernetes从节点的方法的实现流程图;

图3是本发明实施例三提供的自动部署Kubernetes从节点的方法的实现流程图;

图4是本发明实施例四提供的自动部署Kubernetes从节点的方法的实现流程图;

图5是本发明实施例五提供的自动部署Kubernetes从节点的方法的实现流程图;

图6是本发明实施例六提供的自动部署Kubernetes从节点的方法的架构图;

图7是本发明实施例七提供的自动部署Kubernetes从节点的方法的流程图;

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

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

具体实施方式

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

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

图1示出了本发明实施例提供的自动部署Kubernetes从节点的方法的实现流程,详述如下:

在S101中,获取用户的请求信息,所述请求信息包括主节点标识和节点参数,所述节点参数用于指示物理节点或虚拟机节点。

在本发明实施例中,在已有Kubernetes集群的基础上,实现新的Kubernetes从节点的自动部署。为了便于说明,首先介绍Kubernetes及Kubernetes集群的相关内容。Kubernetes为一款自动化容器操作的开源平台,能够实现对容器的部署、调度以及节点集群间扩展等功能,将配置有Kubernetes环境的物理机节点或虚拟机称作Kubernetes节点。通常来说,Kubernetes集群(Kubernetes Cluster)由多个Kubernetes节点组建而成,可实现对容器的部署和管理。在一个Kubernetes集群内,有且只有一套控制单元,即Kubernetes主节点(Kubernetes Master),主要负责调度和管理Kubernetes服务,如分配某个服务的某个容器到Kubernetes集群的某个从节点上,Kubernetes主节点包含四个子组件,分别为数据库(Etcd)组件、接口服务(Kube ApiServer)组件、调度(Kube Scheduler)组件和控制(Kube Controller Manager)组件,在本发明实施例中,主要涉及到Kubernetes主节点的接口服务组件,接口服务组件用于接收及处理对Kubernetes集群的请求。除了Kubernetes主节点之外,Kubernetes集群内还包括Kubernetes从节点(Kubernetes Node),用于实际运行由Kubernetes主节点分配的容器。

本发明实施例在已建立Kubernetes主节点和Kubernetes集群的基础上,从从节点资源池的多个节点中确定待加入Kubernetes集群的节点,其中,从节点资源池是指可运行的物理节点或虚拟机的集合。为了便于解释,只针对从节点资源池内存放多个云主机虚拟机的情况进行说明,其中,云主机虚拟机是集群主机上虚拟出的类似于独立主机的部分,但应获知的是,从节点资源池也可存放其他如物理服务器的物理节点,以应用于本发明实施例中。为了确定待加入Kubernetes集群的节点,首先获取用户的请求信息,其中,请求信息包括主节点标识和节点参数。一般来说,主节点标识为Kubernetes主节点的接口服务组件向外提供的互联网协议地址(Internet Protocol Address,IP),通过主节点标识即可自动查找到对应的Kubernetes主节点,从而查找到对应的Kubernetes集群。而节点参数与物理节点或虚拟机节点相关,用于查找具体的待加入Kubernetes集群的物理节点或虚拟机节点,具体来说,物理节点或虚拟机节点都具备节点标识,而节点参数与节点标识具有唯一的对应关系,故节点参数可用于指示节点标识,从而指示物理节点或虚拟机节点。

可选地,向用户提供基于Kubernetes集群和从节点资源池的前端页面,并接收用户通过前端页面发送的请求信息。由于Kubernetes集群已建立,故可获取Kubernetes集群的集群信息,如Kubernetes集群的名称和已有的Kubernetes从节点名称等,并获取从节点资源池内多个云主机虚拟机的特征信息,比如多个云主机虚拟机的名称等,通过Kubernetes集群提供的用户接口,将集群信息和特征信息整合至前端页面进行展示。用户可在用户设备上通过域名登录等方式查看该前端页面,并选择需要添加入Kubernetes集群的云主机虚拟机,选择完成后,自动生成与用户的选择结果对应的请求信息,并将请求信息发送至Kubernetes集群,取代了用户查询节点及手动发送请求信息的操作,提升了请求信息生成的便利性。值得一提的是,为了提升请求信息的安全性,请求信息以基于安全套接层的超文本传输协议(Hyper Text Transfer Protocol over Secure Socket Layer,HTTPS)的格式进行发送。

进一步地,向用户提供与用户设备相关的Kubernetes集群的集群信息和多个云主机虚拟机的特征信息。在向用户提供前端页面的基础上,根据用户设备的权限,向用户提供包含与用户设备相关的集群信息和特征信息的前端页面。比如可能存在多个Kubernetes集群,在确定用户设备所属的Kubernetes集群后,只向用户提供与该Kubernetes集群相关的集群信息和特征信息,提升了部署Kubernetes从节点过程的安全性。

在S102中,查找与所述主节点标识对应的Kubernetes集群,并从数据库中获取与所述节点参数对应的待部署节点标识。

在接收到用户的请求信息后,对请求信息进行解析,得到其中的主节点标识和节点参数。根据主节点标识查找到对应的Kubernetes主节点,从而确定与Kubernetes主节点对应的Kubernetes集群,并且从数据库中查找与节点参数对应的待部署节点标识。在本发明实施例中,为了提升部署Kubernetes从节点的准确性,可设置管理程序(Kubernetes Manager)管理Kubernetes集群,并执行步骤S101及步骤S102的操作。具体地,管理程序在获取用户的请求信息后,对请求信息进行解析,获取请求信息中的主节点标识和节点参数。由于管理程序可能同时管理多个Kubernetes集群,故在获取主节点标识后,确定与主节点标识对应的Kubernetes集群,并调用数据库提供的数据接口,从数据库中的多个节点标识中查找与节点参数对应的待部署节点标识。值得一提的是,若存在多个Kubernetes集群,则数据库为多个Kubernetes集群共用。

在S103中,调用控制服务器,以查找与所述待部署节点标识对应的待部署节点,并将所述待部署节点部署为所述Kubernetes集群的Kubernetes从节点。

获取到待部署节点标识后,管理程序调用控制服务器,具体调用控制服务器添加节点的添加接口,值得一提的是,控制服务器是独立服务器,并不受Kubernetes集群控制,主要被设置于控制从节点资源池内的云主机虚拟机。从节点资源池内的多个云主机虚拟机都具有对应的节点标识,故控制服务器在获取到待部署节点标识后,在从节点资源池中查找与待部署节点标识对应的云主机虚拟机,作为待部署节点,并控制待部署节点,将其部署为Kubernetes集群的Kubernetes从节点。

图6示出了自动部署Kubernetes从节点的方法的一种架构图,如图6所示,该架构图在设置了管理程序以管理Kubernetes集群以及从节点资源池存放有多个云主机虚拟机的前提下,体现了自动部署Kubernetes从节点的整个过程。首先,管理程序接收到用户的请求信息,并解析出请求信息中的主节点标识和节点参数,根据主节点标识查找到对应的Kubernetes集群,根据节点参数从数据库中查找到对应的待部署节点标识,然后管理程序调用控制服务器,控制服务器从从节点资源池的多个云主机虚拟机中确定与待部署节点标识的云主机虚拟机,并对该云主机虚拟机进行部署,将其作为Kubernetes从节点添加入Kubernetes集群。

通过图1所示实施例可知,在本发明实施例中,通过获取用户的请求信息,请求信息中包含主节点标识和节点参数,首先确定Kubernetes从节点添加的对象,即与主节点标识对应的Kubernetes集群,再从数据库中获取与节点参数对应的待部署节点标识,最后通过控制服务器查找出与待部署节点标识对应的待部署节点,并将该待部署节点部署为Kubernetes集群的Kubernetes从节点,减少了人工操作,通过搭建自动化部署,提升了Kubernetes从节点的部署效率。

图2所示,是在本发明实施例一的基础上,在从数据库中获取与节点参数对应的待部署节点标识后,对待部署节点标识的有效性进行验证的过程。本发明实施例提供了自动部署Kubernetes从节点的方法的实现流程图,如图2所示,该方法可以包括以下步骤:

在S201中,获取从节点资源池内多个可用的节点的多个可用节点标识,并将所述待部署节点标识与所述多个可用节点标识进行比对。

在本发明实施例中,为了便于解释,只针对从节点资源池内存放的节点为云主机虚拟机的情况进行说明,但应获知的是,从节点资源池也可存放其他如物理节点的节点,以应用于本发明实施例中。由于节点参数包含在请求信息中,而请求信息是根据用户对某个云主机虚拟机进行选择从而自动生成的,其中,用户可以通过编写代码指定某个云主机虚拟机进行选择,但在本发明实施例中,更优地,是用户在前述的基于Kubernetes集群和从节点资源池的前端页面的基础上,通过对前端页面展示的某个云主机虚拟机进行点击操作,从而完成选择,后台则自动生成对应的请求信息。而在用户进行云主机虚拟机的选择时,存在无法获知云主机虚拟机的状态的可能,比如前端页面并未根据Kubernetes集群和从节点资源池的状态实时更新,导致请求信息生成时,请求信息中节点参数对应的待部署节点标识所在的云主机虚拟机可能已经加入主节点标识对应的Kubernetes集群或其他Kubernetes集群。故在从数据库中获取到节点参数对应的待部署节点标识后,获取从节点资源池中多个可用的节点的多个可用节点标识,并将待部署节点标识与多个可用节点标识进行比对,其中,多个可用的节点是指从节点资源池中的多个未加入Kubernetes集群并且处于运行状态的云主机虚拟机。

可选地,更新从节点资源池的多个可用节点标识,并将多个可用节点标识存入数据库。在本发明实施例中,更新从节点资源池中的节点状态,进而更新多个可用的节点和对应的多个可用节点标识,根据实际需求,更新可为实时更新,也可设置时间间隔进行更新。更新后,将多个可用节点标识存入数据库,存入方式可以是在数据库新建专门用于存放可用节点标识的状态数据表。在从数据库获取待部署节点标识后,再从数据库获取多个可用节点标识,减少了操作复杂度,提升了待部署节点选择的准确性。

在S202中,若所述待部署节点标识与所述多个可用节点标识的某一个比对成功,则将比对成功的可用节点标识对应的节点作为所述待部署节点。

多个可用节点标识获取完成后,将待部署节点标识与多个可用节点标识进行比对,如果待部署节点标识与多个可用节点标识的某一个比对成功,则证明待部署节点标识对应的云主机虚拟机可用,则将比对成功的可用节点标识对应的节点(云主机虚拟机)作为所述待部署节点。

在S203中,若所述待部署节点标识与所述多个可用节点标识都比对失败,则向所述用户输出报错提示。

如果待部署节点标识和多个可用节点标识都比对失败,则证明待部署节点标识对应的云主机虚拟机不可用,则将向用户输出报错提示,并且停止执行调用控制服务器,以查找与所述待部署节点标识对应的待部署节点及其后续的操作。其中,报错提示可包含与待部署节点标识对应的云主机虚拟机,方便用户对该云主机虚拟机进行查看等操作。

通过图2所示实施例可知,在本发明实施例中,通过获取从节点资源池中多个可用的节点的多个可用节点标识,并将待部署节点标识与多个可用节点标识进行比对,从而判断待部署节点标识的有效性,若待部署节点标识与多个可用节点标识的某一个比对成功,则待部署节点标识有效,将比对成功的可用节点标识对应的节点作为待部署节点;若待部署节点标识与多个可用节点标识都比对失败,则待部署节点标识无效,向用户输出报错提示,在确定待部署节点之前进行待部署节点标识的有效性验证,防止了资源浪费,在有效性验证通过后,保证了待部署节点标识对应的节点处于可用状态。

图3所示,是在本发明实施例一的基础上,并在待部署节点安装有代理客户端的情况下,对步骤S103进行细化得到的过程。本发明实施例提供了自动部署Kubernetes从节点的方法的实现流程图,如图3所示,该方法可以包括以下步骤:

在S301中,自动向所述控制服务器发送与所述请求信息对应的部署指令。

在从节点资源池中与待部署节点标识对应的待部署节点(云主机虚拟机)上,预先安装代理客户端(Agent),用于操作该待部署节点。由于需要将待部署节点部署为Kubernetes集群的Kubernetes从节点,故Kubernetes集群的管理程序在收到来自用户的请求信息后,解析出请求信息中的内容,并调用控制服务器的控制接口,向该控制服务器发送与请求信息对应的部署指令,优选地,该部署指令以HTTPS的格式进行发送。

在S302中,将所述控制服务器与所述代理客户端建立套接字连接,以使所述控制服务器在接收到所述部署指令后,使所述代理客户端根据所述部署指令将所述待部署节点部署为所述Kubernetes集群的所述Kubernetes从节点。

在本发明实施例中,使控制服务器与代理客户端建立套接字(socket)连接,套接字实质上提供了通信的端点,故在实现通信之前,双方首先各自创建一个端点,即控制服务器套接字和代理客户端套接字。套接字连接的建立过程主要分为三个步骤,即控制服务器监听、代理客户端请求以及连接确认。在控制服务器监听过程中,控制服务器套接字处于等待连接状态,实时监控网络中的连接请求,并不查找具体的代理客户端套接字;在代理客户端请求过程中,待部署节点上安装的代理客户端套接字先获取控制服务器套接字的相关信息,包括控制服务器套接字的地址和端口号,然后向控制服务器套接字发送连接请求;在连接确认过程中,控制服务器套接字成功监听到代理客户端套接字的连接请求,并响应该连接请求,将控制服务器套接字的相关信息发送至代理客户端套接字,最后在代理客户端套接字确认控制服务器套接字的相关信息后,完成套接字连接的建立。

控制服务器与代理客户端建立套接字连接后,基于接收到的部署指令,对代理客户端进行控制,使代理客户端根据部署指令在其下的待部署节点进行部署操作,将待部署节点添加为Kubernetes集群的Kubernetes从节点,具体地,代理客户端执行shell命令以进行部署操作。

在本发明实施例中,若部署指令包含认证签名值,则在步骤S302的将所述控制服务器与所述代理客户端建立套接字连接的操作之前,还包括控制服务器对部署指令进行鉴权的过程,本发明实施例提供了自动部署Kubernetes从节点的方法的实现流程图,如图4所示,该方法可以包括以下步骤:

在S401中,从所述部署指令中提取除所述认证签名值外的参数,并利用参数签名算法计算出所述参数的计算签名值。

为了验证控制服务器是否拥有执行部署指令的权限,在本发明实施例中,对控制服务器进行鉴权操作。首先,管理程序在发送部署指令前,提取出部署指令中的参数,并进行排序,并基于排序后的参数和自定义的字符串token,通过参数签名算法计算出认证签名值。优选地,参数签名算法为结合了哈希消息认证码(Hash-based Message Authentication Code,HMAC)和安全哈希算法(Secure Hash Algorithm,SHA)的算法,即为HAMC-SHA1签名认证算法,计算出的认证签名值即为基于排序后的参数和token的签名摘要。认证签名值生成后,将认证签名值添加至部署指令,并将添加后的部署指令发送至控制服务器。控制服务器收到添加后的部署指令后,提取出除认证签名值外的参数,并对参数进行排序,并基于排序后的参数和同样的字符串token,通过HAMC-SHA1签名认证算法计算出计算签名值。

在S402中,若所述认证签名值与所述计算签名值相等,则执行所述将所述控制服务器与所述代理客户端建立套接字连接的操作。

计算完成后,控制服务器将计算签名值与认证签名值进行比对,若计算签名值与认证签名值相等,则控制服务器鉴权通过,继续执行将控制服务器与代理客户端建立套接字连接的操作。

在S403中,若所述认证签名值与所述计算签名值不相等,则停止执行后续操作。

若计算签名值和认证签名值不相等,则鉴权失败,证明控制服务器并未拥有执行部署指令的权限,则停止执行后续操作。

通过图3所示实施例可知,在本发明实施例中,通过自动向控制服务器发送与请求信息对应的部署指令,并使控制服务器与代理客户端建立套接字连接,以使控制服务器在接收到部署指令后,控制代理客户端根据部署指令将待部署节点部署为Kubernetes集群的Kubernetes从节点,通过预先安装的代理客户端执行部署操作,进一步提升了部署Kubernetes从节点的自动化程度,并且通过控制服务器与代理客户端之间建立的套接字连接,提升了部署操作的稳定性。

图5所示,是在前述自动部署Kubernetes从节点的方法实施例基础上,对将待部署节点部署为Kubernetes集群的Kubernetes从节点的步骤进行细化得到的过程。本发明实施例提供了自动部署Kubernetes从节点的方法的实现流程图,如图5所示,该方法可以包括以下步骤:

在S501中,从文件服务器中获取与所述Kubernetes集群相关的二进制文件。

在确定待部署节点后,首先对待部署节点的状态进行检查,判断其是否具备部署条件。在检查到待部署节点就绪后,为了搭建待部署节点的部署环境,首先从文件服务器中获取与Kubernetes集群相关的二进制文件,其中,文件服务器是独立于Kubernetes集群的高速下载服务器,用于存放二进制文件及各类脚本。

在S502中,获取所述二进制文件中的从节点服务文件,并获取所述待部署节点的节点地址。

通常来说,从文件服务器获取的二进制文件包括与Kubernetes主节点相关的主节点服务文件和Kubernetes从节点相关的从节点服务文件等,其中,主节点服务文件包括接口服务组件文件和调度组件文件等,而从节点服务文件包括Kubectl文件、Kubelet文件和Kube-Proxy文件等。故在本发明实施例中,从二进制文件中获取从节点服务器文件,并获取待部署节点的节点地址,以便进行部署。

可选地,在将二进制文件存入文件服务器时,对主节点服务文件和从节点服务文件分别设置主节点标识和从节点标识。在对从节点服务器文件设置从节点标识,并且存入文件服务器后,在后续需要对待部署节点进行部署时,根据从节点标识从文件服务器中直接获取从节点服务文件,而不需要获取包含主节点服务文件和从节点服务文件的二进制文件,节省了对二进制文件的提取操作,提升了部署效率。

在S503中,自动基于所述从节点服务文件和所述节点地址配置从节点服务。

从节点服务文件及节点地址获取完毕后,对待部署节点进行清理,主要清理待部署节点原有的配置。清理完毕后,生成与Kubernetes集群相关的证书,主要包括认证机构(Certification Authority,CA)证书、kubernetes证书、admin证书以及proxy证书,在上述证书生成时,还生成与上述证书对应的密钥文件,后续进行密钥文件的分发,具体分发过程在后文进行阐述。待部署节点清理完成和证书生成后,首先基于从节点服务文件配置并启动flannel服务,flannel是针对Kubernetes的网络规划服务,可使Kubernetes集群中的不同Kubernetes从节点创建的docker容器都具有全Kubernetes集群唯一的虚拟IP地址,在另一方面,flannel实质上是覆盖网络(overlay network),即是将传输控制协议(Transmission Control Protocol,TCP)数据包封装在另一种网络包里面进行路由转发和通信。根据节点地址完成对flannel服务的配置,并启动flannel服务后,进行对容器的配置,修改容器的启动参数,并启动容器。

在Kubernetes集群中,为了便于控制容器,进一步自动配置Kubectl服务、Kubelet服务和Kube-Proxy服务。其中,Kubectl是Kubernetes集群管理的控制台工具,可向用户提供大量命令,方便用户对Kubernetes集群进行查看。Kubelet是Kubernetes从节点上的容器管理工具,用于处理Kubernetes主节点下发至该Kubernetes从节点的任务,Kubelet会在Kubernetes主节点的接口服务组件上注册Kubernetes从节点的信息,并定期向Kubernetes主节点发送该Kubernetes从节点的资源使用情况,同时监控Kubernetes从节点内部的容器和节点资源。而Kube-Proxy是Kubernetes服务的入口组件,用于管理Kubernetes服务的访问入口。基于从节点服务文件和待部署节点的节点地址,依次部署并启动Kubectl服务、Kubelet服务以及Kube-Proxy服务,值得一提的是,将CA证书和admin证书对应密钥文件分发至Kubectl服务,将CA证书对应密钥文件分发至Kubelet服务,将CA证书和proxy证书对应密钥文件分发至Kube-Proxy服务,最后当Kube-Proxy服务部署成功并启动完成后,即成功将待部署节点部署为Kubernetes从节点。

可选地,在步骤S501至步骤S503的部署过程中,设置重试和记录机制。图7示出了在设置重试和记录机制后,部署待部署节点的流程图,x、y和z均是大于零的整数,如图7所示,在检查待部署节点状态、获取二进制文件、清理待部署节点、生成证书相关文件、配置并启动flannel服务、安装并启动容器、配置并启动Kubectl服务、配置并启动Kubelet服务以及配置并启动Kube-Proxy服务的各个环节设置重试和记录机制,并设置次数阈值,当某个环节成功后,进行下一环节。但当某个环节出现错误时,判断其是否为第x次尝试,若还未达到第x次尝试,则重新开展该环节;若为第x次尝试,则记录当前环节失败,并记录待部署节点在该环节部署失败,还可记录出错原因。在检查待部署节点状态环节,由于待部署节点可能正处于初始化过程,故为了提升部署过程的有效性,设置检查次数阈值为y,y大于x,并在待部署节点未就绪的次数未达到检查次数阈值y时,设置等待时间,在本发明实施例中为等待z分钟后,再次进入检查待部署节点状态的环节。在所有环节通过后,待部署节点部署完成,上述方法通过重试和记录机制提升了待部署节点部署过程中的容错性,并通过记录失败的环节,方便开发人员定位问题。值得一提的是,图7所示流程图仅为示例,在实际应用场景中,可根据实际情况自由设置每个环节的次数阈值及等待时间。

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

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

参照图8,该终端设备包括:

获取单元81,用于获取用户的请求信息,所述请求信息包括主节点标识和节点参数,所述节点参数用于指示物理节点或虚拟机节点;

查找单元82,用于查找与所述主节点标识对应的Kubernetes集群,并从数据库中获取与所述节点参数对应的待部署节点标识;

部署单元83,用于调用控制服务器,以查找与所述待部署节点标识对应的待部署节点,并将所述待部署节点部署为所述Kubernetes集群的Kubernetes从节点。

可选地,查找单元82还包括:

标识获取单元,用于获取从节点资源池内多个可用的节点的多个可用节点标识,并将所述待部署节点标识与所述多个可用节点标识进行比对;

节点确定单元,用于若所述待部署节点标识与所述多个可用节点标识的某一个比对成功,则将比对成功的可用节点标识对应的节点作为所述待部署节点;

输出单元,用于若所述待部署节点标识与所述多个可用节点标识都比对失败,则向所述用户输出报错提示。

可选地,若待部署节点安装有代理客户端,部署单元83包括:

指令发送单元,用于自动向所述控制服务器发送与所述请求信息对应的部署指令;

连接建立单元,用于将所述控制服务器与所述代理客户端建立套接字连接,以使所述控制服务器在接收到所述部署指令后,使代理客户端根据所述部署指令将所述待部署节点部署为所述Kubernetes集群的所述Kubernetes从节点。

可选地,若部署指令包含认证签名值,连接建立单元还包括:

计算单元,用于从所述部署指令中提取除所述认证签名值外的参数,并利用参数签名算法计算出所述参数的计算签名值;

执行单元,用于若所述认证签名值与所述计算签名值相等,则执行所述将所述控制服务器与所述代理客户端建立套接字连接的操作;

停止执行单元,用于若所述认证签名值与所述计算签名值不相等,则停止执行后续操作。

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

从文件服务器中获取与所述Kubernetes集群相关的二进制文件;

获取所述二进制文件中的从节点服务文件,并获取所述待部署节点的节点地址;

自动基于所述从节点服务文件和所述节点地址配置从节点服务。

因此,本发明实施例提供的终端设备可以实现Kubernetes从节点的自动部署,减少人工的配置操作,提升了Kubernetes从节点的部署效率。

图9是本发明实施例提供的终端设备的示意图。如图9所示,该实施例的终端设备9包括:处理器90、存储器91以及存储在所述存储器91中并可在所述处理器90上运行的计算机程序92,例如终端设备的控制程序。所述处理器90执行所述计算机程序92时实现上述各个自动部署Kubernetes从节点的方法方法实施例中的步骤,例如图1所示的步骤S101至S103。或者,所述处理器90执行所述计算机程序92时实现上述各装置实施例中各单元的功能,例如图8所示单元81至83的功能。

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

获取单元,用于获取用户的请求信息,所述请求信息包括主节点标识和节点参数,所述节点参数用于指示物理节点或虚拟机节点;

查找单元,用于查找与所述主节点标识对应的Kubernetes集群,并从数据库中获取与所述节点参数对应的待部署节点标识;

部署单元,用于调用控制服务器,以查找与所述待部署节点标识对应的待部署节点,并将所述待部署节点部署为所述Kubernetes集群的Kubernetes从节点。

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

所称处理器90可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

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

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

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

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

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

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

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

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

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

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