CN113656147B - 一种集群部署方法、装置、设备及存储介质 - Google Patents

一种集群部署方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN113656147B
CN113656147B CN202110961311.4A CN202110961311A CN113656147B CN 113656147 B CN113656147 B CN 113656147B CN 202110961311 A CN202110961311 A CN 202110961311A CN 113656147 B CN113656147 B CN 113656147B
Authority
CN
China
Prior art keywords
cluster
node
configuration information
slave node
kubernets
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
Application number
CN202110961311.4A
Other languages
English (en)
Other versions
CN113656147A (zh
Inventor
张彦波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202110961311.4A priority Critical patent/CN113656147B/zh
Publication of CN113656147A publication Critical patent/CN113656147A/zh
Priority to EP22177718.8A priority patent/EP4095678A1/en
Priority to US17/805,912 priority patent/US20230060053A1/en
Application granted granted Critical
Publication of CN113656147B publication Critical patent/CN113656147B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/505Clust
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/541Client-server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本公开提供了一种集群部署方法、装置、设备及存储介质,涉及计算机技术领域,可应用于云计算技术,包括:确定集群主节点的主节点配置信息和集群从节点的从节点配置信息;根据所述主节点配置信息对本机进行独立配置;将所述从节点配置信息发送至各集群从节点,以使各所述集群从节点根据所述从节点配置信息对本机进行独立配置。本公开实施例能够提高集群的部署效率和容错能力,并提高集群部署的适用性和可扩展性能。

Description

一种集群部署方法、装置、设备及存储介质
技术领域
本公开涉及计算机技术领域,可应用于云计算技术。
背景技术
随着互联网技术的更新迭代,服务架构也在不断演进,微服务架构逐渐代替传统的单体架构,Kubenetes(简称k8s)做为微服务最受欢迎的编排工具,也被广泛的使用。Kubernetes一个用于容器集群的自动化部署、扩容以及运维的开源平台。通过Kubernetes可以快速有效地响应用户需求,快速而有预期地部署、扩展应用,可以无缝对接新应用功能,节省资源,优化硬件资源的使用。Kubernetes为容器编排管理提供了完整的开源方案。但Kubernetes集群的组件及其相关插件众多,如何快速、简洁地部署Kubernetes集群是业内热点关注的问题。
发明内容
本公开实施例提供了一种集群部署方法、装置、设备及存储介质,能够提高集群的部署效率和容错能力,并提高集群部署的适用性和可扩展性能。
第一方面,本公开实施例提供了一种集群部署方法,应用于集群主节点的集群客户端程序,包括:
确定集群主节点的主节点配置信息和集群从节点的从节点配置信息;
根据所述主节点配置信息对本机进行独立配置;
将所述从节点配置信息发送至各集群从节点,以使各所述集群从节点根据所述从节点配置信息对本机进行独立配置。
第二方面,本公开实施例提供了一种集群部署方法,应用于集群从节点的集群客户端程序,包括:
接收集群主节点发送的从节点配置信息;
根据所述从节点配置信息对本机进行独立配置。
第三方面,本公开实施例提供了一种集群部署装置,配置于集群主节点的集群客户端程序,包括:
配置信息确定模块,用于确定集群主节点的主节点配置信息和集群从节点的从节点配置信息;
第一配置模块,用于根据所述主节点配置信息对本机进行独立配置;
配置信息发送模块,用于将所述从节点配置信息发送至各集群从节点,以使各所述集群从节点根据所述从节点配置信息对本机进行独立配置。
第四方面,本公开实施例提供了一种集群部署装置,配置于集群从节点的集群客户端程序,包括:
配置信息接收模块,用于接收集群主节点发送的从节点配置信息;
第二配置模块,用于根据所述从节点配置信息对本机进行独立配置。
第五方面,本公开实施例提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开任一实施例所提供的集群部署方法。
第六方面,本公开实施例还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本公开任一实施例所提供的集群部署方法。
第七方面,本公开实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本公开任一实施例所提供的集群部署方法。
本公开实施例通过集群主节点的集群客户端程序确定集群主节点的主节点配置信息和集群从节点配置信息,以根据确定的主节点配置信息对本机进行独立配置,并将从节点配置信息发送至各集群从节点,以使各集群从节点的集群客户端程序根据接收的从节点配置信息对本机进行独立配置,解决现有集群部署方法部署的集群存在的适用性和可扩展性能较低等问题,能够提高集群的部署效率和容错能力,并提高集群部署的适用性和可扩展性能。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是本公开实施例提供的一种集群部署方法的流程图;
图2是本公开实施例提供的一种Kubernetes集群部署方法的流程图;
图3是本公开实施例提供的一种集群部署方法的流程图;
图4是本公开实施例提供的一种Kubernetes集群部署方法的流程图;
图5是本公开实施例提供的一种Kubernetes集群部署方法的流程图;
图6是本公开实施例提供的一种Kubernetes集群节点之间交互的效果示意图;
图7是本公开实施例提供的一种集群部署装置的结构图;
图8是本公开实施例提供的一种集群部署装置的结构图;
图9是用来实现本公开实施例的集群部署方法的电子设备的结构示意图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
目前,Kubernetes官方支持的集群部署方式主要分为三类:(1)基于Minikube的Kubernetes集群部署;(2)基于云服务商提供的Kubernetes集群部署方案;(3)基于容器的快速部署方式,典型代表为Kubespray和RKE(Rancher Kubernetes Engine)等部署方式。然而,基于Minikube的Kubernetes集群部署方式部署得到的Kubernetes集群通常仅适用于测试使用,不能用于具体的生产环境。基于云服务商提供的Kubernetes集群部署方案部署得到的Kubernetes集群强依赖于各公有云提供的能力,只能部署在云上,无法满足私有化场景。基于容器的快速部署方式部署得到的Kubernetes集群依赖于在线环境(集群需要在线获取资源),且从节点的配置过程完全依赖主节点的控制,集群的安装过程不够透明,出现问题无法快速定位。由于集群的主节点控制所有节点的整个配置部署过程,因此当集群规模较大时,集群的部署容易受到主节点控制端以及部署工具的并发性能的影响。由此可见,基于容器的Kubernetes集群部署方式在大规模场景中的应用性能不够理想,会造成***瓶颈,无法有效应用于大规模Kubernetes集群的部署场景。由此可见,上述现有的Kubernetes集群部署方法的适用性和可扩展性能较低。
在一个示例中,图1是本公开实施例提供的一种集群部署方法的流程图,本实施例可适用于根据CS(Client/Server,客户端/服务器)架构的方式部署集群的情况,该方法可以由集群部署装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可集成在安装主节点的集群客户端程序的电子设备中。该电子设备可以是终端设备,也可以是服务器设备,本公开实施例并不对电子设备的类型进行限定。相应的,如图1所示,该方法包括如下操作:
S110、确定集群主节点的主节点配置信息和集群从节点的从节点配置信息。
其中,集群主节点也即集群的master节点,主节点配置信息可以是master节点的配置信息。可选的,集群包括Kubernetes集群,所述集群主节点包括Kubernetes集群主节点,所述集群从节点包括Kubernetes集群从节点。相应的,Kubernetes集群从节点也即Kubernetes集群的node节点,或者,Kubernetes集群从节点还可以包括ETCD(高可用的键值存储***,主要用于共享配置和服务发现)节点,从节点配置信息可以是node节点的配置信息。所谓配置信息也即对节点进行配置,使得节点具备Kubernetes集群的功能。
在本公开实施例中,以集群为Kubernetes集群,集群主节点为Kubernetes集群主节点,集群从节点为Kubernetes集群从节点为例具体说明。各Kubernetes集群节点之间采用CS架构的方式部署Kubernetes集群,因此需要在各Kubernetes集群节点上均安装集群客户端程序。其中,集群客户端程序可以是对Kubernetes集群节点进行配置的客户端程序,可以用于存储Kubernetes集群的元数据。Kubernetes集群主节点的集群客户端程序和Kubernetes集群从节点的集群客户端程序之间构成CS架构模式。在CS架构模式中,Kubernetes集群主节点下发的配置任务,Kubernetes集群从节点的集群客户端可以主动获取本机的配置任务,并独立完成Kubernetes集群从节点的配置。
相应的,仍以集群为Kubernetes集群,集群主节点为Kubernetes集群主节点,集群从节点为Kubernetes集群从节点为例具体说明。在CS架构模式下,可以由Kubernetes集群主节点的集群客户端程序统一确定Kubernetes集群主节点的主节点配置信息和Kubernetes集群从节点的从节点配置信息。
S120、根据所述主节点配置信息对本机进行独立配置。
相应的,仍以集群为Kubernetes集群,集群主节点为Kubernetes集群主节点,集群从节点为Kubernetes集群从节点为例具体说明。当Kubernetes集群主节点的集群客户端程序确定Kubernetes集群主节点的主节点配置信息之后,即可根据确定的Kubernetes集群主节点的主节点配置信息对本机进行独立配置,使得本机具备Kubernetes集群主节点的相关功能。
S130、将所述从节点配置信息发送至各集群从节点,以使各所述集群从节点根据所述从节点配置信息对本机进行独立配置。
在本公开实施例中,仍以集群为Kubernetes集群,集群主节点为Kubernetes集群主节点,集群从节点为Kubernetes集群从节点为例具体说明。当Kubernetes集群主节点的集群客户端程序确定Kubernetes集群从节点的从节点配置信息之后,可以将Kubernetes集群从节点的从节点配置信息发送至对应的各Kubernetes集群从节点。各Kubernetes集群从节点接收到本机对应的从节点配置信息之后,可以根据获取的从节点配置信息对本机进行独立配置。
需要说明的是,集群客户端程序可以配置任务执行模块,用于可以根据获取的节点配置信息对本机进行独立配置或执行其他自定义的任务。除此之外,集群客户端程序还可以部署其他功能以支持CS架构模式。示例性的,Kubernetes集群主节点的集群客户端程序可以配置任务下发模块,用于读取本地的配置文件并进行初始化,以确定各Kubernetes集群从节点的从节点配置信息并下发。Kubernetes集群从节点的集群客户端程序可以配置任务获取模块,用于获取本机对应的从节点配置信息,保证从节点配置信息的安全性和唯一性。Kubernetes集群从节点的集群客户端程序还可以配置结果收集模块,用于将本机配置部署过程生成的数据上报至Kubernetes集群主节点。Kubernetes集群主节点的集群客户端程序还可以配置结果存储模块,用于接收各Kubernetes集群从节点上报的数据,并将其存储到配置媒介中。集群客户端程序还可以根据业务需求配置其他功能类型的模块,本公开实施例对此并不进行限制。
Kubernetes集群从节点根据从节点配置信息对本机进行独立配置,指的是Kubernetes集群从节点的配置过程完全脱离于Kubernetes集群主节点的控制和依赖。也即,Kubernetes集群主节点不再控制所有节点的整个配置部署过程,各节点之间的配置过程是完全相互独立、彼此不受影响的,从而提高Kubernetes集群部署的效率。由此可见,即使待配置的Kubernetes集群规模较大,由于各Kubernetes集群从节点可以独立进行本机的配置过程,因此Kubernetes集群从节点的配置部署过程不会受到Kubernetes集群主节点的集群客户端程序以及部署工具的并发性能的影响,不会造成***瓶颈,可以按需扩展集群规模。同时,本公开实施例所提供的Kubernetes集群部署方法部署得到的Kubernetes集群可以适用于多种应用场景,包括但不限于测试场景、生产场景以及云计算平台等。由此可见,本公开实施例所提供的Kubernetes集群部署方法具有高适用性和高可扩展性能。需要说明的是,当部署的Kubernetes集群应用于云计算平台时,除了需要对Kubernetes集群部署常规的Kubernetes集群功能,还需要对各Kubernetes集群节点配置云平台的相关功能,如云存储和云计算功能等。
本公开实施例通过集群主节点的集群客户端程序确定集群主节点的主节点配置信息和集群从节点配置信息,以根据确定的主节点配置信息对本机进行独立配置,并将从节点配置信息发送至各集群从节点,以使各集群从节点的集群客户端程序根据接收的从节点配置信息对本机进行独立配置,解决现有集群部署方法部署的集群存在的适用性和可扩展性能较低等问题,能够提高集群的部署效率和容错能力,并提高集群部署的适用性和可扩展性能。
在一个示例中,图2是本公开实施例提供的一种Kubernetes集群部署方法的流程图,本公开实施例在上述各实施例的技术方案的基础上,进行了优化改进,以集群为Kubernetes集群,集群主节点为Kubernetes集群主节点,集群从节点为Kubernetes集群从节点,给出了确定主节点配置信息和从节点配置信息以及Kubernetes集群主节点根据主节点配置信息对本机进行独立配置的多种具体实现方式。
如图2所示的一种Kubernetes集群部署方法,包括:
S210、获取当前节点配置信息。
其中,当前节点配置信息也即当前节点的相关配置信息。
S220、在确定所述当前节点配置信息的节点角色为Kubernetes集群主节点角色的情况下,将所述当前节点配置信息确定为所述主节点配置信息。
其中,所述主节点配置信息包括节点配置信息和Kubernetes集群自定义配置信息。示例性的,Kubernetes集群自定义配置信息可以包括但不限于网络、端口以及节点部署路径等信息,本公开实施例对此并不进行限制。
在各Kubernetes集群节点配置之前,所有待配置Kubernetes集群节点具有平等的角色。配置工作人员可以对所有待配置待配置Kubernetes集群节点安装集群客户端程序。初始状态下,各待配置Kubernetes集群节点安装的集群客户端程序具有相同的功能。配置工作人员可以选择其中一个待配置的节点作为Kubernetes集群主节点,可选的,配置工作人员可以对选择的待配置Kubernetes集群节点的集群客户端程序的配置文件中设置节点角色为Kubernetes集群主节点角色。当各待配置Kubernetes集群节点的集群客户端程序获取到当前节点配置信息后,可以识别当前节点配置信息的节点角色。如果确定当前节点配置信息的节点角色为Kubernetes集群主节点角色,则确定本机为Kubernetes集群主节点,可以将当前节点配置信息确定为主节点配置信息。如果确定当前节点配置信息的节点角色为默认值,则确定本机为Kubernetes集群从节点。此时Kubernetes集群从节点可以等待接收从节点配置信息。
上述技术方案,通过配置节点配置信息的节点角色来配置各Kubernetes集群节点的节点类型,实现了对各Kubernetes集群节点的节点类型的快速部署。
S230、获取各Kubernetes集群从节点的节点标识信息以及预设从节点配置信息。
其中,节点标识信息可以是用于标识Kubernetes集群从节点的信息。可选的,可以采用节点的IP(Internet Protocol,网络之间互连的协议)地址或主机名等作为各Kubernetes集群从节点的节点标识信息。预设从节点配置信息可以是针对Kubernetes集群从节点预设的配置信息。
S240、根据各所述Kubernetes集群从节点的节点标识信息以及预设从节点配置信息生成所述从节点配置信息。
在本公开实施例中,Kubernetes集群主节点的集群客户端程序可以通过多种方式获取各Kubernetes集群从节点的节点标识信息以及预设从节点配置信息。例如,可以通过数据导入或数据下载的方式获取,或者,也可以由配置工作人员直接输入信息,本公开实施例并不对Kubernetes集群主节点的集群客户端程序获取各Kubernetes集群从节点的节点标识信息以及预设从节点配置信息的方式进行限定。
可选的,Kubernetes集群主节点的集群客户端程序可以对应获取每个Kubernetes集群从节点的节点标识信息以及对应的预设从节点配置信息。也即,每个Kubernetes集群从节点的节点标识信息以及对应的预设从节点配置信息为一组数据。或者,Kubernetes集群主节点的集群客户端程序也还可以统一获取所有Kubernetes集群从节点的节点标识信息,并统一获取所有Kubernetes集群从节点的预设从节点配置信息,也即节点标识信息和预设从节点配置信息可以为两组数据集。本公开实施例对此并不进行限制。
相应的,Kubernetes集群主节点的集群客户端程序获取到Kubernetes集群从节点的节点标识信息以及预设从节点配置信息之后,可以根据各Kubernetes集群从节点的节点标识信息以及预设从节点配置信息生成从节点配置信息。可选的,Kubernetes集群主节点的集群客户端程序可以建立每个Kubernetes集群从节点的节点标识信息以及对应的预设从节点配置信息之间的映射关系,从而生成每个Kubernetes集群从节点的从节点配置信息。也即,每个Kubernetes集群从节点的从节点配置信息包括一个Kubernetes集群从节点的节点标识信息,以及该Kubernetes集群从节点对应的预设从节点配置信息。
上述技术方案,通过利用节点标识信息对每个Kubernetes集群从节点对应的预设从节点配置信息进行标识,可以保证从节点配置信息的安全性和唯一性。
S250、根据所述主节点配置信息对本机进行独立配置。
在本公开的一个可选实施例中,在根据所述主节点配置信息对本机进行独立配置之前,还可以包括:对本机进行Kubernetes集群的配置检查和环境检查;根据所述主节点配置信息对本机进行独立配置,可以包括:对本机进行Kubernetes集群初始化配置;在本机安装Kubernetes集群关联组件;其中,所述Kubernetes集群关联组件包括Kubernetes集群核心组件、Kubernetes集群基础功能组件和Kubernetes集群附加功能组件。
Kubernetes集群主节点的集群客户端程序在根据主节点配置信息对本机进行独立配置之前,可以首先对Kubernetes集群主节点进行配置检查和环境检查。可选的,Kubernetes集群主节点的集群客户端程序对Kubernetes集群主节点进行配置检查的内容可以包括但不限于下述操作:1)检查hosts(没有扩展名的***文件)配置是否正确,确认kube-master、kube-node以及ETCD等参数是否为空;2)检查hostname(主机名)格式是否正确;3)检查网络插件是否兼容;4)检查各种开关是否正确设置:即为bool(布尔)类型;5)检查ETCD数目是否为奇数;6)检查dashboard(仪表盘)开启或者在apiserver insecure port等情况下RBAC(Role-Based Access Control,基于角色的访问控制)功能是否也开启;7)检查内核版本是否满足需求;8)检查pod(容器)和service(服务)的CIDR(Classless Inter-Domain Routing,无类别域间路由)的格式是否正确;9)检查os(operating system,操作***)版本是否满足需求等。
可选的,Kubernetes集群主节点的集群客户端程序对Kubernetes集群主节点进行环境检查的内容可以包括但不限于下述操作:1)检查内核版本是否满足需求;2)检查os版本是否满足需求;4)检查端口有无被占用;5)检查网络是否连通;6)检查是否有docker、k8s和etcd的残留配置。
相应的,Kubernetes集群主节点的集群客户端程序根据主节点配置信息对本机进行独立配置时,可以首先对本机进行Kubernetes集群初始化配置。可选的,Kubernetes集群初始化配置的内容可以包括但不限于下述操作:1)停止firewalld(防火墙)和selinux(提供的强制访问控制***);2)配置yum源,其中,yum源可以用于获取并安装Kubernetes集群应用(即容器)的依赖包;3)增加内核参数;4)关闭swap(硬盘分区)功能;5)设置时区,同步时间;6)安装docker(容器),配置并启动;7)创建Kubernetes配置的相关目录。可选的,yum源可以是本地yum源或在线yum源。当yum源为本地yum源时,Kubernetes集群的配置过程中可以通过离线的方式获取依赖包。在同步时间时,可以在Kubernetes集群主节点搭建NTP(Network Time Protocol,网络时间协议)服务器的方式实现。NTP服务器可以用于定期(如每15s或30s)同步各个节点的时间,使其保持一致。可选的,NTP服务器可以本地NTP服务器,也可以是在线NTP服务器。当NTP服务器采用本地NTP服务器时,Kubernetes集群的配置过程中可以通过离线的方式同步各节点的时间。
当Kubernetes集群主节点的集群客户端程序对本机进行Kubernetes集群初始化配置之后,可以进一步在机安装Kubernetes集群关联组件。其中,Kubernetes集群关联组件也即Kubernetes集群主节点需要安装的组件,可以包括但不限于Kubernetes集群核心组件、Kubernetes集群基础功能组件和Kubernetes集群附加功能组件等三种类型的组件。可选的,Kubernetes集群主节点的集群客户端程序可以首先在Kubernetes集群主节点安装Kubernetes集群核心组件,具体过程如下:安装kubeadm(快速安装Kubernetes集群的工具),生成Kubernetes集群核心组件的各种证书,生成Kubernetes集群核心组件的manifest(XML的描述文件)文件,启动Kubelet组件,以初始化Kubernetes集群的核心组件。进一步的,Kubernetes集群主节点的集群客户端程序可以在Kubernetes集群主节点安装Kubernetes集群基础功能组件,具体过程如下:安装网络插件,安装存储组件,最后安装DNS(Domain Name System,域名***)解析组件。进一步的,Kubernetes集群主节点的集群客户端程序可以在Kubernetes集群主节点安装Kubernetes集群附加功能组件,具体过程如下:安装容器编排工具helm,安装GPU(Graphics Processing Unit,图形处理器)驱动插件,安装网关组件ingress,安装镜像仓库组件harbor,最后,安装监控组件prometheus。可选的,Kubernetes集群主节点的集群客户端程序在本机搭建的镜像仓库可以为本地镜像仓库,也可以为在线镜像仓库,在搭建镜像仓库后,可以将Kubernetes集群需要的镜像上传到镜像仓库中。
可以理解的是,当yum源、NTP服务器以及镜像仓库均为本地功能件时,Kubernetes集群的部署过程完全可以实现离线部署的方式,而无需依赖任何在线服务。
在本公开的一个可选实施例中,在根据所述主节点配置信息对本机进行独立配置之后,还可以包括:创建Kubernetes集群测试应用,以根据Kubernetes集群测试应用检测Kubernetes集群基础功能。
上述技术方案,通过对Kubernetes集群主节点进行配置检查和环境检查,可以保证基础配置信息和配置环境的准确性和可靠性。根据主节点配置信息对本机的各个组件进行配置,并在配置完成后利用Kubernetes集群测试应用检测Kubernetes集群基础功能,可以保证Kubernetes集群主节点配置过程的有效性。
S260、将所述从节点配置信息发送至配置信息消息队列。
其中,配置信息消息队列可以是用于接收并缓存从节点配置信息的消息队列。
在本公开实施例中,Kubernetes集群主节点在确定各Kubernetes集群从节点的从节点配置信息之后,可以将从节点配置信息发送至配置信息消息队列。各Kubernetes集群从节点可以根据本机的节点标识信息从配置信息消息队列获取匹配的目标从节点配置信息,以根据获取的目标从节点配置信息对本机进行独立配置。通过配置信息消息队列缓存各从节点配置信息,可以实现Kubernetes集群主节点和Kubernetes集群从节点之间配置过程的解耦合。
上述技术方案,通过Kubernetes集群主节点的集群客户端程序根据主节点配置信息对本机的组件进行配置,并将将从节点配置信息发送至配置信息消息队列,以通过配置信息消息队列将各Kubernetes集群从节点的从节点配置信息发送至对应的Kubernetes集群从节点,实现了CS架构模式的Kubernetes集群部署方式,能够提高Kubernetes集群的部署效率和容错能力,并提高Kubernetes集群部署的适用性和可扩展性能。
在一个示例中,图3是本公开实施例提供的一种集群部署方法的流程图,本实施例可适用于根据CS架构的方式部署集群的情况,该方法可以由集群部署装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可集成在安装从节点的集群客户端程序的电子设备中。该电子设备可以是终端设备,也可以是服务器设备,本公开实施例并不对电子设备的类型进行限定。相应的,如图3所示,该方法包括如下操作:
S310、接收集群主节点发送的从节点配置信息。
S320、根据所述从节点配置信息对本机进行独立配置。
在本公开实施例中,可选的,集群可以包括Kubernetes集群,集群主节点可以包括Kubernetes集群主节点,集群从节点可以包括Kubernetes集群从节点。
相应的,以集群为Kubernetes集群,集群主节点为Kubernetes集群主节点,集群从节点为Kubernetes集群从节点为例具体说明。Kubernetes集群从节点的集群客户端程序可以接收Kubernetes集群主节点发送的从节点配置信息,以根据接收的从节点配置信息对本机进行独立配置。也即,Kubernetes集群主节点和Kubernetes集群从节点的集群客户端程序构成了CS架构模式。在CS架构模式下,可以由Kubernetes集群主节点的集群客户端程序统一确定Kubernetes集群主节点的主节点配置信息和Kubernetes集群从节点的从节点配置信息。Kubernetes集群从节点的配置过程完全脱离于Kubernetes集群主节点的控制和依赖。也即,Kubernetes集群主节点不再控制所有节点的整个配置部署过程,各节点之间的配置过程是完全相互独立、彼此不受影响的。
在本公开实施例中,仍以集群为Kubernetes集群,集群主节点为Kubernetes集群主节点,集群从节点为Kubernetes集群从节点为例具体说明。Kubernetes集群从节点的集群客户端程序运行后,可以自动注册到Kubernetes集群主节点的集群客户端程序。Kubernetes集群主节点的集群客户端程序可以对Kubernetes集群从节点的集群客户端程序的状态进行实时监控,以避免Kubernetes集群从节点的集群客户端程序在集群部署过程中出现死机或其他故障。当Kubernetes集群主节点的集群客户端程序监控到某一个或多个Kubernetes集群从节点的集群客户端程序出现故障无法工作时,可以在确定故障的Kubernetes集群从节点的集群客户端程序重启后,重新向Kubernetes集群从节点的集群客户端程序发送对应的从节点配置信息。重启的Kubernetes集群从节点的集群客户端程序可以重新获取Kubernetes集群主节点发送的从节点配置信息。由此可见,CS架构模式的集群客户端程序可以有效提高Kubernetes集群部署的容错能力。
本公开实施例通过集群从节点的集群客户端程序接收主节点集群客户端程序发送的集群从节点配置信息,以根据接收的从节点配置信息对本机进行独立配置,解决现有集群部署方法部署的集群存在的适用性和可扩展性能较低等问题,能够提高集群的部署效率和容错能力,并提高集群部署的适用性和可扩展性能。
在一个示例中,图4是本公开实施例提供的一种Kubernetes集群部署方法的流程图,本公开实施例在上述各实施例的技术方案的基础上,进行了优化改进,以集群为Kubernetes集群,集群主节点为Kubernetes集群主节点,集群从节点为Kubernetes集群从节点,给出了接收Kubernetes集群主节点发送的从节点配置信息,以及根据从节点配置信息对本机进行独立配置的多种具体实现方式。
如图4所示的一种Kubernetes集群部署方法,包括:
S410、获取本机的节点标识信息。
S420、根据所述本机的节点标识信息从配置信息消息队列获取目标从节点配置信息。
其中,所述配置信息消息队列用于接收所述Kubernetes集群主节点发送的从节点配置信息。
其中,目标从节点配置信息可以是节点标识信息与本机的节点标识信息相同的从节点配置信息。
在本公开实施例中,Kubernetes集群主节点的集群客户端程序和Kubernetes集群从节点的集群客户端程序之间可以通过配置信息消息队列进行通信。Kubernetes集群从节点的集群客户端程序访问配置信息消息队列,以根据本机的节点标识信息从配置信息消息队列中搜索匹配本机匹配的目标从节点配置信息。
上述技术方案,通过利用节点标识信息获取每个Kubernetes集群从节点对应的从节点配置信息,可以保证获取的从节点配置信息的安全性和准确性。
S430、对本机进行Kubernetes集群环境检查。
在本公开实施例中,Kubernetes集群从节点的类型可以为Node节点或ETCD节点。可以理解的是,当ETCD服务部署在Kubernetes集群主节点时,Kubernetes集群从节点的类型则仅包括Node节点。
相应的,Node节点或ETCD节点在进行配置前的Kubernetes集群环境检查可以包括但不限于如下操作:1)检查内核版本是否满足需求;2)检查os版本是否满足需求;4)检查端口有无被占用;5)检查网络是否连通;6)检查是否有docker、k8s和etcd的残留配置等。
上述技术方案,通过对Kubernetes集群从节点进行环境检查,可以保证配置环境的准确性和可靠性。
S440、根据所述从节点配置信息对本机进行独立配置。
在本公开实施例中,若本机的节点类型为ETCD节点,则S440可以包括:
S441、对本机进行Kubernetes集群初始化配置。
可选的,若本机的节点类型为ETCD节点,则Kubernetes集群从节点的集群客户端程序对本机进行Kubernetes集群初始化配置的内容可以包括但不限于下述操作:1)停止firewalld和selinux;2)配置yum源;3)增加内核参数;4)关闭swap;5)设置时区,同步时间;6)安装docker,配置并启动。可选的,yum源可以是本地yum源或在线yum源。当yum源为本地yum源时,Kubernetes集群的配置过程中可以通过离线的方式获取依赖包。在同步时间时,可以在Kubernetes集群从节点搭建NTP服务器的方式实现。NTP服务器可以用于定期(如每15s或30s)同步各个节点的时间,使其保持一致。可选的,NTP服务器可以本地NTP服务器,也可以是在线NTP服务器。当NTP服务器采用本地NTP服务器时,Kubernetes集群的配置过程中可以通过离线的方式同步各节点的时间。
S442、根据所述从节点配置信息在本机安装ETCD服务。
可选的,若本机的节点类型为ETCD节点,则Kubernetes集群从节点的集群客户端程序根据从节点配置信息在本机安装ETCD服务的内容可以包括但不限于下述操作:1)生成ETCD证书;2)配置systemctl(一种linux命令),通过docker run参数拉起ETCD;3)从ETCD容器拷贝etcdctl命令到宿主机。
S443、检查所述ETCD服务的健康状态。
相应的,在ETCD节点完成对本机的配置后,可以检测ETCD服务的健康状态,以确保ETCD服务可用。
上述技术方案,通过ETCD节点的集群客户端程序对本机进行Kubernetes集群初始化配置,并根据从节点配置信息在本机安装ETCD服务,并在配置完成后检查ETCD服务的健康状态,实现了ETCD节点的快速部署。
在本公开实施例中,若本机的节点类型为Node节点,则S440可以包括:
S444、对本机进行Kubernetes集群初始化配置。
可选的,若本机的节点类型为Node节点,则Kubernetes集群从节点的集群客户端程序对本机进行Kubernetes集群初始化配置的内容可以包括但不限于下述操作:1)停止firewalld和selinux;2)配置yum源;3)增加内核参数;4)关闭swap;5)设置时区,同步时间;6)安装docker,配置并启动。可选的,yum源可以是本地yum源或在线yum源。当yum源为本地yum源时,Kubernetes集群的配置过程中可以通过离线的方式获取依赖包。在同步时间时,可以在Kubernetes集群从节点搭建NTP服务器的方式实现。NTP服务器可以用于定期(如每15s或30s)同步各个节点的时间,使其保持一致。可选的,NTP服务器可以本地NTP服务器,也可以是在线NTP服务器。当NTP服务器采用本地NTP服务器时,Kubernetes集群的配置过程中可以通过离线的方式同步各节点的时间。
S445、根据所述从节点配置信息在本机执行Node节点安装流程。
可选的,若本机的节点类型为Node节点,则Kubernetes集群从节点的集群客户端程序根据从节点配置信息在本机执行Node节点安装流程的内容可以包括但不限于下述操作:1)安装kubelet组件;2)开启自动轮滑证书;3)从主节点master0获取kubeadm join命令的相关配置;4)加入本机到Kubernetes集群中。
上述技术方案,通过Node节点的集群客户端程序对本机进行Kubernetes集群初始化配置,并根据从节点配置信息在本机执行Node节点安装流程,实现了Node节点的快速部署。
采用上述技术方案,通过Kubernetes集群从节点的集群客户端程序对各Kubernetes集群从节点进行快速、独立的配置,能够提高Kubernetes集群的部署效率和容错能力,并提高Kubernetes集群部署的适用性和可扩展性能。
在一个示例中,图5是本公开实施例提供的一种Kubernetes集群部署方法的流程图,图6是本公开实施例提供的一种Kubernetes集群节点之间交互的效果示意图,本实施例可适用于根据CS架构的方式部署Kubernetes集群的情况。相应的,如图5和图6所示,该方法包括如下操作:
S510、Kubernetes集群主节点的集群客户端程序确定Kubernetes集群主节点的主节点配置信息和Kubernetes集群从节点的从节点配置信息。
在本公开的一个可选实施例中,Kubernetes集群主节点的集群客户端程序确定Kubernetes集群主节点的主节点配置信息,可以包括:Kubernetes集群主节点获取当前节点配置信息;Kubernetes集群主节点在确定所述当前节点配置信息的节点角色为Kubernetes集群主节点角色的情况下,将所述当前节点配置信息确定为所述主节点配置信息;其中,所述主节点配置信息包括节点配置信息和Kubernetes集群自定义配置信息。
在本公开的一个可选实施例中,Kubernetes集群主节点的集群客户端程序确定Kubernetes集群从节点的从节点配置信息,可以包括:Kubernetes集群主节点获取各Kubernetes集群从节点的节点标识信息以及预设从节点配置信息;Kubernetes集群主节点根据各所述Kubernetes集群从节点的节点标识信息以及预设从节点配置信息生成所述从节点配置信息。
S520、Kubernetes集群主节点的集群客户端程序根据所述主节点配置信息对本机进行独立配置。
在本公开的一个可选实施例中,Kubernetes集群主节点的集群客户端程序根据所述主节点配置信息对本机进行独立配置,可以包括:Kubernetes集群主节点对本机进行Kubernetes集群的配置检查和环境检查,进一步对本机进行Kubernetes集群初始化配置、在本机安装Kubernetes集群关联组件;其中,所述Kubernetes集群关联组件包括Kubernetes集群核心组件、Kubernetes集群基础功能组件和Kubernetes集群附加功能组件;最后创建Kubernetes集群测试应用;根据所述Kubernetes集群测试应用检测Kubernetes集群基础功能。
S530、Kubernetes集群主节点的集群客户端程序将所述从节点配置信息发送至配置信息消息队列。
S540、Kubernetes集群从节点的集群客户端程序获取本机的节点标识信息,并根据本机的节点标识信息从配置信息消息队列获取目标从节点配置信息。
S550、Kubernetes集群从节点的集群客户端程序根据所述从节点配置信息对本机进行独立配置。
在本公开的一个可选实施例中,Kubernetes集群从节点的集群客户端程序根据所述从节点配置信息对本机进行独立配置之前,还可以包括:Kubernetes集群从节点的集群客户端对本机进行Kubernetes集群环境检查。
在本公开的一个可选实施例中,若本机的节点类型为服务发现ETCD节点,则Kubernetes集群从节点的集群客户端程序根据所述从节点配置信息对本机进行独立配置,可以包括:Kubernetes集群从节点的集群客户端程序对本机进行Kubernetes集群初始化配置;Kubernetes集群从节点的集群客户端程序根据所述从节点配置信息在本机安装ETCD服务;Kubernetes集群从节点的集群客户端程序检查所述ETCD服务的健康状态。
在本公开的一个可选实施例中,若本机的节点类型为服务发现Node节点,则Kubernetes集群从节点的集群客户端程序根据所述从节点配置信息对本机进行独立配置,可以包括:Kubernetes集群从节点的集群客户端程序对本机进行Kubernetes集群初始化配置;Kubernetes集群从节点的集群客户端程序根据所述从节点配置信息在本机执行Node节点安装流程。
本公开实施例通过Kubernetes集群主节点的集群客户端程序确定Kubernetes集群主节点的主节点配置信息和Kubernetes集群从节点配置信息,以根据确定的主节点配置信息对本机进行独立配置,并将从节点配置信息发送至各Kubernetes集群从节点,以使各Kubernetes集群从节点的集群客户端程序根据接收的从节点配置信息对本机进行独立配置,解决现有Kubernetes集群部署方法部署的Kubernetes集群存在的适用性和可扩展性能较低等问题,能够提高Kubernetes集群的部署效率和容错能力,并提高Kubernetes集群部署的适用性和可扩展性能。
需要说明的是,以上各实施例中各技术特征之间的任意排列组合也属于本公开的保护范围。
在一个示例中,图7是本公开实施例提供的一种集群部署装置的结构图,本公开实施例可适用于根据CS(Client/Server,客户端/服务器)架构的方式部署集群的情况,该装置通过软件和/或硬件实现,并具体配置于安装主节点的集群客户端程序的电子设备中。该电子设备可以是终端设备,也可以是服务器设备,本公开实施例并不对电子设备的类型进行限定。
如图7所示的一种集群部署装置600,包括:配置信息确定模块610、第一配置模块620和配置信息发送模块630。其中,
配置信息确定模块610,用于确定集群主节点的主节点配置信息和集群从节点的从节点配置信息;
第一配置模块620,用于根据所述主节点配置信息对本机进行独立配置;
配置信息发送模块630,用于将所述从节点配置信息发送至各集群从节点,以使各所述集群从节点根据所述从节点配置信息对本机进行独立配置。
本公开实施例通过集群主节点的集群客户端程序确定集群主节点的主节点配置信息和集群从节点配置信息,以根据确定的主节点配置信息对本机进行独立配置,并将从节点配置信息发送至各集群从节点,以使各集群从节点的集群客户端程序根据接收的从节点配置信息对本机进行独立配置,解决现有集群部署方法部署的集群存在的适用性和可扩展性能较低等问题,能够提高集群的部署效率和容错能力,并提高集群部署的适用性和可扩展性能。
可选的,集群包括Kubernetes集群,所述集群主节点包括Kubernetes集群主节点,所述集群从节点包括Kubernetes集群从节点。
可选的,配置信息确定模块610具体用于:获取当前节点配置信息;在确定所述当前节点配置信息的节点角色为Kubernetes集群主节点角色的情况下,将所述当前节点配置信息确定为所述主节点配置信息;其中,所述主节点配置信息包括节点配置信息和Kubernetes集群自定义配置信息。
可选的,配置信息确定模块610具体用于:获取各Kubernetes集群从节点的节点标识信息以及预设从节点配置信息;根据各所述Kubernetes集群从节点的节点标识信息以及预设从节点配置信息生成所述从节点配置信息。
可选的,第一配置模块620具体用于:对本机进行Kubernetes集群初始化配置;在本机安装Kubernetes集群关联组件;其中,所述Kubernetes集群关联组件包括Kubernetes集群核心组件、Kubernetes集群基础功能组件和Kubernetes集群附加功能组件。
可选的,所述装置还包括:配置环境检查模块,用于对本机进行Kubernetes集群的配置检查和环境检查;集群测试应用创建模块,用于创建Kubernetes集群测试应用;集群基础功能测试模块,用于根据所述Kubernetes集群测试应用检测Kubernetes集群基础功能。
可选的,配置信息发送模块630具体用于:将所述从节点配置信息发送至配置信息消息队列;其中,各所述Kubernetes集群从节点用于根据本机的节点标识信息从所述配置信息消息队列获取目标从节点配置信息,以根据所述目标从节点配置信息对本机进行独立配置。
上述集群部署装置可执行本公开任意实施例所提供的由集群主节点的集群客户端程序执行的集群部署方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本公开任意实施例提供的由集群主节点的集群客户端程序执行的集群部署方法。
在一个示例中,图8是本公开实施例提供的一种集群部署装置的结构图,本公开实施例可适用于根据CS架构的方式部署集群的情况,该装置通过软件和/或硬件实现,并具体配置于安装从节点的集群客户端程序的电子设备中。该电子设备可以是终端设备,也可以是服务器设备,本公开实施例并不对电子设备的类型进行限定。
如图8所示的一种集群部署装置700,包括:配置信息接收模块710和第二配置模块720。其中,
配置信息接收模块710,用于接收集群主节点发送的从节点配置信息;
第二配置模块720,用于根据所述从节点配置信息对本机进行独立配置。
本公开实施例通过集群从节点的集群客户端程序接收主节点集群客户端程序发送的集群从节点配置信息,以根据接收的从节点配置信息对本机进行独立配置,解决现有集群部署方法部署的集群存在的适用性和可扩展性能较低等问题,能够提高集群的部署效率和容错能力,并提高集群部署的适用性和可扩展性能。
可选的,集群包括Kubernetes集群,所述集群主节点包括Kubernetes集群主节点,所述集群从节点包括Kubernetes集群从节点。
可选的,配置信息接收模块710具体用于:获取本机的节点标识信息;根据所述本机的节点标识信息从配置信息消息队列获取目标从节点配置信息;其中,所述配置信息消息队列用于接收所述Kubernetes集群主节点发送的从节点配置信息。
可选的,所述本机的节点类型为服务发现ETCD节点;第二配置模块720具体用于:对本机进行Kubernetes集群初始化配置;根据所述从节点配置信息在本机安装ETCD服务;检查所述ETCD服务的健康状态。
可选的,所述本机的节点类型为Node节点;第二配置模块720具体用于:对本机进行Kubernetes集群初始化配置;根据所述从节点配置信息在本机执行Node节点安装流程。
可选的,所述装置还包括:环境检查模块,用于对本机进行Kubernetes集群环境检查。
上述集群部署装置可执行本公开任意实施例所提供的由集群从节点的集群客户端程序执行的集群部署方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本公开任意实施例提供的由集群从节点的集群客户端程序执行的集群部署方法。
在一个示例中,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图9示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图9所示,设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如集群部署方法。例如,在一些实施例中,集群部署方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行上文描述的集群部署方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行集群部署方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。服务器还可以分布式***的服务器,或者是结合了区块链的服务器。
本公开实施例通过集群主节点的集群客户端程序确定集群主节点的主节点配置信息和集群从节点配置信息,以根据确定的主节点配置信息对本机进行独立配置,并将从节点配置信息发送至各集群从节点,以使各集群从节点的集群客户端程序根据接收的从节点配置信息对本机进行独立配置,解决现有集群部署方法部署的集群存在的适用性和可扩展性能较低等问题,能够提高集群的部署效率和容错能力,并提高集群部署的适用性和可扩展性能。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (14)

