CN117573295A - 一种基于k8s的多集群组件管理方法、装置及计算机设备 - Google Patents

一种基于k8s的多集群组件管理方法、装置及计算机设备 Download PDF

Info

Publication number
CN117573295A
CN117573295A CN202410059955.8A CN202410059955A CN117573295A CN 117573295 A CN117573295 A CN 117573295A CN 202410059955 A CN202410059955 A CN 202410059955A CN 117573295 A CN117573295 A CN 117573295A
Authority
CN
China
Prior art keywords
component
cluster
sub
metadata
information
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.)
Granted
Application number
CN202410059955.8A
Other languages
English (en)
Other versions
CN117573295B (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.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
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 Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202410059955.8A priority Critical patent/CN117573295B/zh
Publication of CN117573295A publication Critical patent/CN117573295A/zh
Application granted granted Critical
Publication of CN117573295B publication Critical patent/CN117573295B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • 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/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/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/45591Monitoring or debugging support
    • 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/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了基于k8s的多集群组件管理方法、装置及计算机设备,包括获取子集群元数据,在主集群中对所述子集群元数据进行渲染;在所述主集群中定义组件元数据的数据结构,将重定义后的所述组件元数据在所述主集群中进行渲染;基于所述组件元数据获取组件子集群的部署信息,根据所述部署信息将所述组件子集群信息渲染至对应的子集群;监听所述子集群的组件部署状态,将状态信息同步至主集群组件元数据;通过将多个集群分为主从结构,在主集群维护了多个子集群中不同组件元数据,通过管理主集群中组件元数据,实现统一管理多个子集群中不同组件的运行生命周期。实现了简单,可靠的多集群组件管理功能,降低了多集群维护成本。

Description

一种基于k8s的多集群组件管理方法、装置及计算机设备
技术领域
本申请涉及计算机容器领域,尤其涉及一种基于k8s的多集群组件管理方法、装置及计算机设备。
背景技术
随着云计算技术的发展,越来越多的企业开始采用容器编排引擎Kubernetes(简称k8s)来部署和管理应用程序。Kubernetes可以帮助企业更加灵活地部署和管理应用程序,提高应用程序的可用性和可维护性。然而,随着企业应用程序规模的不断扩大,单个Kubernetes集群可能无法满足企业的需求。
发明内容
基于此,有必要针对上述技术问题,提供一种基于k8s的多集群组件管理方法、装置及计算机设备,通过管理主集群中组件元数据,实现统一管理多个子集群中不同组件的运行生命周期。
第一方面,本申请提供了一种基于k8s的多集群组件管理方法,包括:
获取子集群元数据,在主集群中对所述子集群元数据进行渲染;
在所述主集群中定义组件元数据的数据结构,将重定义后的所述组件元数据在所述主集群中进行渲染;
基于所述组件元数据获取组件子集群的部署信息,根据所述部署信息将组件子集群信息渲染至对应的子集群;
监听所述子集群的组件部署状态,将状态信息同步至主集群组件元数据;
其中,所述子集群元数据包括对应的子集群调用接口地址与验证信息。
在其中一个实施例中,所述在所述主集群中定义组件元数据的数据结构,将重定义后的所述组件元数据在所述主集群中进行渲染,包括:
定义组件元数据结构,根据主集群调用接口地址与该主集群验证信息,调用主集群接口,将所述组件元数据结构在主集群中进行声明定义;
根据需要部署上述组件的集群信息,将子集群调用接口地址与该子集群验证信息填充到第一组件元数据中;
执行同步组件部署运行环境镜像的操作,获取运行镜像下载地址与验证信息,并将镜像下载信息与验证信息填充到第二组件元数据中;
组件元数据中的Values字典集合为组件运行时统一变量入口,根据组件与组件运行基础信息、组件运行期待状态,填充所述Values字典集合,所述Values字典集合同时支持组件内部自定义扩展变量字段,支持多种类型组件的不同需求;
根据主集群调用接口地址与该主集群验证信息,通过主集群接口调用,将填充好的组件元数据实例应用于主集群中,完成组件元数据在主集群中的渲染;
其中,所述组件元数据包括组件期望状态信息,组件与子集群对应关系信息,组件基础运行信息和运行环境镜像地址信息。
在其中一个实施例中,所述同步组件部署运行环境镜像的操作,包括:
接收符合组件部署要求的运行环境镜像,将所述运行环境镜像上传至同步网络中存储。
在其中一个实施例中,所述基于所述组件元数据获取组件子集群的部署信息,根据所述部署信息将所述组件子集群信息渲染至对应的子集群,包括:
在所述主集群中设置组件元数据监听机制,当所述组件元数据在所述主集群中创建、修改、删除时触发监听事件;
在触发所述监听事件后,根据所述监听事件的组件元数据对象,取出多个子集群各自对应的第一组件元数据进行子集群服务健康检查,验证需要部署的子集群是否可用;
根据所述组件元数据的信息生成组件在对应子集群中的部署渲染信息,所述部署渲染信息包括组件运行基本信息、组件运行期待状态、组件运行镜像环境镜像下载信息与验证信息;
按照所述多个子集群对应接口与验证信息,分别调用子集群接口生成组件部署信息,将所述组件部署信息应用到所述的多个子集群中。
在其中一个实施例中,所述基于k8s的多集群组件管理方法,还包括:
在所述子集群中,按照组件部署信息中的镜像下载信息与验证信息,通过存储运行镜像网络文件系统中,下载组件运行环境镜像,准备运行环境,按照所述组件部署信息中的组件运行期待状态,所述运行环境镜像中尝试启动组件;
根据上述子集群中的组件运行状态变化,更新子集群内部组件部署信息,将所述组件运行状态在子集群中进行更新同步。
在其中一个实施例中,所述监听所述子集群的组件部署状态,将状态信息同步至主集群组件元数据,包括:
在所述主集群中按照上述组件元数据中的所述子集群各自对应的第一组件元数据,对所述子集群组件部署信息设置监听;
在执行所述子集群组件部署信息根据所述组件运行状态更新同步时,触发所述主集群中的监听事件;
所述触发监听事件中,根据子集群组件部署信息,更新主集群中组件元数据,将组件子集群中的运行状态同步至主集群组件元数据;
查询主节点元数据,获取该组件在对应的多个子集群中的部署运行状态。
第二方面,本申请还提供了一种基于k8s的多集群组件管理装置,所述装置包括:
第一渲染模块,用于获取子集群元数据,在主集群中对所述子集群元数据进行渲染;
第二渲染模块,用于在所述主集群中定义组件元数据的数据结构,将重定义后的所述组件元数据在所述主集群中进行渲染;
信息部署模块,用于基于所述组件元数据获取组件子集群的部署信息,根据所述部署信息将组件子集群信息渲染至对应的子集群;
信息同步模块,用于监听所述子集群的组件部署状态,将状态信息同步至主集群组件元数据;
其中,所述子集群元数据包括对应的子集群调用接口地址与验证信息。
第三方面,本申请还提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取子集群元数据,在主集群中对所述子集群元数据进行渲染;
在所述主集群中定义组件元数据的数据结构,将重定义后的所述组件元数据在所述主集群中进行渲染;
基于所述组件元数据获取组件子集群的部署信息,根据所述部署信息将组件子集群信息渲染至对应的子集群;
监听所述子集群的组件部署状态,将状态信息同步至主集群组件元数据;
其中,所述子集群元数据包括对应的子集群调用接口地址与验证信息。
第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取子集群元数据,在主集群中对所述子集群元数据进行渲染;
在所述主集群中定义组件元数据的数据结构,将重定义后的所述组件元数据在所述主集群中进行渲染;
基于所述组件元数据获取组件子集群的部署信息,根据所述部署信息将组件子集群信息渲染至对应的子集群;
监听所述子集群的组件部署状态,将状态信息同步至主集群组件元数据;
其中,所述子集群元数据包括对应的子集群调用接口地址与验证信息。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取子集群元数据,在主集群中对所述子集群元数据进行渲染;
在所述主集群中定义组件元数据的数据结构,将重定义后的所述组件元数据在所述主集群中进行渲染;
基于所述组件元数据获取组件子集群的部署信息,根据所述部署信息将组件子集群信息渲染至对应的子集群;
监听所述子集群的组件部署状态,将状态信息同步至主集群组件元数据;
其中,所述子集群元数据包括对应的子集群调用接口地址与验证信息。
通过将多个集群分为主从结构,在主集群维护了多个子集群中不同组件元数据,通过管理主集群中组件元数据,实现统一管理多个子集群中不同组件的运行生命周期。实现了简单,可靠的多集群组件管理功能,降低了多集群维护成本。
附图说明
图1为一个实施例中一种基于k8s的多集群组件管理方法的应用环境图;
图2为一个实施例中一种基于k8s的多集群组件管理方法所适用的网络设备结构示意图;
图3为一个实施例中一种基于k8s的多集群组件管理方法的流程示意图;
图4为一个实施例中步骤S24的流程示意图;
图5为一个实施例中步骤S26的流程示意图;
图6为一个实施例中步骤S28的流程示意图;
图7为一个实施例中基于k8s的多集群组件管理装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的基于k8s的多集群组件管理方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,提供了一种基于k8s的多集群组件管理方法,涉及单个主集群、以及受控于主集群的多个子集群。如图2所示,主集群中设有组件元数据和多集群组件管理模块。在并行设置的多个子集群中,每个子集群均包含组件部署数据以及运行中组件;并且全部的子集群均连通网络存储系统进行运行环境镜像的同步存储。基于图2所示的网络结构,基于k8s的多集群组件管理方法,如图3所示,包括以下步骤:
步骤S22,获取子集群元数据,在主集群中对所述子集群元数据进行渲染。
其中,为了实现主集群对多个子集群的统一管理,首先需要在主集群中对子集群中的子集群元数据进行渲染,此处的渲染是对多个地址或者信息参数进行定义,具体包括子集群接口地址ClusterApi与子集群验证信息ClusterApiToken。
步骤S24,在所述主集群中定义组件元数据的数据结构,将重定义后的所述组件元数据在所述主集群中进行渲染。
其中,与上述步骤类似,针对组件元数据这一定义,也需要在完成数据结构的定义后,在主集群中对组件元数据进行渲染。
此处对组件元数据的定义主要包括对组件元数据的数据结构的定义。组件元数据包括组件期望状态信息,组件与子集群对应关系信息,组件基础运行信息和运行环境镜像地址信息。在具体的渲染过程中,根据组件元数据的具体内容进行执行定义声明以及验证信息的填充操作。
步骤S26,基于所述组件元数据获取组件子集群的部署信息,根据所述部署信息将组件子集群信息渲染至对应的子集群。
其中,在获取部署信息之前,需要在主集群中设置组件元数据监听机制用于在组件元数据被处理时通过监听机制触发监听事件。在触发监听事件后执行子集群验证操作。
步骤S28,监听所述子集群的组件部署状态,将状态信息同步至主集群组件元数据。
其中,此处监听组件部署状态的操作是基于前述步骤中部署信息更新时的监听事件触发。在触发监听事件后还需要执行根据子集群的组件部署信息对主集群中的组件元数据进行更新的操作。
通过将多个集群分为主从结构,在主集群维护了多个子集群中不同组件元数据,通过管理主集群中组件元数据,实现统一管理多个子集群中不同组件的运行生命周期。实现了简单,可靠的多集群组件管理功能,降低了多集群维护成本。
在其中一个实施例中,如图4所示,步骤S24,包括:
S240,定义组件元数据结构,根据主集群调用接口地址与该主集群验证信息,调用主集群接口,将所述组件元数据结构在主集群中进行声明定义。
S242,根据需要部署上述组件的集群信息,将子集群调用接口地址与该子集群验证信息填充到第一组件元数据中。
S244,执行同步组件部署运行环境镜像的操作,获取运行镜像下载地址与验证信息,并将镜像下载信息与验证信息填充到第二组件元数据中。
S246,组件元数据中的Values字典集合为组件运行时统一变量入口,根据组件与组件运行基础信息、组件运行期待状态,填充所述Values字典集合。所述Values字典集合支持组件内部自定义扩展变量字段,支持多种类型组件的不同需求。
S248,根据主集群调用接口地址与该主集群验证信息,通过主集群接口调用,将填充好的组件元数据实例应用于主集群中,完成组件元数据在主集群中的渲染。
其中,所述组件元数据包括组件期望状态信息,组件与子集群对应关系信息,组件基础运行信息和运行环境镜像地址信息。
在实施中,主集群中对组件元数据的渲染前,首先需要对组件元数据在主集群中进行验证与声明定义。具体定义涉及到的数据结构包括网络存储系统地址Repo,网络存储地址验证信息RepoToken,网络存储中镜像名称ImageName,组件安装名称ReleaseName,组件安装空间ReleaseNamespace,组件版本Version,组件变量Values。之后将验证信息连同子集群调用接口地址填充至第一组件元数据中,此处的第一组件元数据包括ClusterApi与ClusterApiToken。
执行同步组件部署运行环境镜像的操作,获取运行镜像下载地址与验证信息,并将镜像下载信息与验证信息填充到第二组件元数据中,此处的第二组件元数据包括Repo、RepoToken和ImageName。
在其中一个实施例中,步骤S244提及的同步组件部署运行环境镜像的操作,包括:
接收符合组件部署要求的运行环境镜像,将所述运行环境镜像上传至同步网络中存储。
在其中一个实施例中,如图5所示,步骤S26,包括:
S260,在所述主集群中设置组件元数据监听机制,当所述组件元数据在所述主集群中创建、修改、删除时触发所述监听事件。
S262,在触发所述监听事件后,根据所述监听事件的组件元数据对象,取出多个子集群各自对应的第一组件元数据进行子集群服务健康检查,验证需要部署的子集群是否可用。
S264,根据所述组件元数据的信息生成组件在对应子集群中的部署渲染信息,所述部署渲染信息包括组件运行基本信息、组件运行期待状态、组件运行镜像环境镜像下载信息与验证信息。
S266,按照所述多个子集群对应的接口与验证信息,分别调用子集群接口生成组件部署信息,将所述组件部署信息应用到所述多个子集群中。
在实施中,在主集群中设置组件元数据监听机制,主集群中触发监听事件。首先根据触发监听事件的组件元数据对象,取出多个子集群各自对应的ClusterApi与ClusterApiToken,然后进行子集群服务健康检查,验证需要部署上述元组件的子集群是否可用。根据上述组件元数据中信息,生成组件在对应子集群中的部署渲染信息,包括组件运行基本信息、组件运行期待状态、组件运行镜像环境镜像下载信息与验证信息等。按照多个子集群对应接口与验证信息,分别调用子集群接口生成组件部署信息,应用到所述的多个子集群。
在其中一个实施例中,所述基于k8s的多集群组件管理方法,在执行前述步骤S260至S266后,还包括:
在所述子集群中,按照组件部署信息中的镜像下载信息与验证信息,通过存储运行镜像网络文件系统中,下载组件运行环境镜像,准备运行环境,按照所述组件部署信息中的组件运行期待状态,所述运行环境镜像中尝试启动组件;
根据上述子集群中的组件运行状态变化,更新子集群内部组件部署信息,将所述组件运行状态在子集群中进行更新同步。
在其中一个实施例中,如图6所示,步骤S28,包括:
S280,在所述主集群中按照上述组件元数据中的所述子集群各自对应的第一组件元数据,对所述子集群组件部署信息设置监听;
S282,在执行所述子集群组件部署信息根据所述组件运行状态更新同步时,触发所述主集群中的监听事件;
S284,所述触发监听事件中,根据子集群组件部署信息,更新主集群中组件元数据,将组件子集群中的运行状态同步至主集群组件元数据;
S286,查询主节点元数据,获取该组件在对应的多个子集群中的部署运行状态。
在实施中,主集群中按照上述组件元数据中的所述子集群各自对应的ClusterApi与ClusterApiToken,对子集群组件部署信息设置监听。在子集群组件部署信息根据组件运行状态更新同步时,上述主集群中的监听事件触发。在主集群中的监听事件触发中。根据子集群组件部署信息,更新主集群中组件元数据,将组件子集群中的运行状态同步至主集群组件元数据中。查询主节点元数据,即可获取该组件在对应的多个子集群中的部署运行状态。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的基于k8s的多集群组件管理方法的基于k8s的多集群组件管理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个基于k8s的多集群组件管理装置实施例中的具体限定可以参见上文中对于基于k8s的多集群组件管理方法的限定,在此不再赘述。
在一个实施例中,如图7所示,提供了一种基于k8s的多集群组件管理装置70,包括:
第一渲染模块72,用于获取子集群元数据,在主集群中对所述子集群元数据进行渲染。
其中,为了实现主集群对多个子集群的统一管理,首先需要在主集群中对子集群中的子集群元数据进行渲染,此处的渲染是对多个地址或者信息参数进行定义,具体包括子集群接口地址ClusterApi与子集群验证信息ClusterApiToken。
第二渲染模块74,用于在所述主集群中定义组件元数据的数据结构,将重定义后的所述组件元数据在所述主集群中进行渲染。
其中,与上述步骤类似,针对组件元数据这一定义,也需要在完成数据结构的定义后,在主集群中对组件元数据进行渲染。
此处对组件元数据的定义主要包括对组件元数据的数据结构的定义。组件元数据包括组件期望状态信息,组件与子集群对应关系信息,组件基础运行信息和运行环境镜像地址信息。在具体的渲染过程中,根据组件元数据的具体内容进行执行定义声明以及验证信息的填充操作。
信息部署模块76,用于基于所述组件元数据获取组件子集群的部署信息,根据所述部署信息将组件子集群信息渲染至对应的子集群。
其中,在获取部署信息之前,需要在主集群中设置组件元数据监听机制用于在组件元数据被处理时通过监听机制触发监听事件。在触发监听事件后执行子集群验证操作。
信息同步模块78,用于监听所述子集群的组件部署状态,将状态信息同步至主集群组件元数据。所述子集群元数据包括对应的子集群调用接口地址与验证信息。
其中,此处监听组件部署状态的操作是基于前述步骤中部署信息更新时的监听事件触发。在触发监听事件后还需要执行根据子集群的组件部署信息对主集群中的组件元数据进行更新的操作。
通过将多个集群分为主从结构,在主集群维护了多个子集群中不同组件元数据,通过管理主集群中组件元数据,实现统一管理多个子集群中不同组件的运行生命周期。实现了简单,可靠的多集群组件管理功能,降低了多集群维护成本。
上述基于k8s的多集群组件管理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储基于k8s的多集群组件管理数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于k8s的多集群组件管理方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
步骤S22,获取子集群元数据,在主集群中对所述子集群元数据进行渲染。
其中,为了实现主集群对多个子集群的统一管理,首先需要在主集群中对子集群中的子集群元数据进行渲染。
所述子集群元数据包括对应的子集群调用接口地址与验证信息。
步骤S24,在所述主集群中定义组件元数据的数据结构,将重定义后的所述组件元数据在所述主集群中进行渲染。
其中,与上述步骤类似,针对组件元数据这一定义,也需要在完成数据结构的定义后,在主集群中对组件元数据进行渲染。
此处对组件元数据的定义主要包括对组件元数据的数据结构的定义。组件元数据包括组件期望状态信息,组件与子集群对应关系信息,组件基础运行信息和运行环境镜像地址信息。在具体的渲染过程中,根据组件元数据的具体内容进行执行定义声明以及验证信息的填充操作。
步骤S26,基于所述组件元数据获取组件子集群的部署信息,根据所述部署信息将组件子集群信息渲染至对应的子集群。
其中,在获取部署信息之前,需要在主集群中设置组件元数据监听机制用于在组件元数据被处理时通过监听机制触发监听事件。在触发监听事件后执行子集群验证操作。
步骤S28,监听所述子集群的组件部署状态,将状态信息同步至主集群组件元数据。
其中,此处监听组件部署状态的操作是基于前述步骤中部署信息更新时的监听事件触发。在触发监听事件后还需要执行根据子集群的组件部署信息对主集群中的组件元数据进行更新的操作。
通过将多个集群分为主从结构,在主集群维护了多个子集群中不同组件元数据,通过管理主集群中组件元数据,实现统一管理多个子集群中不同组件的运行生命周期。实现了简单,可靠的多集群组件管理功能,降低了多集群维护成本。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
步骤S22,获取子集群元数据,在主集群中对所述子集群元数据进行渲染。
其中,为了实现主集群对多个子集群的统一管理,首先需要在主集群中对子集群中的子集群元数据进行渲染。
所述子集群元数据包括对应的子集群调用接口地址与验证信息。
步骤S24,在所述主集群中定义组件元数据的数据结构,将重定义后的所述组件元数据在所述主集群中进行渲染。
其中,与上述步骤类似,针对组件元数据这一定义,也需要在完成数据结构的定义后,在主集群中对组件元数据进行渲染。
此处对组件元数据的定义主要包括对组件元数据的数据结构的定义。组件元数据包括组件期望状态信息,组件与子集群对应关系信息,组件基础运行信息和运行环境镜像地址信息。在具体的渲染过程中,根据组件元数据的具体内容进行执行定义声明以及验证信息的填充操作。
步骤S26,基于所述组件元数据获取组件子集群的部署信息,根据所述部署信息将组件子集群信息渲染至对应的子集群。
其中,在获取部署信息之前,需要在主集群中设置组件元数据监听机制用于在组件元数据被处理时通过监听机制触发监听事件。在触发监听事件后执行子集群验证操作。
步骤S28,监听所述子集群的组件部署状态,将状态信息同步至主集群组件元数据。
其中,此处监听组件部署状态的操作是基于前述步骤中部署信息更新时的监听事件触发。在触发监听事件后还需要执行根据子集群的组件部署信息对主集群中的组件元数据进行更新的操作。
通过将多个集群分为主从结构,在主集群维护了多个子集群中不同组件元数据,通过管理主集群中组件元数据,实现统一管理多个子集群中不同组件的运行生命周期。实现了简单,可靠的多集群组件管理功能,降低了多集群维护成本。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
步骤S22,获取子集群元数据,在主集群中对所述子集群元数据进行渲染。
其中,为了实现主集群对多个子集群的统一管理,首先需要在主集群中对子集群中的子集群元数据进行渲染,
所述子集群元数据包括对应的子集群调用接口地址与验证信息。
步骤S24,在所述主集群中定义组件元数据的数据结构,将重定义后的所述组件元数据在所述主集群中进行渲染。
其中,与上述步骤类似,针对组件元数据这一定义,也需要在完成数据结构的定义后,在主集群中对组件元数据进行渲染。
此处对组件元数据的定义主要包括对组件元数据的数据结构的定义。组件元数据包括组件期望状态信息,组件与子集群对应关系信息,组件基础运行信息和运行环境镜像地址信息。在具体的渲染过程中,根据组件元数据的具体内容进行执行定义声明以及验证信息的填充操作。
步骤S26,基于所述组件元数据获取组件子集群的部署信息,根据所述部署信息将组件子集群信息渲染至对应的子集群。
其中,在获取部署信息之前,需要在主集群中设置组件元数据监听机制用于在组件元数据被处理时通过监听机制触发监听事件。在触发监听事件后执行子集群验证操作。
步骤S28,监听所述子集群的组件部署状态,将状态信息同步至主集群组件元数据。
其中,此处监听组件部署状态的操作是基于前述步骤中部署信息更新时的监听事件触发。在触发监听事件后还需要执行根据子集群的组件部署信息对主集群中的组件元数据进行更新的操作。
通过将多个集群分为主从结构,在主集群维护了多个子集群中不同组件元数据,通过管理主集群中组件元数据,实现统一管理多个子集群中不同组件的运行生命周期。实现了简单,可靠的多集群组件管理功能,降低了多集群维护成本。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (10)

1.一种基于k8s的多集群组件管理方法,其特征在于,所述基于k8s的多集群组件管理方法包括:
获取子集群元数据,在主集群中对所述子集群元数据进行渲染;
在所述主集群中定义组件元数据的数据结构,将重定义后的所述组件元数据在所述主集群中进行渲染;
基于所述组件元数据获取组件子集群的部署信息,根据所述部署信息将组件子集群信息渲染至对应的子集群;
监听所述子集群的组件部署状态,将状态信息同步至主集群组件元数据;
其中,所述子集群元数据包括对应的子集群调用接口地址与验证信息。
2.根据权利要求1所述的基于k8s的多集群组件管理方法,其特征在于,所述在所述主集群中定义组件元数据的数据结构,将重定义后的所述组件元数据在所述主集群中进行渲染,包括:
定义组件元数据结构,根据主集群调用接口地址与该主集群验证信息,调用主集群接口,将所述组件元数据结构在主集群中进行声明定义;
根据需要部署上述组件的集群信息,将子集群调用接口地址与该子集群验证信息填充到第一组件元数据中;
执行同步组件部署运行环境镜像的操作,获取运行镜像下载地址与验证信息,并将镜像下载信息与验证信息填充到第二组件元数据中;
组件元数据中的Values字典集合为组件运行时统一变量入口,根据组件与组件运行基础信息、组件运行期待状态,填充所述Values字典集合,所述Values字典集合同时支持组件内部自定义扩展变量字段,支持多种类型组件的不同需求;
根据主集群调用接口地址与该主集群验证信息,通过主集群接口调用,将填充好的组件元数据实例应用于主集群中,完成组件元数据在主集群中的渲染;
其中,所述组件元数据包括组件期望状态信息,组件与子集群对应关系信息,组件基础运行信息和运行环境镜像地址信息。
3.根据权利要求2所述的基于k8s的多集群组件管理方法,其特征在于,所述同步组件部署运行环境镜像的操作,包括:
接收符合组件部署要求的运行环境镜像,将所述运行环境镜像上传至同步网络中存储。
4.根据权利要求1所述的基于k8s的多集群组件管理方法,其特征在于,所述基于所述组件元数据获取组件子集群的部署信息,根据所述部署信息将组件子集群信息渲染至对应的子集群,包括:
在所述主集群中设置组件元数据监听机制,当所述组件元数据在所述主集群中创建、修改、删除时触发监听事件;
在触发所述监听事件后,根据所述监听事件的组件元数据对象,取出多个子集群各自对应的第一组件元数据进行子集群服务健康检查,验证需要部署的子集群是否可用;
根据所述组件元数据的信息生成组件在对应子集群中的部署渲染信息,所述部署渲染信息包括组件运行基本信息、组件运行期待状态、组件运行镜像环境镜像下载信息与验证信息;
按照所述多个子集群对应的接口与验证信息,分别调用子集群接口生成组件部署信息,将所述组件部署信息应用到所述多个子集群中。
5.根据权利要求4所述的基于k8s的多集群组件管理方法,其特征在于,所述基于k8s的多集群组件管理方法,还包括:
在所述子集群中,按照组件部署信息中的镜像下载信息与验证信息,通过存储运行镜像网络文件系统中,下载组件运行环境镜像,准备运行环境,按照所述组件部署信息中的组件运行期待状态,所述运行环境镜像中尝试启动组件;
根据上述子集群中的组件运行状态变化,更新子集群内部组件部署信息,将所述组件运行状态在子集群中进行更新同步。
6.根据权利要求5所述的基于k8s的多集群组件管理方法,其特征在于,所述监听所述子集群的组件部署状态,将状态信息同步至主集群组件元数据,包括:
在所述主集群中按照上述组件元数据中的所述子集群各自对应的第一组件元数据,对所述子集群组件部署信息设置监听;
在执行所述子集群组件部署信息根据所述组件运行状态更新同步时,触发所述主集群中的监听事件;
所述触发监听事件中,根据子集群组件部署信息,更新主集群中组件元数据,将组件子集群中的运行状态同步至主集群组件元数据;
查询主节点元数据,获取该组件在对应的多个子集群中的部署运行状态。
7.一种基于k8s的多集群组件管理装置,其特征在于,所述基于k8s的多集群组件管理装置包括:
第一渲染模块,用于获取子集群元数据,在主集群中对所述子集群元数据进行渲染;
第二渲染模块,用于在所述主集群中定义组件元数据的数据结构,将重定义后的所述组件元数据在所述主集群中进行渲染;
信息部署模块,用于基于所述组件元数据获取组件子集群的部署信息,根据所述部署信息将组件子集群信息渲染至对应的子集群;
信息同步模块,用于监听所述子集群的组件部署状态,将状态信息同步至主集群组件元数据;
其中,所述子集群元数据包括对应的子集群调用接口地址与验证信息。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述基于k8s的多集群组件管理方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述基于k8s的多集群组件管理方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述基于k8s的多集群组件管理方法的步骤。
CN202410059955.8A 2024-01-16 2024-01-16 一种基于k8s的多集群组件管理方法、装置及计算机设备 Active CN117573295B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410059955.8A CN117573295B (zh) 2024-01-16 2024-01-16 一种基于k8s的多集群组件管理方法、装置及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410059955.8A CN117573295B (zh) 2024-01-16 2024-01-16 一种基于k8s的多集群组件管理方法、装置及计算机设备

Publications (2)

Publication Number Publication Date
CN117573295A true CN117573295A (zh) 2024-02-20
CN117573295B CN117573295B (zh) 2024-05-28

Family

ID=89895912

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410059955.8A Active CN117573295B (zh) 2024-01-16 2024-01-16 一种基于k8s的多集群组件管理方法、装置及计算机设备

Country Status (1)

Country Link
CN (1) CN117573295B (zh)

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110752947A (zh) * 2019-10-18 2020-02-04 北京浪潮数据技术有限公司 一种k8s集群部署方法及装置,一种部署平台
CN111522628A (zh) * 2020-04-27 2020-08-11 上海仪电(集团)有限公司中央研究院 一种基于OpenStack的Kubernetes集群搭建部署方法、架构及存储介质
CN113821267A (zh) * 2020-06-16 2021-12-21 海信集团有限公司 一种配置文件处理方法、控制终端和管理终端
CN114650170A (zh) * 2022-02-24 2022-06-21 京东科技信息技术有限公司 跨集群资源管理方法、装置、设备和存储介质
CN115098588A (zh) * 2022-06-16 2022-09-23 数数信息科技(上海)有限公司 跨集群的元数据同步方法、设备及介质
WO2023019953A1 (zh) * 2021-08-16 2023-02-23 中兴通讯股份有限公司 数据同步方法、系统、服务器及存储介质
CN115801799A (zh) * 2022-10-27 2023-03-14 兴业银行股份有限公司 基于kubernetes多集群管理中间件生命周期的系统
CN115987990A (zh) * 2022-12-09 2023-04-18 京东科技信息技术有限公司 多集群负载均衡方法、装置、电子设备及存储介质
CN116107694A (zh) * 2022-12-22 2023-05-12 中国联合网络通信集团有限公司 k8s子集群的部署方法、装置及存储介质
US20230161633A1 (en) * 2021-11-23 2023-05-25 International Business Machines Corporation Avoidance of Workload Duplication Among Split-Clusters
CN116257380A (zh) * 2023-02-17 2023-06-13 杭州谐云科技有限公司 跨数据中心的Kubernetes联邦管理控制平面的高可用方法和系统
CN117130730A (zh) * 2023-08-29 2023-11-28 中国建设银行股份有限公司 面向联邦Kubernetes集群的元数据管理方法
US11848857B1 (en) * 2022-07-11 2023-12-19 Red Hat, Inc. Dynamic API gateway routing based on request metadata

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110752947A (zh) * 2019-10-18 2020-02-04 北京浪潮数据技术有限公司 一种k8s集群部署方法及装置,一种部署平台
CN111522628A (zh) * 2020-04-27 2020-08-11 上海仪电(集团)有限公司中央研究院 一种基于OpenStack的Kubernetes集群搭建部署方法、架构及存储介质
CN113821267A (zh) * 2020-06-16 2021-12-21 海信集团有限公司 一种配置文件处理方法、控制终端和管理终端
WO2023019953A1 (zh) * 2021-08-16 2023-02-23 中兴通讯股份有限公司 数据同步方法、系统、服务器及存储介质
US20230161633A1 (en) * 2021-11-23 2023-05-25 International Business Machines Corporation Avoidance of Workload Duplication Among Split-Clusters
CN114650170A (zh) * 2022-02-24 2022-06-21 京东科技信息技术有限公司 跨集群资源管理方法、装置、设备和存储介质
CN115098588A (zh) * 2022-06-16 2022-09-23 数数信息科技(上海)有限公司 跨集群的元数据同步方法、设备及介质
US11848857B1 (en) * 2022-07-11 2023-12-19 Red Hat, Inc. Dynamic API gateway routing based on request metadata
CN115801799A (zh) * 2022-10-27 2023-03-14 兴业银行股份有限公司 基于kubernetes多集群管理中间件生命周期的系统
CN115987990A (zh) * 2022-12-09 2023-04-18 京东科技信息技术有限公司 多集群负载均衡方法、装置、电子设备及存储介质
CN116107694A (zh) * 2022-12-22 2023-05-12 中国联合网络通信集团有限公司 k8s子集群的部署方法、装置及存储介质
CN116257380A (zh) * 2023-02-17 2023-06-13 杭州谐云科技有限公司 跨数据中心的Kubernetes联邦管理控制平面的高可用方法和系统
CN117130730A (zh) * 2023-08-29 2023-11-28 中国建设银行股份有限公司 面向联邦Kubernetes集群的元数据管理方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
ZEROUALI, A等: "Helm Charts for Kubernetes Applications: Evolution, Outdatedness and Security Risks", 《IEEE》, 31 August 2023 (2023-08-31) *
李英华;: "面向容器的集群资源管理系统研究", 无线互联科技, no. 07, 10 April 2017 (2017-04-10) *
杜磊;: "基于OpenStack和Kubernetes的双向部署技术研究", 电脑知识与技术, no. 01, 5 January 2020 (2020-01-05) *
燕彩蓉, 沈钧毅, 彭勤科, 龚先定: "基于用户行为的集群服务器对象分组优化研究", 计算机工程, no. 07, 5 July 2005 (2005-07-05) *
盛乐标;周庆林;游伟倩;张予倩;: "Kubernetes高可用集群的部署实践", 电脑知识与技术, no. 26, 15 September 2018 (2018-09-15) *

Also Published As

Publication number Publication date
CN117573295B (zh) 2024-05-28

Similar Documents

Publication Publication Date Title
US11494394B2 (en) Data versioning in a multi-datacenter topology
CN115357369B (zh) 一种k8s容器云平台中CRD应用集成调用方法与装置
CN113934445B (zh) 设备固件升级系统、方法、装置、计算机设备和存储介质
CN115134238B (zh) 业务系统发布方法、装置、计算机设备和存储介质
CN115686932B (zh) 备份集文件恢复方法、装置和计算机设备
CN114721809A (zh) 一种kubernetes集群的应用部署方法及装置
CN117573295B (zh) 一种基于k8s的多集群组件管理方法、装置及计算机设备
CN105677427A (zh) 一种模块升级的方法及装置
WO2023160418A1 (zh) 资源处理方法及资源调度方法
CN111221507A (zh) 一种算法应用管理平台
CN116107694A (zh) k8s子集群的部署方法、装置及存储介质
CN111400243B (zh) 基于流水线服务的研发管理系统以及文件存储方法、装置
CN114185566A (zh) 容器化部署的方法、装置、计算机设备和存储介质
CN114692056A (zh) 目标页面生成方法、装置、计算机设备和存储介质
US11501014B2 (en) Secure data replication in distributed data storage environments
CN114153732A (zh) 故障场景测试方法、装置、电子设备及存储介质
CN114756293A (zh) 业务处理方法、装置、计算机设备和存储介质
CN116501449B (zh) 云原生环境下对于容器文件的管理方法及系统
CN116643846B (zh) 基于容器集群编排管理平台的定时任务处理方法和装置
CN109446168B (zh) 一种基于InData-Kudu对象存储进行配置文件共享的方法
CN116301934A (zh) 软件安装方法、装置、计算机设备和存储介质
CN116483894A (zh) 一种信息处理方法及装置、存储介质
CN114356943A (zh) 一种数据库同步方法、装置、电子设备及存储介质
CN117033381A (zh) 多副本数据存储方法、装置、设备及介质
CN117311785A (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