CN119922074A - 模块化的k8s集群离线部署系统和方法 - Google Patents
模块化的k8s集群离线部署系统和方法 Download PDFInfo
- Publication number
- CN119922074A CN119922074A CN202510407599.9A CN202510407599A CN119922074A CN 119922074 A CN119922074 A CN 119922074A CN 202510407599 A CN202510407599 A CN 202510407599A CN 119922074 A CN119922074 A CN 119922074A
- Authority
- CN
- China
- Prior art keywords
- offline
- deployment
- cluster
- node
- module
- 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
Landscapes
- Stored Programmes (AREA)
Abstract
本申请实施例提供模块化的k8s集群离线部署系统和方法,其中,本申请实施例提供的模块化的k8s集群离线部署系统,包括环境检测模块、环境准备模块以及部署模块;其中,环境检测模块用于检测k8s集群中每个节点的硬件架构;环境准备模块用于检测每个节点的操作系统信息,并根据硬件架构以及操作系统信息,确定每个节点的离线安装资源对应的本地存储路径,其中,离线安装资源包括离线部署安装包以及离线配置文件;部署模块用于根据本地存储路径读取离线安装资源,并根据离线安装资源部署k8s集群。
Description
技术领域
本申请涉及计算机技术领域,具体地,涉及一种模块化的k8s集群离线部署系统和方法。
背景技术
随着微服务、docker、kubernetes(以下简称k8s)等技术的不断成熟,云原生架构已经被许多企业所采用。云原生架构中的k8s作为容器编排领域的事实标准,也已经在很多企业的生产环境中大规模使用。然而,k8s的安装部署由于涉及组件很多,依赖复杂,导致安装部署过程比较复杂,让许多初学者望而生畏,也给k8s在企业落地带来影响。
在此基础之上,目前也有一些快速搭建k8s集群的方案,但在网络环境方面,已有的方案大多依赖于稳定的网络连接来在线获取所需的安装包和依赖项。一旦网络出现波动或者在没有网络的情况下,安装过程就会被迫中断。而且,对于大规模集群的部署,已有的方案在效率和可扩展性方面表现不佳,难以满足企业快速部署和扩展业务的需求。
鉴于此,亟需一种能够在离线环境下实现k8s集群快速部署的解决方案。
发明内容
本申请实施例中提供了一种模块化的k8s集群离线部署系统、方法、计算机设备和存储介质。
本申请实施例的第一个方面,提供了一种模块化的k8s集群离线部署系统,包括:环境检测模块、环境准备模块以及部署模块;
所述环境检测模块,用于检测k8s集群中每个节点的硬件架构;
所述环境准备模块,用于检测所述每个节点的操作系统信息,并根据所述硬件架构以及所述操作系统信息,确定所述每个节点的离线安装资源对应的本地存储路径,其中,所述离线安装资源包括离线部署安装包以及离线配置文件;
所述部署模块,用于根据所述本地存储路径读取所述离线安装资源,并根据所述离线安装资源部署k8s集群。
在本申请一个可选的实施例中,所述环境准备模块还用于根据所述操作系统信息设置所述每个节点对应的环境参数;
相应地,所述系统还包括:网络配置模块以及配置文件生成模块;
所述网络配置模块,用于对所述每个节点的网络参数进行配置;
所述配置文件生成模块,用于根据所述环境参数、所述网络参数以及所述操作系统信息,生成所述每个节点对应的配置文件。
在本申请一个可选的实施例中,所述模块化的k8s集群离线部署系统还包括:下载模块;
所述下载模块,用于响应于配置文件下载指令,下载所述配置文件,并将下载后的离线配置文件存储至本地;
所述下载模块,还用于响应于安装包下载指令,下载部署安装包,并将下载后的离线部署安装包存储至本地。
在本申请一个可选的实施例中,所述模块化的k8s集群离线部署系统还包括:集群架构确定模块;
所述集群架构确定模块,用于确定所述k8s集群是否属于高可用集群架构;若所述集群架构确定模块的运行结果为是,则指示所述部署模块中包含的目标部署子模块运行;
所述目标部署子模块,用于在所述k8s集群中的主节点安装完成后,向所述主节点发送目标类型服务器对应的安装包以及配置文件,并向所述主节点发送交换机制软件的配置文件,以指示所述主节点基于所述目标类型服务器对应的安装包以及配置文件安装所述目标类型服务器,并基于所述交换机制软件的配置文件安装所述交换机制软件。
在本申请一个可选的实施例中,所述环境检测模块,还用于将硬件架构判断程序下发至所述每个节点,通过在所述每个节点运行所述硬件架构判断程序,获取所述每个节点的处理器信息,根据所述处理器信息确定所述每个节点对应的硬件架构,并将确定结果添加至记录表。
在本申请一个可选的实施例中,所述模块化的k8s集群离线部署系统还包括:安装模块;
所述安装模块,用于在确定所述记录表中包含至少两种硬件架构的情况下,在所述至少两种硬件架构中确定第一目标硬件架构,并在所述第一目标硬件架构对应的目标节点安装跨平台模拟器。
在本申请一个可选的实施例中,所述离线部署安装包为二进制安装包;
相应地,所述部署模块还用于在确定所述目标节点包含跨平台模拟器的情况下,在所述至少两种硬件架构中确定第二目标硬件架构,基于所述第二目标硬件架构,将读取的所述二进制安装包进行翻译,生成与所述第二目标硬件架构对应的离线部署安装包,并将与所述第二目标硬件架构对应的离线部署安装包安装至所述目标节点,以及将所述目标节点的配置文件导入所述目标节点。
本申请实施例的第二个方面,提供了一种模块化的k8s集群离线部署方法,包括:
检测k8s集群中每个节点的硬件架构;
检测所述每个节点的操作系统信息,并根据所述硬件架构以及所述操作系统信息,确定所述每个节点的离线安装资源对应的本地存储路径,其中,所述离线安装资源包括离线部署安装包以及离线配置文件;
根据所述本地存储路径读取所述离线安装资源,并根据所述离线安装资源部署k8s集群。
本申请实施例的第三个方面,提供了一种计算机设备,包括:包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如上任一项方法的步骤。
本申请实施例的第四个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,计算机程序被处理器执行时实现如上任一项的方法的步骤。
本申请实施例提供的模块化的k8s集群离线部署系统包括:环境检测模块、环境准备模块以及部署模块;环境检测模块用于检测k8s集群中每个节点的硬件架构;环境准备模块用于检测每个节点的操作系统信息,并根据硬件架构以及操作系统信息,确定每个节点的离线安装资源对应的本地存储路径,其中,离线安装资源包括离线部署安装包以及离线配置文件;部署模块用于根据本地存储路径读取离线安装资源,并根据离线安装资源部署k8s集群。本申请实施例有助于系统实现功能的分解和模块化设计,提高了系统的可维护性和可扩展性。另外,本申请实施例的部署过程无需进行外网连接,通过预先下载的离线部署安装包以及离线配置文件即可完成集群部署,有利于降低k8s集群离线部署的难度和复杂度。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一个实施例提供的模块化的k8s集群离线部署系统的架构图;
图2为本申请一个实施例提供的模块化的k8s集群离线部署方法的流程图;
图3为本申请一个实施例提供的另一种模块化的k8s集群离线部署方法的流程图;
图4为本申请一个实施例提供的计算机设备结构示意图。
具体实施方式
在实现本申请的过程中,发明人发现,目前的k8s集群部署方案部署效果较差。
针对上述问题,本申请实施例中提供了模块化的k8s集群离线部署系统,包括:环境检测模块、环境准备模块以及部署模块;其中,环境检测模块用于检测k8s集群中每个节点的硬件架构;环境准备模块用于检测每个节点的操作系统信息,并根据硬件架构以及操作系统信息,确定每个节点的离线安装资源对应的本地存储路径,其中,离线安装资源包括离线部署安装包以及离线配置文件;部署模块用于根据本地存储路径读取离线安装资源,并根据离线安装资源部署k8s集群。
本申请实施例中的方案可以采用各种计算机语言实现,例如,面向对象的程序设计语言Java和直译式脚本语言JavaScript等。
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
首先,对本申请一个或多个实施例涉及的名词术语进行解释。
kubernetes,简称k8s,是一个开源的,用于管理云平台中多个主机上的容器化的应用。
ARM架构,全称为Advanced RISC Machine,是一种基于RISC(精简指令集计算机)的处理器架构。
双机集群系统(Highly Available,HA):用于提高可用性集群,是保证业务连续性的有效解决方案,一般有两个或两个以上的节点,且分为活动节点及备用节点。
AMD架构主要包括ZEN架构和x86架构。AMD的ZEN架构是其处理器设计的基础,旨在实现极致性能、可扩展性和效率。此外,AMD也采用x86架构,这是其处理器的主要架构之一。x86架构是一种复杂指令集计算机(CISC)架构,广泛应用于个人电脑、服务器和工作站等平台。
在数字化转型的浪潮中,容器技术因其高效的资源利用和便捷的应用部署而备受青睐,k8s作为容器编排领域的核心技术,更是在众多企业的 IT 架构中扮演着关键角色。然而,k8s的安装过程却并非一帆风顺,存在着诸多复杂性和挑战。
传统的手动安装 k8s方式需要操作人员对底层技术有深入的理解和丰富的经验。这包括对操作系统内核参数的调整、网络配置的优化、存储资源的分配等方面。在安装过程中,需要依次安装和配置各个关键组件,如etcd用于存储集群状态信息、API Server 作为集群的控制入口、Controller Manager 负责各种控制器的运行等。每个组件都有其特定的依赖关系和配置要求,稍有不慎就可能导致安装失败。
目前的实现方案通常是基于脚本化的安装方式。通过编写一系列的 shell 脚本或者 Python 脚本,按照预定的顺序执行安装步骤。然而,这种方式存在着一些明显的局限性。首先,脚本的可维护性较差,当安装需求发生变化或者需要适配新的环境时,修改脚本往往较为复杂。其次,脚本对于错误处理的能力相对较弱,一旦在安装过程中出现问题,很难进行有效的回滚和恢复操作。此外,这种方式在处理跨架构(如 AMD 和 ARM)安装时,通常需要分别编写不同的脚本,增加了开发和维护的成本。
在网络环境方面,目前的方案大多依赖于稳定的网络连接来在线获取所需的安装包和依赖项。一旦网络出现波动或者在没有网络的情况下,安装过程就会被迫中断。而且,对于大规模集群的部署,已有的方案在效率和可扩展性方面表现不佳,难以满足企业快速部署和扩展业务的需求。
可见,目前的k8s部署方案对操作人员的技术要求极高,需要深入了解各个组件的工作原理和配置细节,掌握大量的专业知识和经验,导致人力成本增加,且容易因人为失误影响安装效果。另外,目前的方案部署效率低下,特别是在大规模集群部署时,逐个节点的手动操作极其耗时,无法快速满足业务上线需求。针对不同硬件架构的适配工作复杂繁琐,容易出现兼容性问题,增加了部署的不确定性和风险。而且对网络环境依赖度过高,在网络不稳定或无网络的情况下无法正常进行安装,限制了其应用场景。同样的,目前的方案缺乏灵活性,难以满足高可用架构和单 master 部署等多样化的业务需求,无法适应复杂多变的业务环境。
本申请实施例通过将安装流程分解为多个自动化的模块,使整个安装过程更加规范化和标准化,减少因操作不熟练或理解偏差导致的错误。同时,以自动化模块化的方式大幅提高安装效率,特别是在大规模集群部署的场景下,能够快速、准确地完成多个节点的安装配置工作,缩短业务上线时间。针对不同硬件架构(如 AMD 和 ARM),通过模块化的设计实现自动适配,无需繁琐的手动调整,确保在各种架构环境下都能顺利完成安装。
此外,在网络环境方面,利用自动化模块化的优势,实现支持无网络环境的离线安装,摆脱网络限制,拓宽应用场景。并且,通过模块化的灵活配置,满足高可用架构和单master 部署等多样化的业务需求,使 k8s 集群能够更好地适应不同的业务场景和性能要求。
在本申请实施例中,提供了一种模块化的k8s集群离线部署系统,本申请实施例同时涉及一种模块化的k8s集群离线部署方法,一种计算机设备,一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本申请一个实施例提供的一种模块化的k8s集群离线部署系统的架构图,具体包括:环境检测模块102、环境准备模块104以及部署模块106;
所述环境检测模块102,用于检测k8s集群中每个节点的硬件架构;
所述环境准备模块104,用于检测所述每个节点的操作系统信息,并根据所述硬件架构以及所述操作系统信息,确定所述每个节点的离线安装资源对应的本地存储路径,其中,所述离线安装资源包括离线部署安装包以及离线配置文件;
所述部署模块106,用于根据所述本地存储路径读取所述离线安装资源,并根据所述离线安装资源部署k8s集群。
本申请实施例将k8s集群的部署流程模块化,具体即是将k8s集群的部署流程分解为多个自动化的模块。
其中,环境检测模块102用于检测k8s集群中每个节点的硬件架构;本申请实施例中,节点的硬件架构可以是ARM架构,也可以是AMD架构,也可以是其他架构,在此不做限制。
环境准备模块104用于检测k8s集群中每个节点的操作系统信息,并根据各节点的硬件架构以及操作系统信息,确定各节点的离线安装资源信息,以根据离线安装资源信息确定各节点的离线安装资源对应的本地存储路径。
实际应用中,离线安装资源包括离线部署安装包以及离线配置文件;离线安装资源信息即可以包括离线部署安装包的安装包名称、安装包格式、离线配置文件的文件名称以及文件格式等。另外,本申请实施例中,离线部署安装包为k8s的安装包;离线配置文件为操作系统的配置文件,配置文件中可以包含操作系统的相关配置信息,例如内核参数以及网络参数等。
由于不同节点的硬件架构可能不同,且不同节点对应的操作系统也可能会存在区别,因此,需按照每个节点的硬件架构以及操作系统信息,确定与各节点适配的离线安装资源。
本申请实施例中,在k8s集群离线部署的场景下,为实现离线部署,则需将进行集群部署所需的部署安装包以及配置文件预先进行下载,并存储至本地。由于硬件架构不同和/或操作系统不同的情况下,则会对应不同的安装包,例如节点1的硬件架构为AMD架构,操作系统为windows,则节点1的k8s安装包即为安装包a;节点2的硬件架构为ARM架构,操作系统为windows,则节点2的k8s安装包即为安装包b;节点3的硬件架构为AMD架构,操作系统为Linux,则节点3的k8s安装包即为安装包c等。
基于此,为保证k8s集群离线部署过程正常进行,本申请实施例可将各个版本的部署安装包均下载并存储至本地,以供系统根据各节点分别对应的硬件架构以及操作系统选择与其适配的部署安装包。
确定每个节点的离线安装资源对应的本地存储路径后,部署模块106用于根据本地存储路径读取离线安装资源,并根据离线安装资源部署k8s集群。
实际应用中,部署模块106负责在各个节点上安装k8s的核心组件,如kubelet、kube-proxy 等。它会根据每个节点的硬件架构和操作系统信息,选择合适的安装包进行安装,并选择对应的配置文件以对各节点进行相应的配置。
本申请实施例提供一键式部署和配置功能,并且部署过程无需进行外网连接,通过预先下载的离线部署安装包以及离线配置文件即可完成集群部署,降低了部署难度和复杂度;另外,由于离线部署安装包集成了必要的软件组件和依赖项,有利于确保部署的一致性和稳定性。
在本申请一个可选实施例中,所述环境准备模块104还用于根据所述操作系统信息设置所述每个节点对应的环境参数;
相应地,所述系统还包括:网络配置模块108以及配置文件生成模块110;
所述网络配置模块108,用于对所述每个节点的网络参数进行配置;
所述配置文件生成模块110,用于根据所述环境参数、所述网络参数以及所述操作系统信息,生成所述每个节点对应的配置文件。
在本申请一个可选实施例中,所述模块化的k8s集群离线部署系统还包括:下载模块112;
所述下载模块112,用于响应于配置文件下载指令,下载所述配置文件,并将下载后的离线配置文件存储至本地;
所述下载模块112,还用于响应于安装包下载指令,下载部署安装包,并将下载后的离线部署安装包存储至本地。
具体的,如前所述,本申请实施例将k8s集群的部署流程分解为多个自动化的模块,而部署流程所涉及的各个步骤,即可通过不同的模块来实现。
具体实施时,本申请实施例的模块化的k8s集群离线部署系统,包括网络配置模块108以及配置文件生成模块110;网络配置模块108用于对每个节点的网络参数进行配置。实际应用中,网络配置模块108负责处理 k8s集群中的网络设置,包括虚拟网络的创建、IP 地址分配、网络策略的配置等。对于不同的网络拓扑结构和需求,该模块能够灵活地进行配置。
另外,环境准备模块104还用于根据操作系统信息设置每个节点对应的环境参数;实际应用中,环境准备模块104负责检测和配置操作系统环境,如安装必要的依赖库、设置内核参数等。它会根据不同的操作系统类型和版本进行相应的调整,确保基础环境的兼容性和稳定性。
而对于配置文件生成模块110,则是用于根据环境准备模块104设置的环境参数、网络配置模块108配置的网络参数以及操作系统信息,生成每个节点对应的配置文件。实际应用中,配置文件生成模块110根据输入(环境参数和网络参数)和操作系统的检测结果,生成k8s集群的各种配置文件,如 master 节点配置文件、worker 节点配置文件、网络配置文件等。这些配置文件将确保k8s集群的正确运行。
除此之外,如前所述,在k8s集群离线部署的场景下,为实现离线部署,则需将进行集群部署所需的部署安装包以及配置文件预先进行下载,并存储至本地。那么本申请实施例同样将下载步骤模块化,具体即通过下载模块112实现部署安装包和配置文件的下载。
其中,对于配置文件,则是先通过配置文件生成模块110根据环境准备模块104设置的环境参数、网络配置模块108配置的网络参数以及操作系统信息,生成每个节点对应的配置文件,然后通过下载模块112对生成的配置文件进行下载,并将下载后的离线配置文件存储至本地。
对于部署安装包,则是直接通过下载模块112在网站下载各个版本的部署安装包,并将下载后的离线部署安装包存储至本地备用。
存储完成后,还可以记录离线配置文件与其本地存储路径间的对应关系,并记录离线部署安装包与其本地存储路径间的对应关系,具体可生成记录文件,该记录文件中可以包含离线安装包的安装包名称、安装包格式、安装包名称与操作系统及硬件架构间的对应关系、安装包名称与本地存储路径间的对应关系,以及包含离线配置文件的文件名称、文件格式、文件名称与节点和/或节点的操作系统之间的对应关系、文件名称与本地存储路径间的对应关系等。
基于此,在离线部署场景下,可以通过部署模块106按照记录文件中包含的信息,读取离线部署安装包和离线配置文件,以实现对k8s集群的离线部署。
本申请实施例可以在离线环境实现对k8s集群的自动化部署。即在没有外网连接的环境下也能进行k8s集群的部署,极大地拓宽了部署场景,提高了系统的可用性和灵活性。
在本申请一个可选实施例中,所述模块化的k8s集群离线部署系统还包括:集群架构确定模块;
所述集群架构确定模块,用于确定所述k8s集群是否属于高可用集群架构;若所述集群架构确定模块的运行结果为是,则指示所述部署模块中包含的目标部署子模块运行;
所述目标部署子模块,用于在所述k8s集群中的主节点安装完成后,向所述主节点发送目标类型服务器对应的安装包以及配置文件,并向所述主节点发送交换机制软件的配置文件,以指示所述主节点基于所述目标类型服务器对应的安装包以及配置文件安装所述目标类型服务器,并基于所述交换机制软件的配置文件安装所述交换机制软件。
具体的,目标部署子模块即为nginx模块;主节点即master节点;目标类型服务器即为nginx,交换机制软件即为keepalived。
由于在实际的k8s集群部署过程中,可以根据部署需求选择待安装的模块和配置选项。然后系统会自动按照所选择模块的依赖关系依次执行安装步骤。而部署需求则可以是部署的k8s集群为高可用架构,或部署的k8s集群不是高可用架构;若部署需求为部署的k8s集群为高可用架构,则需将nginx模块确定为待安装的模块;若部署需求为部署的k8s集群不是高可用架构,则在选择待安装的模块时,即不选择nginx模块。
本申请实施例中,部署模块106除包含nginx模块外,还可以包含证书子模块、docker子模块、etcd子模块、maste子模块以及node子模块。其中,
另外,本申请实施例提供的模块化的k8s集群离线部署系统还可以包括组件安装模块116,负责安装k8s集群的各种扩展组件,如监控组件、日志组件、存储组件等。这些组件可以根据需求进行选择和安装,实现功能的定制化。
基于此,本申请实施例中,环境检测模块102、环境准备模块104、部署模块106中包含的各子模块;网络配置模块108、配置文件生成模块110、下载模块112、集群架构确定模块以及组件安装模块116的运行顺序如下:
1)环境检测模块102检测每个节点的硬件架构是AMD架构还是ARM架构;
2)环境准备模块104检测每个节点的操作系统信息,根据操作系统信息设置每个节点对应的环境参数;
3)网络配置模块108对每个节点的网络参数进行配置;
4)配置文件生成模块110根据环境参数、网络参数以及操作系统信息,生成每个节点对应的配置文件;
具体实施时,配置文件生成模块还用于配置master和node节点的IP地址、配置pods和service网段地址、选择安装etcd的节点、定义日志保存目录以及选择docker版本。
5)下载模块112下载配置文件和部署安装包并存储至本地;
6)环境准备模块104关闭防火墙、swap分区,添加hosts配置以及准备离线部署安装包;
7)证书子模块创建k8s和etcd证书;
8)docker子模块更改docker默认数据存储目录,安装docker并设置开机自启动,检查docker服务是否正常;
9)etcd子模块自动往etcd节点分发etcd安装包及证书,安装etcd集群并设置自启动,检查etcd集群是否正常;
10)master子模块自动往master节点分发k8s安装包及证书,安装master组件,授权API Server访问Kubelet,检查集群状态;
11)集群架构确定模块确定集群是否为高可用架构;若否,则不安装HA软件,单master的apiserver地址不做负载;若是,则运行nginx子模块;
12)nginx子模块自动往master节点分发nginx安装包,根据配置文件自动分发nginx及keepalived的配置文件,安装nginx和keepalived服务并设置自启动,检查高可用vip是否生效;
13)node子模块自动往node节点分发k8s安装包及证书,分发并解压cni插件二进制包,分发k8s集群配置文件,启动node组件,检查集群状态;
14)组件安装模块116自动往node节点分发插件安装包,根据业务环境选择安装flannel或者calico,选择安装coredns、ingress-nginx、dashboard等。
另外,组件安装模块116还可以包含监控子模块。除nginx模块为可选模块外,监控子模块同样为可选模块,用于根据业务环境选择安装prometheus作为监控平台,一键安装prometheus套件。因此,本申请实施例可以根据是否存在监控需求,确定是否选择将监控子模块确定为待安装的模块。
本申请实施例在选择安装监控子模块的情况下,即可以集成资源管理和监控功能,实时展示集群的CPU、内存、磁盘等资源使用情况,并且可以提供告警和通知机制,有利于及时发现和处理资源瓶颈或故障。另外,通过这种方式能够满足多样化的部署需求,如支持高可用架构和单 master部署,灵活选择etcd的部署节点,支持批量新增node节点,支持docker自定义选择版本,支持pod及service网段自定义配置、支持calico和flannel网络插件,以适应不同的业务场景和应用需求。
除此之外,在模块安装过程中,系统会进行各种检测和验证,确保安装的正确性。如果出现错误,系统会给出详细的错误提示和解决建议。例如,在进行节点安装时,系统会先检测节点的硬件架构和操作系统信息,然后从预先准备好的安装包库中选择合适的安装包进行安装。安装完成后,会进行一系列的验证操作,如检查服务是否启动成功、端口是否监听正常等。
对于大规模集群部署,系统会采用并行安装的方式,同时在多个节点上执行安装任务,有利于提高安装效率。
本申请实施例能够实现灵活的安装架构选择,即提供单master节点和高可用架构两种模式,满足不同规模和可靠性需求的场景;另外,高可用架构通过多master节点和自动故障转移机制,确保集群的高可靠性和容错性。
在本申请一个可选实施例中,所述环境检测模块102,还用于将硬件架构判断程序下发至所述每个节点,通过在所述每个节点运行所述硬件架构判断程序,获取所述每个节点的处理器信息,根据所述处理器信息确定所述每个节点对应的硬件架构,并将确定结果添加至记录表。
具体的,节点的硬件架构可以通过节点的处理器型号判断。其中,AMD架构的处理器型号通常以字母开头,如“A”代表AMD系列中的APU,“R”代表AMD中的锐龙系列,“FX”代表AMD中的推土机系列等,后续数字序列通常表示具体型号和性能等级。而ARM架构的处理器型号较为多样,但通常不会以AMD的特定字母开头,可以通过查询具体设备的处理器信息,如查看设备规格说明书或使用系统信息工具来获取。
因此,本申请实施例可通过环境检测模块102将硬件架构判断程序下发至各节点,通过在各节点运行该硬件架构判断程序以获取各节点的处理器型号或设备规格说明书等,以根据这些信息确定各节点对应的硬件架构,并将确定结果添加至记录表(按类别加入到机器列表),该记录表即用于记录每个节点对应的硬件架构。
在本申请一个可选实施例中,所述模块化的k8s集群离线部署系统还包括:安装模块116;
所述安装模块116,用于在确定所述记录表中包含至少两种硬件架构的情况下,在所述至少两种硬件架构中确定第一目标硬件架构,并在所述第一目标硬件架构对应的目标节点安装跨平台模拟器。
在本申请一个可选实施例中,所述离线部署安装包为二进制安装包;
相应地,所述部署模块106还用于在确定所述目标节点包含跨平台模拟器的情况下,在所述至少两种硬件架构中确定第二目标硬件架构,基于所述第二目标硬件架构,将读取的所述二进制安装包进行翻译,生成与所述第二目标硬件架构对应的离线部署安装包,并将与所述第二目标硬件架构对应的离线部署安装包安装至所述目标节点,以及将所述目标节点的配置文件导入所述目标节点。
具体的,在k8s集群中存在至少两种硬件架构,即k8s集群中存在任意两个节点分别对应不同的硬件架构的情况下,为实现兼容,即需要在部分节点安装跨平台模拟器。
其中,第一目标硬件架构可以根据对应同一硬件架构的节点的数量确定。例如,k8s集群中存在20个节点,其中3个节点的硬件架构为AMD架构,剩余17个节点的硬件架构为ARM架构,则可以将AMD架构确定为第一目标硬件架构,并在AMD架构对应的3个节点安装跨平台模拟器。本申请实施例选择数量少的节点进行跨平台模拟器安装,有利于节省资源,避免资源浪费。
跨平台模拟器安装完成后,即可通过跨平台模拟器将读取的该跨平台模拟器所在节点的二进制安装包进行翻译,生成与第二目标硬件架构对应的离线部署安装包,并将与第二目标硬件架构对应的离线部署安装包安装至该节点,以及将该节点的配置文件导入该节点。
例如,节点3的硬件架构为AMD架构,且在节点3安装了跨平台模拟器的情况下,由于节点3的部署安装包是与AMD架构适配的,为实现架构兼容,则可以基于ARM架构对节点3的部署安装包进行二进制翻译,并将翻译后的二进制安装包安装至节点3,以及将节点3的配置文件导入节点3。
本申请实施例针对二进制服务包使用二进制翻译技术,能够将一种硬件架构上的二进制代码翻译成另一种硬件架构上的可执行代码。这种技术可以在运行时动态地将x86架构上的二进制代码翻译成ARM架构上的代码,从而实现两种架构之间的兼容。
此外,还可以使用容器技术,容器技术如docker提供了一种轻量级、可移植的虚拟化环境,它允许开发者在容器中打包和运行应用程序及其依赖项。通过配置适当的镜像和容器运行时,开发者可以在AMD架构的硬件上运行基于ARM架构的容器镜像。实际应用中,可以使用多平台构建工具(如Docker Buildx)来构建适用于不同架构的镜像。
本申请实施例可以在不同硬件架构(AMD、ARM)上自动化部署k8s集群,从而实现兼容AMD 64和ARM64两种主流硬件架构,扩大了k8s集群的部署范围;另外,通过支持不同架构的服务器混合部署,有利于提高资源利用效率和部署的灵活性。
本申请实施例提供的模块化的k8s集群离线部署系统包括:环境检测模块、环境准备模块以及部署模块;环境检测模块用于检测k8s集群中每个节点的硬件架构;环境准备模块用于检测每个节点的操作系统信息,并根据硬件架构以及操作系统信息,确定每个节点的离线安装资源对应的本地存储路径,其中,离线安装资源包括离线部署安装包以及离线配置文件;部署模块用于根据本地存储路径读取离线安装资源,并根据离线安装资源部署k8s集群。本申请实施例有助于系统实现功能的分解和模块化设计,提高了系统的可维护性和可扩展性。另外,本申请实施例的部署过程无需进行外网连接,通过预先下载的离线部署安装包以及离线配置文件即可完成集群部署,有利于降低k8s集群离线部署的难度和复杂度。
应该理解的是,上述模块化的k8s集群离线部署系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
请参见图2,本申请一个实施例提供了一种模块化的k8s集群离线部署方法,具体包括以下步骤。
步骤202、检测k8s集群中每个节点的硬件架构。
步骤204、检测所述每个节点的操作系统信息,并根据所述硬件架构以及所述操作系统信息,确定所述每个节点的离线安装资源对应的本地存储路径,其中,所述离线安装资源包括离线部署安装包以及离线配置文件。
步骤206、根据所述本地存储路径读取所述离线安装资源,并根据所述离线安装资源部署k8s集群。
在本申请一个可选实施例中,所述模块化的k8s集群离线部署方法,还包括:
根据所述操作系统信息设置所述每个节点对应的环境参数;
对所述每个节点的网络参数进行配置;
根据所述环境参数、所述网络参数以及所述操作系统信息,生成所述每个节点对应的配置文件。
在本申请一个可选实施例中,所述模块化的k8s集群离线部署方法,还包括:
响应于配置文件下载指令,下载所述配置文件,并将下载后的离线配置文件存储至本地;
响应于安装包下载指令,下载部署安装包,并将下载后的离线部署安装包存储至本地。
在本申请一个可选实施例中,所述模块化的k8s集群离线部署方法,还包括:
确定所述k8s集群是否属于高可用集群架构;
若所述集群架构确定模块的运行结果为是,则在所述k8s集群中的主节点安装完成后,向所述主节点发送目标类型服务器对应的安装包以及配置文件,并向所述主节点发送交换机制软件的配置文件,以指示所述主节点基于所述目标类型服务器对应的安装包以及配置文件安装所述目标类型服务器,并基于所述交换机制软件的配置文件安装所述交换机制软件。
本申请一个实施例提供的另一种模块化的k8s集群离线部署方法的流程图如图3所示,在本申请一个可选实施例中,所述模块化的k8s集群离线部署方法,还包括:步骤302至步骤308。
步骤302、将硬件架构判断程序下发至所述每个节点。
步骤304、通过在所述每个节点运行所述硬件架构判断程序,获取所述每个节点的处理器信息。
步骤306、根据所述处理器信息确定所述每个节点对应的硬件架构。
步骤308、将确定结果添加至记录表。
在本申请一个可选实施例中,所述模块化的k8s集群离线部署方法,还包括:
在确定所述记录表中包含至少两种硬件架构的情况下,在所述至少两种硬件架构中确定第一目标硬件架构,并在所述第一目标硬件架构对应的目标节点安装跨平台模拟器。
在本申请一个可选实施例中,所述离线部署安装包为二进制安装包;
相应地,所述模块化的k8s集群离线部署方法,还包括:
在确定所述目标节点包含跨平台模拟器的情况下,在所述至少两种硬件架构中确定第二目标硬件架构,基于所述第二目标硬件架构,将读取的所述二进制安装包进行翻译,生成与所述第二目标硬件架构对应的离线部署安装包,并将与所述第二目标硬件架构对应的离线部署安装包安装至所述目标节点,以及将所述目标节点的配置文件导入所述目标节点。
本申请实施例提供的模块化的k8s集群离线部署方法,检测k8s集群中每个节点的硬件架构;检测每个节点的操作系统信息,并根据硬件架构以及操作系统信息,确定每个节点的离线安装资源对应的本地存储路径,其中,离线安装资源包括离线部署安装包以及离线配置文件;根据本地存储路径读取离线安装资源,并根据离线安装资源部署k8s集群。本申请实施例的部署过程无需进行外网连接,通过预先下载的离线部署安装包以及离线配置文件即可完成集群部署,有利于降低k8s集群离线部署的难度和复杂度。
关于上述模块化的k8s集群离线部署方法的具体限定可以参见上文中对于模块化的k8s集群离线部署系统的限定,在此不再赘述。
应该理解的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,提供了一种计算机设备,该计算机设备的内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现如上的一种模块化的k8s集群离线部署方法。包括:包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如上模块化的k8s集群离线部署方法中的任一步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可以实现如上模块化的k8s集群离线部署方法中的任一步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种模块化的k8s集群离线部署系统,其特征在于,包括:环境检测模块、环境准备模块以及部署模块;
所述环境检测模块,用于检测k8s集群中每个节点的硬件架构;
所述环境准备模块,用于检测所述每个节点的操作系统信息,并根据所述硬件架构以及所述操作系统信息,确定所述每个节点的离线安装资源对应的本地存储路径,其中,所述离线安装资源包括离线部署安装包以及离线配置文件;
所述部署模块,用于根据所述本地存储路径读取所述离线安装资源,并根据所述离线安装资源部署k8s集群。
2.根据权利要求1所述的模块化的k8s集群离线部署系统,其特征在于,所述环境准备模块还用于根据所述操作系统信息设置所述每个节点对应的环境参数;
相应地,所述系统还包括:网络配置模块以及配置文件生成模块;
所述网络配置模块,用于对所述每个节点的网络参数进行配置;
所述配置文件生成模块,用于根据所述环境参数、所述网络参数以及所述操作系统信息,生成所述每个节点对应的配置文件。
3.根据权利要求2所述的模块化的k8s集群离线部署系统,其特征在于,还包括:下载模块;
所述下载模块,用于响应于配置文件下载指令,下载所述配置文件,并将下载后的离线配置文件存储至本地;
所述下载模块,还用于响应于安装包下载指令,下载部署安装包,并将下载后的离线部署安装包存储至本地。
4.根据权利要求1所述的模块化的k8s集群离线部署系统,其特征在于,还包括:集群架构确定模块;
所述集群架构确定模块,用于确定所述k8s集群是否属于高可用集群架构;若所述集群架构确定模块的运行结果为是,则指示所述部署模块中包含的目标部署子模块运行;
所述目标部署子模块,用于在所述k8s集群中的主节点安装完成后,向所述主节点发送目标类型服务器对应的安装包以及配置文件,并向所述主节点发送交换机制软件的配置文件,以指示所述主节点基于所述目标类型服务器对应的安装包以及配置文件安装所述目标类型服务器,并基于所述交换机制软件的配置文件安装所述交换机制软件。
5.根据权利要求1所述的模块化的k8s集群离线部署系统,其特征在于,所述环境检测模块,还用于将硬件架构判断程序下发至所述每个节点,通过在所述每个节点运行所述硬件架构判断程序,获取所述每个节点的处理器信息,根据所述处理器信息确定所述每个节点对应的硬件架构,并将确定结果添加至记录表。
6.根据权利要求5所述的模块化的k8s集群离线部署系统,其特征在于,还包括:安装模块;
所述安装模块,用于在确定所述记录表中包含至少两种硬件架构的情况下,在所述至少两种硬件架构中确定第一目标硬件架构,并在所述第一目标硬件架构对应的目标节点安装跨平台模拟器。
7.根据权利要求6所述的模块化的k8s集群离线部署系统,其特征在于,所述离线部署安装包为二进制安装包;
相应地,所述部署模块还用于在确定所述目标节点包含跨平台模拟器的情况下,在所述至少两种硬件架构中确定第二目标硬件架构,基于所述第二目标硬件架构,将读取的所述二进制安装包进行翻译,生成与所述第二目标硬件架构对应的离线部署安装包,并将与所述第二目标硬件架构对应的离线部署安装包安装至所述目标节点,以及将所述目标节点的配置文件导入所述目标节点。
8.一种模块化的k8s集群离线部署方法,应用于权利要求1至7任意一项所述的模块化的k8s集群离线部署系统,其特征在于,包括:
检测k8s集群中每个节点的硬件架构;
检测所述每个节点的操作系统信息,并根据所述硬件架构以及所述操作系统信息,确定所述每个节点的离线安装资源对应的本地存储路径,其中,所述离线安装资源包括离线部署安装包以及离线配置文件;
根据所述本地存储路径读取所述离线安装资源,并根据所述离线安装资源部署k8s集群。
9.一种计算机设备,包括:包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求8所述的模块化的k8s集群离线部署方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求8所述的模块化的k8s集群离线部署方法的步骤。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202510407599.9A CN119922074A (zh) | 2025-04-02 | 2025-04-02 | 模块化的k8s集群离线部署系统和方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202510407599.9A CN119922074A (zh) | 2025-04-02 | 2025-04-02 | 模块化的k8s集群离线部署系统和方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN119922074A true CN119922074A (zh) | 2025-05-02 |
Family
ID=95506058
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202510407599.9A Pending CN119922074A (zh) | 2025-04-02 | 2025-04-02 | 模块化的k8s集群离线部署系统和方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN119922074A (zh) |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114265600A (zh) * | 2022-03-01 | 2022-04-01 | 联信弘方(北京)科技股份有限公司 | 一种国产硬件和操作系统容器云自动化离线部署方法 |
| US20230060053A1 (en) * | 2021-08-20 | 2023-02-23 | Beijing Baidu Netcom Science Technology Co., Ltd. | Method and apparatus of deploying a cluster, and storage medium |
| WO2023045256A1 (zh) * | 2021-09-22 | 2023-03-30 | 苏州浪潮智能科技有限公司 | 一种镜像的拉取方法、系统、计算机设备及可读存储介质 |
| CN116566811A (zh) * | 2023-05-17 | 2023-08-08 | 统信软件技术有限公司 | 一种集群部署方法、计算设备及可读存储介质 |
| CN118733068A (zh) * | 2024-09-04 | 2024-10-01 | 河南嵩山实验室产业研究院有限公司洛阳分公司 | 混合架构k8s集群离线部署方法、系统、设备及存储介质 |
| CN118838606A (zh) * | 2024-04-29 | 2024-10-25 | 天翼云科技有限公司 | 一种支持异构和多种操作系统的容器平台离线部署方法 |
-
2025
- 2025-04-02 CN CN202510407599.9A patent/CN119922074A/zh active Pending
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20230060053A1 (en) * | 2021-08-20 | 2023-02-23 | Beijing Baidu Netcom Science Technology Co., Ltd. | Method and apparatus of deploying a cluster, and storage medium |
| WO2023045256A1 (zh) * | 2021-09-22 | 2023-03-30 | 苏州浪潮智能科技有限公司 | 一种镜像的拉取方法、系统、计算机设备及可读存储介质 |
| CN114265600A (zh) * | 2022-03-01 | 2022-04-01 | 联信弘方(北京)科技股份有限公司 | 一种国产硬件和操作系统容器云自动化离线部署方法 |
| CN116566811A (zh) * | 2023-05-17 | 2023-08-08 | 统信软件技术有限公司 | 一种集群部署方法、计算设备及可读存储介质 |
| CN118838606A (zh) * | 2024-04-29 | 2024-10-25 | 天翼云科技有限公司 | 一种支持异构和多种操作系统的容器平台离线部署方法 |
| CN118733068A (zh) * | 2024-09-04 | 2024-10-01 | 河南嵩山实验室产业研究院有限公司洛阳分公司 | 混合架构k8s集群离线部署方法、系统、设备及存储介质 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8762986B2 (en) | Advanced packaging and deployment of virtual appliances | |
| US7937455B2 (en) | Methods and systems for modifying nodes in a cluster environment | |
| CN112416524A (zh) | 基于docker和kubernetes离线的跨平台的CI/CD的实现方法及装置 | |
| CN110990026B (zh) | 一种PaaS平台自动部署方法及系统 | |
| US8464246B2 (en) | Automation of mainframe software deployment | |
| US20200136930A1 (en) | Application environment provisioning | |
| CN110673923A (zh) | Xwiki系统配置方法、系统及计算机设备 | |
| CN110096424B (zh) | 测试的处理方法、装置、电子设备及存储介质 | |
| CN113805882A (zh) | 应用程序开发的方法、装置、电子设备及存储介质 | |
| CN112328361A (zh) | 一种快速部署kubenetes集群的方法 | |
| US12536026B2 (en) | Simulation of one or more pipeline jobs in a software deployment pipeline | |
| CN113127009A (zh) | 大数据管理平台的自动化部署方法和装置 | |
| CN112860251A (zh) | 一种网站前端构建的方法与系统 | |
| CN116225617A (zh) | 容器实例的管理迁移方法、装置和电子设备及存储介质 | |
| EP4193225B1 (en) | Method and system for providing engineering of an industrial device in a cloud computing environment | |
| CN117112122A (zh) | 一种集群部署方法和装置 | |
| CN114416290A (zh) | 基于ansible自动搭建容器平台的方法和设备 | |
| CN113722204B (zh) | 一种应用调试方法、系统、设备及介质 | |
| CN113220451B (zh) | 分布式集群系统的部署方法、系统、装置及存储介质 | |
| US20220197633A1 (en) | Software defined build infrastructure for hybrid, virtualized and native build environments | |
| CN118092942B (zh) | 大数据分析平台的离线部署方法及装置 | |
| CN117170916B (zh) | 一种故障分析方法、装置、设备及存储介质 | |
| CN118885168A (zh) | 应用程序的配置方法及计算设备 | |
| CN119922074A (zh) | 模块化的k8s集群离线部署系统和方法 | |
| CN115202821A (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 |