1.一种集群部署方法,应用于集群主节点的集群客户端程序,包括:
确定集群主节点的主节点配置信息和集群从节点的从节点配置信息;
根据所述主节点配置信息对本机进行独立配置;
将所述从节点配置信息发送至各集群从节点,以使各所述集群从节点根据所述从节点配置信息对本机进行独立配置;
其中,集群包括Kubernetes集群,所述集群主节点包括Kubernetes集群主节点,所述集群从节点包括Kubernetes集群从节点;
其中,所述Kubernetes集群从节点根据所述从节点配置信息对本机进行独立配置,具体为Kubernetes集群从节点的配置过程完全脱离于Kubernetes主节点的控制和依赖;其中,所述确定Kubernetes集群主节点的主节点配置信息,包括:
获取当前节点配置信息,并识别所述当前节点配置信息的节点角色;
在确定所述当前节点配置信息的所述节点角色为Kubernetes集群主节点角色的情况下,将所述当前节点配置信息确定为所述主节点配置信息;
其中,所述主节点配置信息包括节点配置信息和Kubernetes集群自定义配置信息;
其中,确定所述Kubernetes集群从节点的从节点配置信息,包括:
获取各Kubernetes集群从节点的节点标识信息以及预设从节点配置信息;
建立各所述Kubernetes集群从节点的节点标识信息以及对应的预设从节点配置信息之间的映射关系,从而生成所述从节点配置信息;
其中,所述根据所述主节点配置信息对本机进行独立配置,包括:
对本机进行Kubernetes集群初始化配置;
在本机安装Kubernetes集群关联组件;
其中,所述Kubernetes集群关联组件包括Kubernetes集群核心组件、Kubernetes集群基础功能组件和Kubernetes集群附加功能组件;
其中,所述对本机进行Kubernetes集群初始化配置,包括:
停止防火墙和强制访问控制***;
配置yum源,其中,所述yum源为本地yum源,用于获取并安装所述Kuberbnetes集群应用的依赖包;
增加内核参数;关闭硬盘分区功能;设置时区,同步时间;安装容器,配置并启动;创建所述Kubernetes配置的相关目录;
其中,所述同步时间以在所述Kubernetes集群主节点搭建网络时间协议服务器的方式实现,所述网络时间协议服务器为本地网络时间协议服务器;
其中,在本机安装Kubernetes集群附加功能组件,包括:
安装容器编排工具helm,安装图形处理器驱动插件,安装网关组件ingress,安装镜像仓库组件harbor,安装监控组件prometheus,其中,所述镜像仓库为本地镜像仓库。
2.根据权利要求1所述的方法,还包括:
对本机进行Kubernetes集群的配置检查和环境检查;
创建Kubernetes集群测试应用;
根据所述Kubernetes集群测试应用检测Kubernetes集群基础功能。
3.根据权利要求1所述的方法,其中,将所述从节点配置信息发送至各Kubernetes集群从节点,以使各所述Kubernetes集群从节点根据所述从节点配置信息对本机进行独立配置,包括:
将所述从节点配置信息发送至配置信息消息队列;
其中,各所述Kubernetes集群从节点用于根据本机的节点标识信息从所述配置信息消息队列获取目标从节点配置信息,以根据所述目标从节点配置信息对本机进行独立配置。
4.一种集群部署方法,应用于集群从节点的集群客户端程序,包括:
接收集群主节点发送的从节点配置信息;
根据所述从节点配置信息对本机进行独立配置;
其中,集群包括Kubernetes集群,所述集群主节点包括Kubernetes集群主节点,所述集群从节点包括Kubernetes集群从节点;
其中,所述Kubernetes集群从节点根据所述从节点配置信息对本机进行独立配置,具体为Kubernetes集群从节点的配置过程完全脱离于Kubernetes主节点的控制和依赖;其中,所述接收Kubernetes集群主节点发送的从节点配置信息,包括:
获取本机的节点标识信息以及预设本机节点配置信息;
根据所述本机的节点标识信息以及对应的预设从节点配置信息之间的映射关系从配置信息消息队列获取目标从节点配置信息;
其中,所述配置信息消息队列用于接收所述Kubernetes集群主节点发送的从节点配置信息;
其中,所述本机的节点类型为服务发现ETCD节点;
所述根据所述从节点配置信息对本机进行独立配置,包括:
对本机进行Kubernetes集群初始化配置;
根据所述从节点配置信息在本机安装ETCD服务;
检查所述ETCD服务的健康状态;
其中,所述对本机进行Kubernetes集群初始化配置,包括:
停止防火墙和强制访问控制***;
配置yum源,其中,所述yum源为本地yum源,用于获取并安装所述Kuberbnetes集群应用的依赖包;
增加内核参数;关闭硬盘分区功能;设置时区,同步时间;安装容器,配置并启动;创建所述Kubernetes配置的相关目录;
其中,所述同步时间以在所述Kubernetes集群主节点搭建网络时间协议服务器的方式实现,所述网络时间协议服务器为本地网络时间协议服务器。
5.根据权利要求4所述的方法,其中,所述本机的节点类型为工作Node节点;
所述根据所述从节点配置信息对本机进行独立配置,包括:
对本机进行Kubernetes集群初始化配置;
根据所述从节点配置信息在本机执行Node节点安装流程。
6.根据权利要求4-5任一所述的方法,还包括:
对本机进行Kubernetes集群环境检查。
7.一种集群部署装置,配置于集群主节点的集群客户端程序,包括:
配置信息确定模块,用于确定集群主节点的主节点配置信息和集群从节点的从节点配置信息;
第一配置模块,用于根据所述主节点配置信息对本机进行独立配置;
配置信息发送模块,用于将所述从节点配置信息发送至各集群从节点,以使各所述集群从节点根据所述从节点配置信息对本机进行独立配置;
其中,集群包括Kubernetes集群,所述集群主节点包括Kubernetes集群主节点,所述集群从节点包括Kubernetes集群从节点;
其中,所述Kubernetes集群从节点根据所述从节点配置信息对本机进行独立配置,具体为Kubernetes集群从节点的配置过程完全脱离于Kubernetes主节点的控制和依赖;其中,所述配置信息确定模块具体用于:
获取当前节点配置信息,并识别所述当前节点配置信息的节点角色;
在确定所述当前节点配置信息的所述节点角色为Kubernetes集群主节点角色的情况下,将所述当前节点配置信息确定为所述主节点配置信息;
其中,所述主节点配置信息包括节点配置信息和Kubernetes集群自定义配置信息;其中,所述配置信息确定模块具体还用于:
获取各Kubernetes集群从节点的节点标识信息以及预设从节点配置信息;
建立各所述Kubernetes集群从节点的节点标识信息以及对应的预设从节点配置信息之间的映射关系,从而生成所述从节点配置信息;
其中,所述第一配置模块具体用于:
对本机进行Kubernetes集群初始化配置;
在本机安装Kubernetes集群关联组件;
其中,所述Kubernetes集群关联组件包括Kubernetes集群核心组件、Kubernetes集群基础功能组件和Kubernetes集群附加功能组件;
其中,所述对本机进行Kubernetes集群初始化配置,包括:
停止防火墙和强制访问控制***;
配置yum源,其中,所述yum源为本地yum源,用于获取并安装所述Kuberbnetes集群应用的依赖包;
增加内核参数;关闭硬盘分区功能;设置时区,同步时间;安装容器,配置并启动;创建所述Kubernetes配置的相关目录;
其中,所述同步时间以在所述Kubernetes集群主节点搭建网络时间协议服务器的方式实现,所述网络时间协议服务器为本地网络时间协议服务器;
其中,在本机安装Kubernetes集群附加功能组件,包括:
安装容器编排工具helm,安装图形处理器驱动插件,安装网关组件ingress,安装镜像仓库组件harbor,安装监控组件prometheus,其中,所述镜像仓库为本地镜像仓库。
8.根据权利要求7所述的装置,还包括:
配置环境检查模块,用于对本机进行Kubernetes集群的配置检查和环境检查;
集群测试应用创建模块,用于创建Kubernetes集群测试应用;
集群基础功能测试模块,用于根据所述Kubernetes集群测试应用检测Kubernetes集群基础功能。
9.根据权利要求7所述的装置,其中,所述配置信息发送模块具体用于:
将所述从节点配置信息发送至配置信息消息队列;
其中,各所述Kubernetes集群从节点用于根据本机的节点标识信息从所述配置信息消息队列获取目标从节点配置信息,以根据所述目标从节点配置信息对本机进行独立配置。
10.一种集群部署装置,配置于集群从节点的集群客户端程序,包括:
配置信息接收模块,用于接收集群主节点发送的从节点配置信息;
第二配置模块,用于根据所述从节点配置信息对本机进行独立配置;
其中,集群包括Kubernetes集群,所述集群主节点包括Kubernetes集群主节点,所述集群从节点包括Kubernetes集群从节点;
其中,所述Kubernetes集群从节点根据所述从节点配置信息对本机进行独立配置,具体为Kubernetes集群从节点的配置过程完全脱离于Kubernetes主节点的控制和依赖;其中,所述配置信息接收模块具体用于:
获取本机的节点标识信息以及预设本机节点配置信息;
根据所述本机的节点标识信息以及对应的预设本机节点配置信息之间的映射关系从配置信息消息队列获取目标从节点配置信息;
其中,所述配置信息消息队列用于接收所述Kubernetes集群主节点发送的从节点配置信息;
其中,所述本机的节点类型为服务发现ETCD节点;所述第二配置模块具体用于:
对本机进行Kubernetes集群初始化配置;
根据所述从节点配置信息在本机安装ETCD服务;
检查所述ETCD服务的健康状态;
其中,所述对本机进行Kubernetes集群初始化配置,包括:
停止防火墙和强制访问控制***;
配置yum源,其中,所述yum源为本地yum源,用于获取并安装所述Kuberbnetes集群应用的依赖包;
增加内核参数;关闭硬盘分区功能;设置时区,同步时间;安装容器,配置并启动;创建所述Kubernetes配置的相关目录;
其中,所述同步时间以在所述Kubernetes集群主节点搭建网络时间协议服务器的方式实现,所述网络时间协议服务器为本地网络时间协议服务器。
11.根据权利要求10所述的装置,其中,所述本机的节点类型为Node节点;所述第二配置模块具体用于:
对本机进行Kubernetes集群初始化配置;
根据所述从节点配置信息在本机执行Node节点安装流程。
12.根据权利要求10-11任一所述的装置,还包括:
环境检查模块,用于对本机进行Kubernetes集群环境检查。
13.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-3或4-6中任一项所述的集群部署方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使计算机执行权利要求1-3或4-6中任一项所述的集群部署方法。
CN202110961311.4A 2021-08-20 2021-08-20 一种集群部署方法、装置、设备及存储介质 Active CN113656147B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202110961311.4A CN113656147B (zh) 2021-08-20 2021-08-20 一种集群部署方法、装置、设备及存储介质
EP22177718.8A EP4095678A1 (en) 2021-08-20 2022-06-08 Method and apparatus of deploying a cluster, device and storage medium
US17/805,912 US20230060053A1 (en) 2021-08-20 2022-06-08 Method and apparatus of deploying a cluster, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110961311.4A CN113656147B (zh) 2021-08-20 2021-08-20 一种集群部署方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN113656147A CN113656147A (zh) 2021-11-16
CN113656147B true CN113656147B (zh) 2023-03-31

