CN113438107A - 集群节点的扩展方法、装置、设备及存储介质 - Google Patents
集群节点的扩展方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113438107A CN113438107A CN202110691322.5A CN202110691322A CN113438107A CN 113438107 A CN113438107 A CN 113438107A CN 202110691322 A CN202110691322 A CN 202110691322A CN 113438107 A CN113438107 A CN 113438107A
- Authority
- CN
- China
- Prior art keywords
- node
- cluster
- preset
- configuration file
- capacity expansion
- 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.)
- Pending
Links
Images
Classifications
-
- 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/0803—Configuration setting
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及数据处理领域,公开了集群节点的扩展方法、装置、设备及存储介质,用于提高对Kubernetes集群进行扩容的效率。集群节点的扩展方法包括:获取与Kubernetes集群相关的环境参数,并将环境参数输入至预置的配置模板中,生成配置文件;通过预置网络插件读取配置文件,利用配置文件和预置的运维管理平台进行预置容器的IP分配,并利用三台虚拟机创建Kubernetes集群;获取节点扩容请求,基于Kubernetes集群中不同类型节点对虚拟机的服务器进行初始化,并基于节点扩容请求在Kubernetes集群中确定待添加节点;调用Ansible工具,基于配置文件对待添加节点发送节点扩容指令,以添加扩容节点。此外,本发明还涉及区块链技术,环境参数可存储于区块链中。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种集群节点的扩展方法、装置、设备及存储介质。
背景技术
众所周知,集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。用户与集群相互作用时,集群像是一个独立的服务器。为了提高集群的可用性和可缩放性,集群部署是必不可少的一步。
Kubernetes(k8s)是一个轻便的可扩展的开源平台,用于管理容器化应用和服务,通过k8s能够进行应用的自动化部署和扩缩容。因集群需要适应不同业务的应用场景,每个环境又有不同的网段、调度对象运行数量、虚拟局域网(VLAN)等,这样大大提高了运营维护的成本。若在集群部署后期需要向已有的k8s集群和扩容从节点,每个环境都有不同的配置,这样就容易出现因配置参数错误导致扩容失败的情况,导致Kubernetes集群的扩容效率低下。
发明内容
本发明提供了一种集群节点的扩展方法、装置、设备及存储介质,用于提高对Kubernetes集群进行扩容的效率。
本发明第一方面提供了一种集群节点的扩展方法,包括:获取与Kubernetes集群相关的环境参数,并将所述环境参数输入至预置的配置模板中,生成配置文件;通过预置网络插件读取所述配置文件,利用所述配置文件和预置的运维管理平台进行预置容器的IP分配,并利用三台虚拟机创建所述Kubernetes集群,所述Kubernetes集群包括主节点和从节点;获取节点扩容请求,基于所述Kubernetes集群中不同类型节点对所述虚拟机的服务器进行初始化,并基于所述节点扩容请求在所述Kubernetes集群中确定待添加节点;调用Ansible工具,基于所述配置文件对所述待添加节点发送节点扩容指令,以添加扩容节点,所述节点扩容指令与所述节点扩容请求一一对应。
可选的,在本发明第一方面的第一种实现方式中,所述通过预置网络插件读取所述配置文件,利用所述配置文件和预置的运维管理平台进行预置容器的IP分配,并利用三台虚拟机创建所述Kubernetes集群,所述Kubernetes集群包括主节点和从节点包括:在预置容器中创建调度对象并生成调度对象信息数据;通过预置网络插件获取可用IP地址,所述可用的IP地址保存在预置的运维管理平台的配置文件中;基于所述可用IP地址计算对应的局域网地址,并利用所述调度对象信息数据将所述可用IP地址以及对应的局域网地址添加至所述调度对象中,完成预置容器的IP分配;在完成所述预置容器的IP分配之后,利用三台虚拟机创建Kubernetes节点。
可选的,在本发明第一方面的第二种实现方式中,所述在完成所述预置容器的IP分配之后,利用三台虚拟机创建Kubernetes节点包括:在完成所述预置容器的IP分配之后,通过一台虚拟机按照所述配置文件和预置的证书文件安装主节点组件,并通过所述主节点组件创建主节点;利用两台虚拟机按照所述配置文件和所述预置的证书文件安装从节点组件,并通过所述从节点组件创建从节点;整合主节点和从节点,得到Kubernetes节点。
可选的,在本发明第一方面的第三种实现方式中,所述获取节点扩容请求,基于所述Kubernetes集群中不同类型节点对所述虚拟机的服务器进行初始化,并基于所述节点扩容请求在所述Kubernetes集群中确定待添加节点包括:获取节点扩容请求,并判断所述Kubernetes集群中节点的类型;若所述Kubernetes集群中节点的类型为主节点,则按照第一格式化标准对所述虚拟机的服务器进行初始化;若所述Kubernetes集群中节点的类型为从节点,则按照第二格式化标准对所述虚拟机的服务器进行初始化;对所述虚拟机的服务器进行初始化之后,基于所述节点扩容请求在所述Kubernetes集群中确定待添加节点。
可选的,在本发明第一方面的第四种实现方式中,所述通过预置网络插件读取所述配置文件,利用所述配置文件和预置的运维管理平台进行预置容器的IP分配,并利用三台虚拟机创建所述Kubernetes集群,所述Kubernetes集群包括主节点和从节点还包括:对所述Kubernetes集群中的主节点和从节点进行异常检测;若在对所述Kubernetes集群中的主节点和从节点进行异常检测的过程中出现问题,则暂停创建所述Kubernetes集群,并通过检索节点日志确定出现问题的任务名称。
可选的,在本发明第一方面的第五种实现方式中,所述在获取与Kubernetes集群相关的环境参数,并将所述环境参数输入至预置的配置模板中,生成配置文件之前,所述集群节点的扩展方法还包括:通过检测脚本检测所述虚拟机的服务器是否满足预置的安装条件;若所述虚拟机的服务器满足预置的安装条件,则在所述虚拟机中运行预置的初始化脚本,并判断运行所述预置的初始化脚本之后,所述虚拟机是否满足预置的运行条件;若所述虚拟机满足预置的运行条件,则确定虚拟机的工作状态为正常状态。
可选的,在本发明第一方面的第六种实现方式中,在所述调用Ansible工具,基于所述配置文件对所述待添加节点发送节点扩容指令,以添加扩容节点,所述节点扩容指令与所述节点扩容请求一一对应之后,所述集群节点的扩展方法包括:启动预设在所述Kubernetes集群中的节点添加定时任务,定时获取对应的节点添加日志确定节点添加进度;将节点添加进度返回至虚拟机。
本发明第二方面提供了一种集群节点的扩展装置,包括:获取模块,用于获取与Kubernetes集群相关的环境参数,并将所述环境参数输入至预置的配置模板中,生成配置文件;创建模块,用于通过预置网络插件读取所述配置文件,利用所述配置文件和预置的运维管理平台进行预置容器的IP分配,并利用三台虚拟机创建所述Kubernetes集群,所述Kubernetes集群包括主节点和从节点;确定模块,用于获取节点扩容请求,基于所述Kubernetes集群中不同类型节点对所述虚拟机的服务器进行初始化,并基于所述节点扩容请求在所述Kubernetes集群中确定待添加节点;添加模块,用于调用Ansible工具,基于所述配置文件对所述待添加节点发送节点扩容指令,以添加扩容节点,所述节点扩容指令与所述节点扩容请求一一对应。
本发明第三方面提供了一种集群节点的扩展设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述集群节点的扩展设备执行上述的集群节点的扩展方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的集群节点的扩展方法。
本发明提供的技术方案中,获取与Kubernetes集群相关的环境参数,并将所述环境参数输入至预置的配置模板中,生成配置文件;通过预置网络插件读取所述配置文件,利用所述配置文件和预置的运维管理平台进行预置容器的IP分配,并利用三台虚拟机创建所述Kubernetes集群,所述Kubernetes集群包括主节点和从节点;获取节点扩容请求,基于所述Kubernetes集群中不同类型节点对所述虚拟机的服务器进行初始化,并基于所述节点扩容请求在所述Kubernetes集群中确定待添加节点;调用Ansible工具,基于所述配置文件对所述待添加节点发送节点扩容指令,以添加扩容节点,所述节点扩容指令与所述节点扩容请求一一对应。本发明实施例中,获取与Kubernetes集群相关的环境参数并生成配置文件,采用预置网络插件和配置文件进行预置的容器IP分配,然后创建Kubernetes集群,利用Ansible工具在Kubernetes集群中添加扩容节点。提高了对Kubernetes集群进行扩容的效率。
附图说明
图1为本发明实施例中集群节点的扩展方法的一个实施例示意图;
图2为本发明实施例中集群节点的扩展方法的另一个实施例示意图;
图3为本发明实施例中集群节点的扩展装置的一个实施例示意图;
图4为本发明实施例中集群节点的扩展装置的另一个实施例示意图;
图5为本发明实施例中集群节点的扩展设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种集群节点的扩展方法、装置、设备及存储介质,用于提高对Kubernetes集群进行扩容的效率。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中集群节点的扩展方法的一个实施例包括:
101、获取与Kubernetes集群相关的环境参数,并将环境参数输入至预置的配置模板中,生成配置文件;
可以理解的是,本发明的执行主体可以为集群节点的扩展装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。
在本发明实施例中,为了便于说明,首先对Kubernetes相关技术及Kubernetes主节点进行介绍。Kubernetes为一款自动化容器操作的容器编排工具,能够实现对容器的部署和调度,以及节点集群间扩展等功能,将安装有Kubernetes工具的物理服务器或虚拟机称作Kubernetes节点。通常来说,需要多个Kubernetes节点组建为Kubernetes集群(Kubernetes Cluster)以实现对容器的部署和管理。在一个Kubernetes集群内,有且只有一套控制单元,即主节点(Kubernetes集群中的Master节点),主要负责接收请求、资源调度以及进行管理。除了主节点之外,通常Kubernetes集群内还包括主节点的多个下属对象,即多个从节点(Kubernetes集群中的Node节点),用于实际运行主节点分配的容器。
Kubernetes集群的工作原理就是通过将容器放入在从节点上运行的调度对象中来执行相应的工作负载。从节点可以是一个虚拟机或者物理机器,取决于所在的集群配置,其中,Kubernetes集群中每个节点包含运行调度对象(pod)所需的服务,这里的调度对象是Kubernetes集群创建或部署的最小/最简单的基本单位,一个pod代表Kubernetes集群上正在运行的一个进程。每个节点上包含的组件包括kubelet(Kubernetes集群中每个节点上运行的代理,以保证容器都运行在调度对象中)、容器运行时(负责运行容器的软件)以及kube-proxy(集群中每个节点上运行的网络代理)。
需要说明的是,这里与Kubernetes集群节点相关的环境参数,可以为互联网数据中心(internet data center,IDC)机房数据、环境信息数据、域名系统(domain namesystem,DNS)信息数据、集群虚拟IP信息数据、容器网络接口(container networkinterface,CNI)信息数据、k8s的版本信息等。
可以理解的是,将环境参数输入至预置的配置模板中,并生成配置文件的过程即为一个执行脚本的过程。在本发明实施例中,预置的配置模板是提前设置好的,预置的配置模板为内容格式不同的多个模板,预置的配置模板中包含环境参数各个内容格式的名称,便于用户输入与各个名称对应的内容,从而提升了环境参数输入的规范性,降低了环境参数输入出错的可能。将用户输入的环境参数添加至配置模板后,可生成配置文件,在后续步骤中根据配置文件进行主节点的搭建。
需要强调的是,为进一步保证上述环境参数的私密和安全性,上述环境参数还可以存储于一区块链的节点中。
102、通过预置网络插件读取配置文件,利用配置文件和预置的运维管理平台进行预置容器的IP分配,并利用三台虚拟机创建Kubernetes集群,Kubernetes集群包括主节点和从节点;
在创建Kubernetes集群之前,需要利用网络插件进行预置容器的IP地址分配,给预置容器分配了对应的IP地址后,即可利用虚拟机创建Kubernetes集群。
需要说明的是,这里预置网络插件是特定的容器网络接口(CNI)插件,而并非开源的flannel、calico等网络插件,在CNI插件的使用过程中需要与运维管理平台pampas一起使用,进行预置容器IP的分配和管理。
103、获取节点扩容请求,基于Kubernetes集群中不同类型节点对虚拟机的服务器进行初始化,并基于节点扩容请求在Kubernetes集群中确定待添加节点;
在创建Kubernetes集群之后,获取相应的节点扩容请求之后,就可以对Kubernetes集群中的节点进行扩容处理,对Kubernetes集群进行扩容处理的过程即为在Kubernetes集群中添加从节点的过程。
可以理解的是,在确定待添加节点之前需要根据Kubernetes集群中不同类型节点对虚拟机的服务器进行初始化,以确保可以顺利添加节点。
104、调用Ansible工具,基于配置文件对待添加节点发送节点扩容指令,以添加扩容节点,节点扩容指令与节点扩容请求一一对应。
Ansible工具是一种自动化运维工具,其基于Python开发,并集合了从多运维工具的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。Ansible工具是基于模块工作的,其本身没有批量部署的能力,真正有批量部署的是Ansible工具中锁运行的模块,Ansible工具只是提供一种框架。在本申请中,即利用Ansible工具执行Kubernetes集群的扩容操作。
相应地,基于配置文件对待添加节点发送节点扩容指令,以添加扩容节点,具体可以包括以下步骤:
(1)调用ansible工具根据hosts文件和配置文件生成集群节点扩展指令;
(2)通过maven install命令将集群节点扩展指令打成jar包;
(3)调用jar包向服务器发送操控指令。
需要说明的是,这里的节点扩容指令与节点扩容请求是一一对应的关系,节点扩容请求中可能包括需要扩容的节点信息,节点扩容指令对应指示的为在需要扩容的节点上执行扩容指令。
本发明实施例中,获取与Kubernetes集群相关的环境参数并生成配置文件,采用预置网络插件和配置文件进行预置的容器IP分配,然后创建Kubernetes集群,利用Ansible工具在Kubernetes集群中添加扩容节点。提高了对Kubernetes集群进行扩容的效率。
请参阅图2,本发明实施例中集群节点的扩展方法的另一个实施例包括:
201、获取与Kubernetes集群相关的环境参数,并将环境参数输入至预置的配置模板中,生成配置文件;
在利用虚拟机进行创建Kubernetes节点以及添加扩容节点之前,需要对虚拟机进行检测,确定虚拟机的工作状态。具体的,服务器通过检测脚本检测虚拟机的服务器是否满足预置的安装条件;若虚拟机的服务器满足预置的安装条件,则服务器在虚拟机中运行预置的初始化脚本,并判断运行预置的初始化脚本之后,虚拟机是否满足预置的运行条件;若虚拟机满足预置的运行条件,则服务器确定虚拟机的工作状态为正常状态。
首先通过检测脚本检测虚拟机的服务器是否满足预置的安装条件,这里的安装条件具体为磁盘需要大于600G,内存需要大于128G,及网卡做bond,网卡个数需要和速度相互匹配,如2个网卡,速度需要达到2000M等。当确定虚拟机的服务器满足预置的运行条件之后,直接在对虚拟机进行初始化,也就是在虚拟机中运行预置的初始化脚本,这里的初始化操作包括升级实时操作系统(kernel)、配置网桥、格式化磁盘、调整内核参数、创建所需目录等,若不满足预置的运行条件,则显示不满足预置的运行条件的原因,并退出预置的初始化脚本。然后还需要对初始化的虚拟机进行检测,判断其是否满足预置的运行条件,这里预置的运行条件为磁盘是否正确格式化,内核版本是否升级成功,网桥是否正常配置,所需目录是否正常创建或者挂载等。若上述预置的运行条件均满足,则说明虚拟机的工作状态为正常状态。
202、通过预置网络插件读取配置文件,利用配置文件和预置的运维管理平台进行预置容器的IP分配,并利用三台虚拟机创建Kubernetes集群,Kubernetes集群包括主节点和从节点;
具体的,服务器首先在预置容器中创建调度对象并生成调度对象信息数据;其次服务器通过预置网络插件获取可用IP地址,可用的IP地址保存在预置的运维管理平台的配置文件中;然后服务器基于可用IP地址计算对应的局域网地址,并利用调度对象信息数据将可用IP地址以及对应的局域网地址添加至调度对象中,完成预置容器的IP分配;在完成预置容器的IP分配之后,最后服务器利用三台虚拟机创建Kubernetes的节点。
Kubernetes集群的管理设备可配置和安装kubelet,在预置容器运行时,网络提供商代理,并分发CNI插件。当网络提供的商代理启动时,将生成CNI配置。在节点上调度pod后,kubelet会调用CRI插件来创建pod,并生成pod信息数据,然后通过CNI插件将预置的运维管理平台中配置文件内的IP地址分配至预置容器上。此外,当预置容器为Containerd容器时,容器运行时插件(container runtime interface,CRI)插件会调用CNI配置中指定的CNI插件来配置调度对象网络。所有这些都会使调度对象获得IP地址。
在本申请中,利用三台虚拟机创建Kubernetes集群,且Kubernetes集群的前端使用NetScaler设备提供VIP,保证了请求的负载均衡和高可用性。具体的Kubernetes集群创建过程如下:
(1)在完成预置容器的IP分配之后,通过一台虚拟机按照配置文件和预置的证书文件安装主节点组件,并通过主节点组件创建主节点;
(2)利用两台虚拟机按照配置文件和预置的证书文件安装从节点组件,并通过从节点组件创建从节点;
(3)整合主节点和从节点,得到Kubernetes的节点。
在完成预置的容器的IP分配之后,在服务器上创建Kubernetes集群所需的预置的证书文件,并根据机房和环境对安全传输层协议(TLS)证书文件进行归档存储,便于后续步骤进行提取。可以理解的是,这里预置的证书文件指的是TLS证书文件,其可以完成Kubernetes集群的内部认证,保证网络通讯安全。此外,在进行内部集群认证时还需要安装ETCD服务,ETCD服务包括四个部分:第一部分HTTP Server:用于处理用户发送的API请求以及其它ETCD节点的同步与心跳信息请求。第二部分Store:用于处理ETCD支持的各类功能的事务,包括数据索引、节点状态变更、监控与反馈、事件处理与执行等等,是ETCD对用户提供的大多数API功能的具体实现。第三部分Raft:Raft强一致性算法的具体实现,是ETCD的核心。第四部分WAL:预写式日志(write ahead log),是ETCD的数据存储方式。除了在内存中存有所有数据的状态以及节点的索引以外,ETCD就通过WAL进行持久化存储。WAL中,所有的数据提交前都会事先记录日志。
在保证网络环境安全的情况下即可以通过安装组件的方式利用虚拟机创建Kubernetes节点。具体的,在一台虚拟机中安装主节点组件,并利用主节点组件创建主节点,主节点组件包括kube-scheduler组件、kube-apiserver组件和kube-controller-manager组件;分别在两台虚拟机中安装从节点组件,并通过从节点组件创建从节点,从节点组件包括kubelet组件、kube-proxy组件。需要说明的是,在进行创建Kubernetes节点时,还需用到配置文件中的配置参数和对应的预置的证书文件。
此外,在创建Kubernetes集群的过程中还包括:服务器对Kubernetes集群中的主节点和从节点进行异常检测;若在对Kubernetes集群中的主节点和从节点进行异常检测的过程中出现问题,则服务器暂停创建Kubernetes集群,并通过检索节点日志确定出现问题的任务名称。
为进一步保证部署过程的顺利进行,同时避免部署异常时部署过程陷入死循环对于部署时间以及部署效率的影响,可选地,服务器在进行创建Kubernetes集群时还可以执行以下步骤:
(1)对Kubernetes集群中的主节点和从节点进行部署异常检测;
(2)在对Kubernetes集群中的主节点和从节点进行异常检测的过程中出现问题,则服务器暂停创建Kubernetes集群;
(3)检索节点日志,并根据节点日志确定出现问题的任务名称。
在创建Kubernetes集群的过程中若出现问题,服务器会提供一个“继续创建”的按钮,只需输入问题所在任务的名称即可继续创建部署节点,创建Kubernetes集群。这种配置保障部署出现问题后整体部署流程的正常推进,提升部署实现效率。
203、获取节点扩容请求,基于Kubernetes集群中不同类型节点对虚拟机的服务器进行初始化,并基于节点扩容请求在Kubernetes集群中确定待添加节点;
具体的,获取节点扩容请求,并判断Kubernetes集群中节点的类型;若Kubernetes集群中节点的类型为主节点,则按照第一格式化标准对虚拟机的服务器进行初始化;若Kubernetes集群中节点的类型为从节点,则按照第二格式化标准对虚拟机的服务器进行初始化;对虚拟机的服务器进行初始化之后,基于节点扩容请求在Kubernetes集群中确定待添加节点。
在获取到节点扩容请求之后,需要对虚拟机的服务器进行初始化,对于Kubernetes集群中不同类型节点对应的初始化方案并不相同,当对主节点进行初始化时,按照第一格式化标准对虚拟机的服务器进行初始化,当对从节点进行初始化时,按照第二格式化标准对虚拟机的服务器进行初始化。不同的初始化方式对虚拟机的服务器初始化后得到的结果也不同。
对虚拟机的服务器初始化过后,即可根据节点扩容请求中的扩容信息确定需要进行扩容的待添加节点。用户在服务端的界面选择要添加的节点后发出添加节点的请求,服务端后台从数据库中获取地址信息和当前集群的相关信息(具体可以包括集群的网络插件类型、所用的镜像仓库、网络文件系统(network file system,NFS)所在节点、集群的主节点和从节点等),将这些集群信息连同选择的待添加节点作为添加参数信息,通过节点添加请求(post请求)发送到虚拟机中。
204、调用Ansible工具,基于配置文件对待添加节点发送节点扩容指令,以添加扩容节点,节点扩容指令与节点扩容请求一一对应;
Ansible工具是一种自动化运维工具,其基于Python开发,并集合了从多运维工具的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。Ansible工具是基于模块工作的,其本身没有批量部署的能力,真正有批量部署的是Ansible工具中锁运行的模块,Ansible工具只是提供一种框架。在本申请中,即利用Ansible工具执行Kubernetes集群的扩容操作。
相应地,基于配置文件对待添加节点发送节点扩容指令,以添加扩容节点,具体可以包括以下步骤:
(1)调用ansible工具根据hosts文件和配置文件生成集群节点扩展指令;
(2)通过maven install命令将集群节点扩展指令打成jar包;
(3)调用jar包向服务器发送操控指令。
需要说明的是,这里的节点扩容指令与节点扩容请求是一一对应的关系,节点扩容请求中可能包括需要扩容的节点信息,节点扩容指令对应指示的为在需要扩容的节点上执行扩容指令。
205、启动预设在Kubernetes集群中的节点添加定时任务,定时获取对应的节点添加日志确定节点添加进度;
在发出节点扩容指令的同时,虚拟机会启动一个定时任务,定时接收节点扩容指令的返回结果,即添加节点对应的节点添加日志,并返回到虚拟机中进行展示,便于及时了解Kubernetes集群中的节点添加进度,以便及时感知节点添加过程中的异常。
具体的,启动预设在Kubernetes集群中的节点添加定时任务,定时获取节点添加日志确定节点添加进度的过程具体可以包括以下步骤:
(1)启动预设在Kubernetes集群中的节点添加定时任务,定时获取节点添加日志;
(2)根据节点添加日志中的任务标识定位当前进度;
(3)将当前进度以进度条的形式进行输出设置,生成节点添加进度条。
206、将节点添加进度返回至虚拟机。
相应地,获取到节点添加日志之后,直接将节点添加进度返回至虚拟机,通过虚拟机显示相应的节点添加日志,
在扩展节点过程中,由于时间步骤繁琐,整体所需时间较长,可以根据节点添加日志中的特定标识定位当前进度,以进度条的形式在虚拟机中展示扩展节点的进度。
本发明实施例中,获取与Kubernetes集群相关的环境参数并生成配置文件,采用预置网络插件和配置文件进行预置的容器IP分配,然后创建Kubernetes集群,利用Ansible工具在Kubernetes集群中添加扩容节点。提高了对Kubernetes集群进行扩容的效率。
上面对本发明实施例中集群节点的扩展方法进行了描述,下面对本发明实施例中集群节点的扩展装置进行描述,请参阅图3,本发明实施例中集群节点的扩展装置一个实施例包括:
获取模块301,用于获取与Kubernetes集群相关的环境参数,并将所述环境参数输入至预置的配置模板中,生成配置文件;
创建模块302,用于通过预置网络插件读取所述配置文件,利用所述配置文件和预置的运维管理平台进行预置容器的IP分配,并利用三台虚拟机创建所述Kubernetes集群,所述Kubernetes集群包括主节点和从节点;
确定模块303,用于获取节点扩容请求,基于所述Kubernetes集群中不同类型节点对所述虚拟机的服务器进行初始化,并基于所述节点扩容请求在所述Kubernetes集群中确定待添加节点;
添加模块304,用于调用Ansible工具,基于所述配置文件对所述待添加节点发送节点扩容指令,以添加扩容节点,所述节点扩容指令与所述节点扩容请求一一对应。
本发明实施例中,获取与Kubernetes集群相关的环境参数并生成配置文件,采用预置网络插件和配置文件进行预置的容器IP分配,然后创建Kubernetes集群,利用Ansible工具在Kubernetes集群中添加扩容节点。提高了对Kubernetes集群进行扩容的效率。
请参阅图4,本发明实施例中集群节点的扩展装置的另一个实施例包括:
获取模块301,用于获取与Kubernetes集群相关的环境参数,并将所述环境参数输入至预置的配置模板中,生成配置文件;
创建模块302,用于通过预置网络插件读取所述配置文件,利用所述配置文件和预置的运维管理平台进行预置容器的IP分配,并利用三台虚拟机创建所述Kubernetes集群,所述Kubernetes集群包括主节点和从节点;
确定模块303,用于获取节点扩容请求,基于所述Kubernetes集群中不同类型节点对所述虚拟机的服务器进行初始化,并基于所述节点扩容请求在所述Kubernetes集群中确定待添加节点;
添加模块304,用于调用Ansible工具,基于所述配置文件对所述待添加节点发送节点扩容指令,以添加扩容节点,所述节点扩容指令与所述节点扩容请求一一对应。
可选的,创建模块302包括:
生成单元3021,用于在预置容器中创建调度对象并生成调度对象信息数据;
获取单元3022,用于通过预置网络插件获取可用IP地址,所述可用的IP地址保存在预置的运维管理平台的配置文件中;
分配单元3023,用于基于所述可用IP地址计算对应的局域网地址,并利用所述调度对象信息数据将所述可用IP地址以及对应的局域网地址添加至所述调度对象中,完成预置容器的IP分配;
创建单元3024,用于在完成所述预置容器的IP分配之后,利用三台虚拟机创建Kubernetes节点。
可选的,创建单元3024具体用于:
在完成所述预置容器的IP分配之后,通过一台虚拟机按照所述配置文件和预置的证书文件安装主节点组件,并通过所述主节点组件创建主节点;
利用两台虚拟机按照所述配置文件和所述预置的证书文件安装从节点组件,并通过所述从节点组件创建从节点;
整合主节点和从节点,得到Kubernetes节点。
可选的,确定模块303具体用于:
获取节点扩容请求,并判断所述Kubernetes集群中节点的类型;
若所述Kubernetes集群中节点的类型为主节点,则按照第一格式化标准对所述虚拟机的服务器进行初始化;
若所述Kubernetes集群中节点的类型为从节点,则按照第二格式化标准对所述虚拟机的服务器进行初始化;
对所述虚拟机的服务器进行初始化之后,基于所述节点扩容请求在所述Kubernetes集群中确定待添加节点。
可选的,创建模块302还包括:
异常检测单元3025,用于对所述Kubernetes集群中的主节点和从节点进行异常检测;
确定单元3026,若在对所述Kubernetes集群中的主节点和从节点进行异常检测的过程中出现问题,则用于暂停创建所述Kubernetes集群,并通过检索节点日志确定出现问题的任务名称。
可选的,集群节点的扩展装置还包括:
第一检测模块305,用于通过检测脚本检测所述虚拟机的服务器是否满足预置的安装条件;
运行模块306,若所述虚拟机的服务器满足预置的安装条件,则用于在所述虚拟机中运行预置的初始化脚本,并判断运行所述预置的初始化脚本之后,所述虚拟机是否满足预置的运行条件;
第二检测模块307,若所述虚拟机满足预置的运行条件,则用于确定虚拟机的工作状态为正常状态。
可选的,集群节点的扩展装置还包括:
获取日志模块308,用于启动预设在所述Kubernetes集群中的节点添加定时任务,定时获取对应的节点添加日志确定节点添加进度;
返回模块309,用于将节点添加进度返回至虚拟机。
本发明实施例中,获取与Kubernetes集群相关的环境参数并生成配置文件,采用预置网络插件和配置文件进行预置的容器IP分配,然后创建Kubernetes集群,利用Ansible工具在Kubernetes集群中添加扩容节点。提高了对Kubernetes集群进行扩容的效率。
上面图3和图4从模块化功能实体的角度对本发明实施例中的集群节点的扩展装置进行详细描述,下面从硬件处理的角度对本发明实施例中集群节点的扩展设备进行详细描述。
图5是本发明实施例提供的一种集群节点的扩展设备的结构示意图,该集群节点的扩展设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对集群节点的扩展设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在集群节点的扩展设备500上执行存储介质530中的一系列指令操作。
集群节点的扩展设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图5示出的集群节点的扩展设备结构并不构成对集群节点的扩展设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种集群节点的扩展设备,所述计算机设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例中的所述集群节点的扩展方法的步骤。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述集群节点的扩展方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种集群节点的扩展方法,其特征在于,所述集群节点的扩展方法包括:
获取与Kubernetes集群相关的环境参数,并将所述环境参数输入至预置的配置模板中,生成配置文件;
通过预置网络插件读取所述配置文件,利用所述配置文件和预置的运维管理平台进行预置容器的IP分配,并利用三台虚拟机创建所述Kubernetes集群,所述Kubernetes集群包括主节点和从节点;
获取节点扩容请求,基于所述Kubernetes集群中不同类型节点对所述虚拟机的服务器进行初始化,并基于所述节点扩容请求在所述Kubernetes集群中确定待添加节点;
调用Ansible工具,基于所述配置文件对所述待添加节点发送节点扩容指令,以添加扩容节点,所述节点扩容指令与所述节点扩容请求一一对应。
2.根据权利要求1所述的集群节点的扩展方法,其特征在于,所述通过预置网络插件读取所述配置文件,利用所述配置文件和预置的运维管理平台进行预置容器的IP分配,并利用三台虚拟机创建所述Kubernetes集群,所述Kubernetes集群包括主节点和从节点包括:
在预置容器中创建调度对象并生成调度对象信息数据;
通过预置网络插件获取可用IP地址,所述可用的IP地址保存在预置的运维管理平台的配置文件中;
基于所述可用IP地址计算对应的局域网地址,并利用所述调度对象信息数据将所述可用IP地址以及对应的局域网地址添加至所述调度对象中,完成预置容器的IP分配;
在完成所述预置容器的IP分配之后,利用三台虚拟机创建Kubernetes节点。
3.根据权利要求2所述的集群节点的扩展方法,其特征在于,所述在完成所述预置容器的IP分配之后,利用三台虚拟机创建Kubernetes节点包括:
在完成所述预置容器的IP分配之后,通过一台虚拟机按照所述配置文件和预置的证书文件安装主节点组件,并通过所述主节点组件创建主节点;
利用两台虚拟机按照所述配置文件和所述预置的证书文件安装从节点组件,并通过所述从节点组件创建从节点;
整合主节点和从节点,得到Kubernetes节点。
4.根据权利要求1所述的集群节点的扩展方法,其特征在于,所述获取节点扩容请求,基于所述Kubernetes集群中不同类型节点对所述虚拟机的服务器进行初始化,并基于所述节点扩容请求在所述Kubernetes集群中确定待添加节点包括:
获取节点扩容请求,并判断所述Kubernetes集群中节点的类型;
若所述Kubernetes集群中节点的类型为主节点,则按照第一格式化标准对所述虚拟机的服务器进行初始化;
若所述Kubernetes集群中节点的类型为从节点,则按照第二格式化标准对所述虚拟机的服务器进行初始化;
对所述虚拟机的服务器进行初始化之后,基于所述节点扩容请求在所述Kubernetes集群中确定待添加节点。
5.根据权利要求1中任一项所述的集群节点的扩展方法,其特征在于,所述通过预置网络插件读取所述配置文件,利用所述配置文件和预置的运维管理平台进行预置容器的IP分配,并利用三台虚拟机创建所述Kubernetes集群,所述Kubernetes集群包括主节点和从节点还包括:
对所述Kubernetes集群中的主节点和从节点进行异常检测;
若在对所述Kubernetes集群中的主节点和从节点进行异常检测的过程中出现问题,则暂停创建所述Kubernetes集群,并通过检索节点日志确定出现问题的任务名称。
6.根据权利要求1-4所述的集群节点的扩展方法,其特征在于,在获取与Kubernetes集群相关的环境参数,并将所述环境参数输入至预置的配置模板中,生成配置文件之前,所述集群节点的扩展方法还包括:
通过检测脚本检测所述虚拟机的服务器是否满足预置的安装条件;
若所述虚拟机的服务器满足预置的安装条件,则在所述虚拟机中运行预置的初始化脚本,并判断运行所述预置的初始化脚本之后,所述虚拟机是否满足预置的运行条件;
若所述虚拟机满足预置的运行条件,则确定虚拟机的工作状态为正常状态。
7.根据权利要求1-4所述的集群节点的扩展方法,其特征在于,在所述调用Ansible工具,基于所述配置文件对所述待添加节点发送节点扩容指令,以添加扩容节点,所述节点扩容指令与所述节点扩容请求一一对应之后,所述集群节点的扩展方法包括:
启动预设在所述Kubernetes集群中的节点添加定时任务,定时获取对应的节点添加日志确定节点添加进度;
将节点添加进度返回至虚拟机。
8.一种集群节点的扩展装置,其特征在于,所述集群节点的扩展装置包括:
获取模块,用于获取与Kubernetes集群相关的环境参数,并将所述环境参数输入至预置的配置模板中,生成配置文件;
创建模块,用于通过预置网络插件读取所述配置文件,利用所述配置文件和预置的运维管理平台进行预置容器的IP分配,并利用三台虚拟机创建所述Kubernetes集群,所述Kubernetes集群包括主节点和从节点;
确定模块,用于获取节点扩容请求,基于所述Kubernetes集群中不同类型节点对所述虚拟机的服务器进行初始化,并基于所述节点扩容请求在所述Kubernetes集群中确定待添加节点;
添加模块,用于调用Ansible工具,基于所述配置文件对所述待添加节点发送节点扩容指令,以添加扩容节点,所述节点扩容指令与所述节点扩容请求一一对应。
9.一种集群节点的扩展设备,其特征在于,所述集群节点的扩展设备包括:存储器和至少一个处理器,所述存储器中存储有指令;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述集群节点的扩展设备执行如权利要求1-7中任意一项所述的集群节点的扩展方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现如权利要求1-7中任一项所述集群节点的扩展方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110691322.5A CN113438107A (zh) | 2021-06-22 | 2021-06-22 | 集群节点的扩展方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110691322.5A CN113438107A (zh) | 2021-06-22 | 2021-06-22 | 集群节点的扩展方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113438107A true CN113438107A (zh) | 2021-09-24 |
Family
ID=77757035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110691322.5A Pending CN113438107A (zh) | 2021-06-22 | 2021-06-22 | 集群节点的扩展方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113438107A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114172903A (zh) * | 2021-11-18 | 2022-03-11 | 苏州浪潮智能科技有限公司 | slurm调度系统的节点扩容方法、装置、设备和介质 |
CN114205333A (zh) * | 2021-12-09 | 2022-03-18 | 北京奇妙时光科技有限公司 | Ip配置方法、集群构建方法、计算机设备及存储介质 |
CN114968092A (zh) * | 2022-04-28 | 2022-08-30 | 江苏安超云软件有限公司 | 容器平台下基于qcow2技术的存储空间动态供应的方法及应用 |
CN115061725A (zh) * | 2022-06-21 | 2022-09-16 | 杭州幻方科技有限公司 | 一种集群虚拟开发环境的扩展方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110166278A (zh) * | 2019-04-09 | 2019-08-23 | 平安科技(深圳)有限公司 | Kubernetes集群搭建方法、装置、计算机设备及存储介质 |
CN111478796A (zh) * | 2020-03-08 | 2020-07-31 | 苏州浪潮智能科技有限公司 | 一种ai平台的集群扩容异常处理方法 |
CN112333229A (zh) * | 2020-09-16 | 2021-02-05 | 山东中创软件商用中间件股份有限公司 | kubernetes节点扩展方法、装置、设备及存储介质 |
-
2021
- 2021-06-22 CN CN202110691322.5A patent/CN113438107A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110166278A (zh) * | 2019-04-09 | 2019-08-23 | 平安科技(深圳)有限公司 | Kubernetes集群搭建方法、装置、计算机设备及存储介质 |
CN111478796A (zh) * | 2020-03-08 | 2020-07-31 | 苏州浪潮智能科技有限公司 | 一种ai平台的集群扩容异常处理方法 |
CN112333229A (zh) * | 2020-09-16 | 2021-02-05 | 山东中创软件商用中间件股份有限公司 | kubernetes节点扩展方法、装置、设备及存储介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114172903A (zh) * | 2021-11-18 | 2022-03-11 | 苏州浪潮智能科技有限公司 | slurm调度系统的节点扩容方法、装置、设备和介质 |
CN114172903B (zh) * | 2021-11-18 | 2023-07-14 | 苏州浪潮智能科技有限公司 | slurm调度系统的节点扩容方法、装置、设备和介质 |
CN114205333A (zh) * | 2021-12-09 | 2022-03-18 | 北京奇妙时光科技有限公司 | Ip配置方法、集群构建方法、计算机设备及存储介质 |
CN114205333B (zh) * | 2021-12-09 | 2024-02-27 | 北京奇妙时光科技有限公司 | Ip配置方法、集群构建方法、计算机设备及存储介质 |
CN114968092A (zh) * | 2022-04-28 | 2022-08-30 | 江苏安超云软件有限公司 | 容器平台下基于qcow2技术的存储空间动态供应的方法及应用 |
CN114968092B (zh) * | 2022-04-28 | 2023-10-17 | 安超云软件有限公司 | 容器平台下基于qcow2技术的存储空间动态供应的方法及应用 |
CN115061725A (zh) * | 2022-06-21 | 2022-09-16 | 杭州幻方科技有限公司 | 一种集群虚拟开发环境的扩展方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113438107A (zh) | 集群节点的扩展方法、装置、设备及存储介质 | |
CN110572436B (zh) | 多地跨集群的服务器部署方法及系统 | |
US10700947B2 (en) | Life cycle management method and device for network service | |
WO2019184164A1 (zh) | 自动部署Kubernetes从节点的方法、装置、终端设备及可读存储介质 | |
US8370481B2 (en) | Inventory management in a computing-on-demand system | |
EP2864881B1 (en) | Establishing an initial configuration of a hardware inventory | |
CN111212116A (zh) | 一种基于容器云的高性能计算集群创建方法和系统 | |
CN107566165B (zh) | 一种发现及部署电力云数据中心可用资源的方法及系统 | |
EP2893443B1 (en) | Re-configuration in cloud computing environments | |
Da Silva et al. | Internet of things out of the box: using TOSCA for automating the deployment of IoT environments | |
CN112860282B (zh) | 集群插件的升级方法、装置和服务器 | |
CN107005435B (zh) | 一种网络服务描述符上架方法及装置 | |
JP2013218687A (ja) | サーバー監視システム及びその方法 | |
CN112948063B (zh) | 云平台的创建方法、装置、云平台以及云平台实现系统 | |
EP2585911A1 (en) | A method and system for determining a deployment of applications | |
CN111190823A (zh) | Ui自动化测试方法、电子装置及计算机可读存储介质 | |
CN112631614A (zh) | 应用部署方法、装置、计算机设备和存储介质 | |
WO2015062217A1 (zh) | 虚拟桌面系统中外设的接入处理方法及装置 | |
US7302477B2 (en) | Administration tool for gathering information about systems and applications including the feature of high availability | |
US11886927B2 (en) | ICT resource management device, ICT resource management method and ICT resource management program | |
CN112333229A (zh) | kubernetes节点扩展方法、装置、设备及存储介质 | |
CN117908904A (zh) | 一种k8s集群部署及运维管理的方法和系统 | |
CN113268254A (zh) | 一种集群系统安装方法、装置、电子设备及存储介质 | |
CN113672336A (zh) | 一种k8s容器集群部署方法、装置、设备及可读存储介质 | |
CN113595832A (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 |