Family

ID=78491762

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110961311.4A Active CN113656147B (zh) 2021-08-20 2021-08-20 一种集群部署方法、装置、设备及存储介质

Country Status (3)

Country Link
US (1) US20230060053A1 (zh)
EP (1) EP4095678A1 (zh)
CN (1) CN113656147B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114157658B (zh) * 2021-12-06 2024-03-01 京东科技信息技术有限公司 镜像仓库部署方法、装置、电子设备和计算机可读介质
CN114356425A (zh) * 2021-12-22 2022-04-15 绿盟科技集团股份有限公司 一种服务器集群部署方法、控制服务器和工作服务器
CN116450301B (zh) * 2023-06-14 2023-08-15 天津市天河计算机技术有限公司 基于容器的监控方法、***、设备及介质
CN116450534B (zh) * 2023-06-19 2023-08-22 建信金融科技有限责任公司 移动端应用程序的生成方法、装置、设备及介质
CN117519911B (zh) * 2024-01-04 2024-04-19 珠海星云智联科技有限公司 自动注入***、方法、设备、集群以及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108549580A (zh) * 2018-03-30 2018-09-18 平安科技(深圳)有限公司 自动部署Kubernetes从节点的方法及终端设备
CN111026656A (zh) * 2019-11-29 2020-04-17 浪潮商用机器有限公司 分布式存储的自动化测试***、方法、设备及存储介质
CN112445495A (zh) * 2019-08-28 2021-03-05 曙光信息产业(北京)有限公司 一种高性能计算集群节点的镜像与恢复方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104219329A (zh) * 2014-09-28 2014-12-17 浪潮软件集团有限公司 一种集群服务器中通过内容分发部署业务的方法
CN105912371A (zh) * 2016-05-11 2016-08-31 广东浪潮大数据研究有限公司 一种基于cs模式部署自动化部署操作***的方法
CN107454140A (zh) * 2017-06-27 2017-12-08 北京溢思得瑞智能科技研究院有限公司 一种基于大数据平台的Ceph集群自动化部署方法及***
CN108536519B (zh) * 2018-03-30 2023-04-07 平安科技(深圳)有限公司 自动搭建Kubernetes主节点的方法及终端设备
CN111061503B (zh) * 2018-10-16 2023-08-18 航天信息股份有限公司 集群***的配置方法和集群***
US10972342B2 (en) * 2018-12-17 2021-04-06 Juniper Networks, Inc. Network device configuration using a message bus
CN112398669B (zh) * 2019-08-15 2023-09-26 北京京东尚科信息技术有限公司 一种Hadoop部署方法和装置
US11777790B2 (en) * 2020-04-16 2023-10-03 Ribbon Communications Operating Company, Inc. Communications methods and apparatus for migrating a network interface and/or IP address from one Pod to another Pod in a Kubernetes system
CN114679380B (zh) * 2021-04-09 2024-04-26 腾讯云计算(北京)有限责任公司 边缘集群的创建方法和相关装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108549580A (zh) * 2018-03-30 2018-09-18 平安科技(深圳)有限公司 自动部署Kubernetes从节点的方法及终端设备
CN112445495A (zh) * 2019-08-28 2021-03-05 曙光信息产业(北京)有限公司 一种高性能计算集群节点的镜像与恢复方法
CN111026656A (zh) * 2019-11-29 2020-04-17 浪潮商用机器有限公司 分布式存储的自动化测试***、方法、设备及存储介质

Also Published As

Publication number Publication date
US20230060053A1 (en) 2023-02-23
EP4095678A1 (en) 2022-11-30
CN113656147A (zh) 2021-11-16

Similar Documents

Publication Publication Date Title
CN113656147B (zh) 一种集群部署方法、装置、设备及存储介质
CN108228209B (zh) 自动更新服务器***的元件的固件的***、方法和介质
JP6453373B2 (ja) スケーラブルプールNVMeストレージボックス(a scalable pooled nvme storage box)
CN107526659B (zh) 用于失效备援的方法和设备
CN112130965A (zh) 部署分布式容器编排管理集群的方法、设备及存储介质
CN107800565B (zh) 巡检方法、装置、***、计算机设备和存储介质
US8874954B1 (en) Compatibility of high availability clusters supporting application failover with shared storage in a virtualization environment without sacrificing on virtualization features
US9250672B2 (en) Cloning target machines in a software provisioning environment
CN112214330A (zh) 集群中主节点的部署方法、装置及计算机可读存储介质
CN108270726B (zh) 应用实例部署方法及装置
US9992058B2 (en) Redundant storage solution
CN111669284B (zh) OpenStack自动化部署方法、电子设备、存储介质及***
CN112860282B (zh) 集群插件的升级方法、装置和服务器
CN111225064A (zh) Ceph集群部署方法、***、设备和计算机可读存储介质
US8990608B1 (en) Failover of applications between isolated user space instances on a single instance of an operating system
CN112925652A (zh) 应用资源部署方法、装置、电子设备和介质
CN111625195A (zh) 用于服务器扩容的方法及装置
US9183092B1 (en) Avoidance of dependency issues in network-based service startup workflows
CN114721686A (zh) 配置数据更新方法、装置、电子设备和存储介质
CN114070889B (zh) 配置方法、流量转发方法、设备、存储介质及程序产品
Khalel et al. Enhanced load balancing in kubernetes cluster by minikube
CN113110883B (zh) 区块链***的启动方法、装置、设备和存储介质
US9880855B2 (en) Start-up control program, device, and method
CN113872808B (zh) 应用处理方法及装置
CN116820686B (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