CN112905306A - 多集群容器管理方法、装置、电子设备和存储介质 - Google Patents
多集群容器管理方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN112905306A CN112905306A CN202110334857.7A CN202110334857A CN112905306A CN 112905306 A CN112905306 A CN 112905306A CN 202110334857 A CN202110334857 A CN 202110334857A CN 112905306 A CN112905306 A CN 112905306A
- Authority
- CN
- China
- Prior art keywords
- container
- service
- cluster
- management
- auxiliary function
- 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
-
- 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
-
- 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
- G06F2009/45587—Isolation or security of virtual machine instances
-
- 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
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Abstract
本发明公开了一种多集群容器管理方法、装置、电子设备和存储介质,应用于自动程序设计技术领域,其中,该方法包括:获取用户输入的容器管理请求;根据所述容器管理请求和预设管理对象管理从属集群中的业务容器。本发明实施例通过使用预设管理对象和容器管理请求实现对从属集群中业务容器的管理,实现从属集群中业务容器的统一管理,降低业务容器的维护难度,减少多集群部署情况下的容器管理成本。
Description
技术领域
本发明实施例涉及自动程序设计技术领域,尤其涉及一种多集群容器管理方法、装置、电子设备和存储介质。
背景技术
应用程序和服务通常需要其他相关的功能,例如,监控、日志、集中化配置和网络服务等,这些外围功能往往被集成在应用程序中,外围功能与应用程序在相同的进程中运行,并没有被很好的隔离。外围功能一旦出现中断将会导致其他功能或者整体应用程序的崩溃。现有技术中常使用kubernetes容器调度平台中的Sidecar模式,将这些外围功能作为一个个单独的组件部署在各自的进程或者容器中。
然而原生kubernetes中对Sidecar模式的支持较弱,通过Kubernetes中原生的资源类型进行系统部署时存在以下问题:1、多集群部署情景下业务应用程序需要依赖于多个容器,在对容器进行管理时需要由运维人员手动添加部署多个容器,操作服务,且无法保障不同集群中容器的一致性。2、原生的Kubernetes没有批量升级功能,无法对容器进行统一升级,必须登录到各集群对容器版本进行升级,并通知业务项目重新构建业务镜像,造成人力和物力的浪费。
发明内容
本发明提供一种多集群容器管理方法、装置、电子设备和存储介质,应用于自动程序设计技术领域,以对多集群下的容器进行统一管理,降低添加新建容器的操作难度,提高容器升级效率,减少多集群部署情况下的容器管理成本。
第一方面,本发明实施例提供了一种多集群容器管理方法,该方法包括:
获取用户输入的容器管理请求;
根据所述容器管理请求和预设管理对象管理从属集群中的业务容器。
第二方面,本发明实施例还提供了一种多集群容器管理方法,该方法包括:
获取全局控制集群发送的容器管理指令,其中,所述容器管理指令根据所述容器管理请求和所述预设管理对象确定;
根据所述容器管理指令管理业务容器。
第三方面,本发明实施例还提供了一种多集群容器管理装置,该装置包括:
请求获取模块,用于获取用户输入的容器管理请求;
容器管理模块,用于根据所述容器管理请求和预设管理对象管理从属集群中的业务容器。
第四方面,本发明实施例还提供了一种多集群容器管理装置,该装置包括:
指令获取模块,用于获取全局控制集群发送的容器管理指令,其中,所述容器管理指令根据所述容器管理请求和所述预设管理对象确定;
管理执行模块,用于根据所述容器管理指令管理业务容器。
第五方面,本发明实施例还提供了一种电子设备,该电子设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例中任一所述的多集群容器管理方法。
第六方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如本发明实施例中任一所述的多集群容器管理方法。
本发明实施例,通过采集用户输入的容器管理请求,使用预设管理对象和容器管理请求实现对从属集群中业务容器的管理,实现从属集群中业务容器的统一管理,降低业务容器的维护难度,减少多集群部署情况下的容器管理成本。
附图说明
图1是本发明实施例一提供的一种多集群容器管理方法的流程图;
图2是本发明实施例一提供的一种集群架构示例图;
图3是本发明实施例二提供的另一种多集群容器管理方法的流程图;
图4是本发明实施例三提供的另一种多集群容器管理方法的流程图;
图5是本发明实施例四提供的一种多集群容器管理方法的流程图;
图6是本发明实施例五提供的另一种多集群容器管理方法的流程图;
图7是本发明实施例六提供的一种多集群容器管理装置的结构示意图;
图8是本发明实施例七提供的另一种多集群容器管理装置的结构示意图;
图9是本发明实施例八提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构,此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
实施例一
图1是本发明实施例一提供的一种多集群容器管理方法的流程图,本实施例可适用于统一管理多集群的业务容器的情况,该方法可以由多集群容器管理装置来执行,该装置可以采用硬件和/或软件的方式来实现,一般集成在全局控制集群,该全局控制集群具体可以为服务器集群,用于管理从属集群,参见图1,本发明实施例提供的多集群容器管理方法具体包括如下步骤:
步骤110、获取用户输入的容器管理请求。
其中,容器管理请求可以是用户发出的请求对从属集群中的业务容器进行管理的请求,业务容器可以是业务逻辑运行实例,业务容器可以是与其他部分隔离开来的一系列进程,容器管理请求可以包括业务容器的创建请求以及更新请求等,容器管理请求中可以包括请求管理的业务容器以及该业务容器对应的从属集群。
在本发明实施例中,用户的容器管理请求可以直接输入到全局控制集群,可以由全局控制集群的监控线程获取到输入的容器管理请求,可以将全局控制集群作为容器管理请求的入口,对从属集群的业务容器进行统一管理,可提高业务容器的管理效率。
示例性的,图2是本发明实施例一提供的一种集群架构示例图,参见图2,在一个Kubernetes集群中全局控制集群可以为管理集群,从属集群可以业务集群且受到管理集群的管理,可以在全局控制集群中使用Operator操作监听用户数输入的容量管理请求。
步骤120、根据容器管理请求和预设管理对象管理从属集群中的业务容器。
其中,预设管理对象可以针对业务容器的管理实例对象,可以包括针对业务容器的创建过程的实例以及对业务容器更新的实例等,预设管理对象可以预先根据用户需求进行定制。
具体的,全局控制集群可以根据容器管理请求确定需要管理的业务容器以及对应的从属集群,然后调用对应的预设管理对象对从属集群中的业务容器进行管理。
进一步的,在上述发明实施例的基础上,所述预设管理对象至少包括业务容器管理对象和辅功能管理对象中一种。
在本发明实施例中,可以在全局控制集群预先实例化业务容器管理对象和辅功能管理对象,业务容器管理对象可以用于业务容器的创建,业务容器管理对象中预先设置有创建业务容器的相关参数和控制逻辑,辅功能管理对象可以是对业务容器中辅助功能进行管理的实例对象,辅功能管理对象中可以预先设置有更新辅助功能的相关参数和控制逻辑。
本发明实施例,通过采集用户输入的容器管理请求,使用预设管理对象和容器管理请求实现对从属集群中业务容器的管理,实现从属集群中业务容器的统一管理,降低业务容器的维护难度,减少多集群部署情况下的容器管理成本。
实施例二
图3是本发明实施例二提供的另一种多集群容器管理方法的流程图,本发明实施例是在上述发明实施例基础上的具体化,参见图3,本发明实施例提供的方法具体包括如下步骤:
步骤210、获取用户输入的容器管理请求,其中,容器管理请求至少包括容器创建请求和容器更新请求中一种。
步骤220、获取容器创建请求对应的业务容器管理对象。
其中,容器创建请求可以是用户请求创建业务容器的请求,容器创建请求可以包括需要创建的业务容器以及创建业务容器的从属集群,容器创建请求具体可以为业务容器管理对象的创建请求。
具体的,全局控制集群可以根据容器创建请求查找对应的业务容器管理对象,例如,当容器创建请求被接受到时,可以自动创建业务容器管理对象以实现对业务容器的创建。
步骤221、提取业务容器管理对象中的预期部署集群和预期实例数。
其中,业务容器管理对象可以是预先设置的进行容器管理的实例,业务容器管理对象中可以包括预期部署集群和预设实例数,预期部署集群可以是创建业务容器的从属集群,预设实例数可以表示创建从属集群的数量,进一步的,在业务容器管理对象中预期部署集群和预期实例数还可以存在关联,预期部署集群中每个从属集群可以存在各自对应的预期实例数,不同从属集群的预期实例数可以相同也可以不同。业务容器管理对象可以根据用户需求或者集群架构预先进行设置。
在本发明实施例中,在业务容器对象中提取到预期部署集群,可以预设部署集群作为需要创建业务容器的从属集群,还可以在业务容器对象中提取到预设实例数,该预期实例数可以是各需要创建业务容器的从属集群中创建业务容器的数量。
步骤222、根据预期部署集群和预期实例数创建业务容器。
具体的,全局控制集群可以针对预期部署集群对应的各从属集群创建业务容器,控制每个从属集群创建的业务容器的数量达到预期实例数。
步骤230、按照容器更新请求修改辅功能管理对象的辅助功能容器模板。
其中,容器更新请求可以是对业务容器实现的功能进行更新的请求,业务容器可以由一个或者多个辅助功能组成,可以通过更新辅助功能的方式实现业务容器的更新。辅功能管理对象可以是实例化的功能管理对象,辅功能管理对象可以用于更新业务容器内的辅助功能,辅功能管理对象中可以预先配置有辅助功能容器模板,辅助功能容器模板可以存储业务容器中的辅助功能信息,在辅助功能容器模板中业务容器可以配置一个或者多个辅助功能,不同的业务容器配置的辅助功能可以相同也可以不同。
具体的,全局控制集群在获取到容器更新请求时,可以对辅功能管理对象中的辅助功能容器模板进行修正,例如,可以将容器更新请求中的发送的新的辅助功能添加到辅助功能容器模板中,或者,可以根据容器更新请求中发送的删除的辅助功能将辅助功能容器模板中对应的辅助功能删除,通过修改辅助功能容器模板的方式触发各从属集群中业务容器的更新和升级。
步骤231、监听到辅功能管理对象更新时,控制各从属集群根据辅功能管理对象更新业务容器。
具体的,全局控制集群还可以对辅功能管理对象进行监听,确定辅功能管理对象发生更新时,可以触发控制从属集群更新业务容器。全局控制集群可以调用更新后的辅功能管理对象对各从属集群中的业务容器进行更新,更改业务容器中的辅助功能。
本发明实施例,通过全局控制集群获取用户输入的容器管理请求,该容器管理请求包括容器创建请求和容器更新请求,在获取到容器创建请求时获取对应的业务容器管理对象,并提取该业务容器管理对象中的预期部署集群和预期实例数,按照预设部署集群和预期实例数在从属集群创建业务容器,在获取到容器更新请求时,按照容器更新请求修改辅功能管理对象中的辅助功能容器模板,监听到辅功能管理对象更新时控制各从属集群按照该辅助功能管理对象更新业务容器,通过容器管理请求调用实例化的业务容器管理对象和辅功能管理对象,降低多集群中业务容器管理的难度,提高全局控制集群对从属集群的业务容器的统一化管理程度,降低业务容器创建和升级开销,避免运维人员手动控制各从属集群的业务容器升级,避免人力和物力成本的浪费。
进一步的,在上述发明实施例的基础上,还包括:根据集群管理对象管理从属集群,其中,所述管理包括增加、删除和更新从属集群信息。
在本发明实施例中,全局控制集群还可以对从属集群的集群管理生成实例化对象,可以在集群管理对象中预设有增加、删除和更新从属集群信息的控制逻辑,进一步降低从属集群管理的难度。
实施例三
图4是本发明实施例三提供的另一种多集群容器管理方法的流程图,本发明实施例是在上述发明实施例基础上的具体化,参见图4,本发明实施例提供的方法具体包括如下步骤:
步骤310、获取用户输入的容器管理请求,其中,预设管理对象至少包括业务容器管理对象和辅功能管理对象中一种。
步骤320、获取容器创建请求对应的业务容器管理对象。
步骤321、提取业务容器管理对象中的预期部署集群和预期实例数。
步骤322、根据预期部署集群连接到至少一个从属集群。
在本发明实施例中,全局控制集群可以与预设部署集群包含的从属集群建立通信连接,该通信连接可以包括有线连接或者无线连接,可以使得全局控制集群的控制命令发送到建立连接的从属集群。
步骤323、控制各从属集群创建业务容器。
具体的,全局控制集群可以通过已建立的连接发送控制指令到各从属集群,各从属集群在获取到控制指令后可以创建业务容器。
步骤324、判断各从属集群中创建的业务容器的数量是否满足预期实例数的要求,若满足,则完成业务容器的创建,若不满足,则控制从属集群继续创建业务容器,直到业务容器的数量满足预期实例数的要求。
在本发明实施例中,全局控制集群还可以对各从属集群进行监听,确定各从属集群创建的业务容器的数量是否达到预设实例数的要求,例如,从属集群中创建业务容器的数量等于预设实例数,可以确定达到预设实例数的要求。若从属集群的业务容器满足预设实例数的要求,则该从属集群完成业务容器的创建,若从属集群的业务容器还未满足预设实例数的要求,则继续控制该从属集群创建业务容器,直到创建的业务容器的数量满足预设实例数的要求。
步骤330、按照容器更新请求修改辅功能管理对象的辅助功能容器模板。
步骤331、监听到辅功能管理对象更新时,遍历各从属集群的业务容器,判断业务容器的业务辅助功能是否与辅功能管理对象的辅助功能容器模板中的业务辅助功能一致。
在本发明实施例中,全局控制集群可以对辅功能管理对象进行监听,检测到辅功能管理对象进行更新后,可以与从属集群建立联系,并获取到各从属集群中业务容器,判断各业务容器中的业务辅助功能是否与更新后的辅功能管理对象的辅助功能容器模板中的业务辅助功能完全相同。
步骤332、若一致,则不更新业务容器,若不一致,则将辅助功能容器模板中的业务辅助功能注入业务容器。
具体的,针对各业务容器,若一个业务容器中的所有业务辅助功能与辅助功能容器模板中的业务辅助功能完全一致,则确定该业务容器无需进行更新,若该业务容器中一个或者多个辅助业务功能与辅助功能容器模板中的业务辅助功能不相同,则将该将辅助功能容器模板中的所有业务辅助功能注入该业务容器,实现业务容器的更新。
本发明实施例,通过全局控制集群获取用户输入的容器管理请求,该容器管理请求包括容器创建请求和容器更新请求,在获取到容器创建请求时获取对应的业务容器管理对象,并提取该业务容器管理对象中预期部署集群和预期实例数,连接到预期部署集群对应的从属集群,并按照余数实例数创建业务容器,在获取到容器更新请求时,按照容器更新请求修改辅功能管理对象中的辅助功能容器模板,监听到辅功能管理对象更新时控制各从属集群按照该辅助功能管理对象更新业务容器,通过容器管理请求调用实例化的业务容器管理对象和辅功能管理对象,降低多集群中业务容器管理的难度,提高全局控制集群对从属集群的业务容器的统一化管理程度,降低业务容器创建和升级开销,避免运维人员手动控制各从属集群的业务容器升级,避免人力和物力成本的浪费。
进一步的,在上述发明实施例的基础上,所述控制各所述从属集群创建业务容器,包括:获取辅功能管理对象中的辅助功能容器模板,其中,辅助功能容器模板包括至少一个业务辅助功能;控制各所述从属集群创建业务容器;按照所述辅助功能容器模板将各所述业务辅助功能分别注入各所述业务容器。
在本发明实施例中,控制从属集群创建业务容器时,需要将对应的辅助功能注入到各业务容器中,具体可以包括全局控制集群调用辅功能管理对象,获取该辅功能管理对象中的辅助功能容器模板,按照该辅助功能容器模板将业务辅助功能分别注入到从属集群中创建的业务容器。
实施例四
图5是本发明实施例四提供的一种多集群容器管理方法的流程图,本实施例可适用于统一管理多集群的业务容器的情况,该方法可以由多集群容器管理装置来执行,该装置可以采用硬件和/或软件的方式来实现,一般集成在从属集群,该从属集群具体可以为服务器集群,用于执行实现业务功能,参见图5,本发明实施例提供的多集群容器管理方法具体包括如下步骤:
步骤410、获取全局控制集群发送的容器管理指令,其中,容器管理指令根据容器管理请求和预设管理对象确定。
其中,容器管理指令可以是对业务容器进行管理的指令,可以控制创建业务容器或者更新业务容器的辅助功能。
本发明实施例中,从属集群可以监听全局控制集群发送的容器管理指令,该容器管理指令可以由全局控制集群根据容器管理请求和预设管理对象确定。示例性的,容器管理指令可以预先设置在预设管理对象中,在全局控制集群获取到容器管理请求时,通过调用预设管理对象以触发容量管理指令发送到从属集群。
步骤420、根据容器管理指令管理业务容器。
具体的,从属集群可以根据获取到的容器管理指令对业务容器进行管理,例如,可以新建业务容器或者更新业务容器中的辅助功能。
本发明实施例,通过从属集群监听全局控制集群发送的容器管理指令,按照容器管理指令管理业务容器,实现了从属集群中业务容器的统一管理,降低多从属集群情景下业务容器维护的难度,节约业务容器的管理的人力和物力成本。
实施例五
图6是本发明实施例五提供的另一种多集群容器管理方法的流程图,本发明实施例是在上述发明实施例基础上的具体化,参见图6,本发明实施例提供的方法具体包括如下步骤:
步骤510、获取全局控制集群发送的容器管理指令,其中,容器管理指令根据容器管理请求和预设管理对象确定,容器管理指令包括容器创建指令和容器更新指令中至少一种。
在本发明实施例中,可以接收全局控制集群发送的容器创建指令和/或容器更新指令,其中,容器创建指令可以是指示从属集群创建业务容器的指令,容器更新指令可以是更新业务容器的辅助功能的指令。
进一步的,在上述发明实施例的基础上,所述预设管理对象至少包括业务容器管理对象和辅功能管理对象中一种。
步骤520、提取容器创建指令中的预期实例数,并创建预期实例数的业务容器。
具体的,容器创建指令可以包括预期实例数,该预期实例数可以表示从属集群需要创建业务容器的数量,从属集群可以在容器创建指令中提取到预期实例数,并创建该预期实例数对应的业务容器。
进一步的,在上述发明实施例的基础上,所述业务容器的创建包括:
接收全局控制集群中辅功能管理对象内的辅助功能容器模板,其中,辅助功能容器模板包括至少一个业务辅助功能;创建业务容器,按照辅助功能容器模板将各业务辅助功能注入业务容器。
在本发明实施例中,从属集群可以接收全局控制集群发送的辅助功能容器模板,该辅助功能容器模板可以预先设置在全局控制集群的辅功能管理对象内,可以创建业务容器,并将辅助功能容器模板中的辅助业务功能注入新创建的业务容器。
步骤530、接收全局控制集群中辅功能管理对象内的辅助功能容器模板。
具体的,在接收到容器更新指令时,可以对全局控制集群进行监听,接收辅功能管理对象中的辅功能容器模板。
步骤531、判断业务容器的业务辅助功能是否所述辅功能管理对象的辅助功能容器模板中的业务辅助功能一致,若一致,则不更新业务容器,若不一致,则将辅助功能容器模板中的业务辅助功能注入业务容器。
在本发明实施例中,从属集群判断各业务容器中的业务辅助功能是否与更新后的辅功能管理对象的辅助功能容器模板中的业务辅助功能完全相同。针对各业务容器,若一个业务容器中的所有业务辅助功能与辅助功能容器模板中的业务辅助功能完全一致,则确定该业务容器无需进行更新,若该业务容器中一个或者多个辅助业务功能与辅助功能容器模板中的业务辅助功能不相同,则将该将辅助功能容器模板中的所有业务辅助功能注入该业务容器,实现业务容器的更新。
本发明实施例,通过获取全局控制集群发送的容器管理指令,在容器管理指令为容器创建指令时,提取容器创建指令中的预期实例数,并按照预期实例数创建业务容器,在容器管理指令为容器更新指令时,接收全局控制集群中辅功能管理对象的辅助功能容器模板,若业务容器与辅助功能容器模板中的辅助业务功能一致,则不更新该业务容器,若业务容器与辅助功能容器模板中的辅助功能业务功能不一致,则按照辅助功能容器模板将业务辅助功能注入该业务容器,降低多集群中业务容器管理的难度,提高全局控制集群对从属集群的业务容器的统一化管理程度,降低业务容器创建和升级开销,避免运维人员手动控制各从属集群的业务容器升级,避免人力和物力成本的浪费。
进一步的,在上述发明实施例的基础上,所述方法还包括:发送从属集群信息到全局控制集群以更新集群管理对象。
其中,从属集群信息可以包括从属集群的唯一标识信息和工作状态信息,从属集群信息可以用于全局控制集群对从属集群进行统一管理。
在本发明实施例中,从属集群可以发送从属集群信息到全局控制集群,可以由全局控制集群根据该从属集群信息更新到集群管理对象中,全局控制集群可以通过集群管理对象对从属集群进行管理,集群管理对象中可以预设管理从属集群的控制逻辑。
在一个实例性的实施方式中,在kubernetes集群中提供了多种资源类型,如资源对象(Pod、ReplicaSet、Deployment、StatefulSet、Job、CronJob等)、配置对象(Node、Namespace、ConfigMap、Ingress、Secret等)、存储对象(PersistentVolume等)、策略对象(ResourceQuota、LimitRange等),这些资源类型能够满足大多数分布式系统部署的要求。但是在不同应用业务环境下,对于平台有着一些独特的需求,原生的资源类型无法满足需求。
以我们的使用场景为例,使用传统的资源类型部署无法解决以下痛点:
1、我们的每个业务应用程序需要依赖6个agent,这6个agent由数据中心维护,所有业务应用程序需要统一使用最新版本的agent。kubernetes原生没有自动批量注入的功能,在原生kubernetes上,运维人员需要在业务应用程序部署时,同时手动添加部署和维护这6个agent容器,操作复杂,且无法保证一致性。
2、如果采用传统的“胖容器”部署模式,将6个agent和业务应用程序构建在相同的镜像中,当数据中心需要升级agent版本时,需要通知所有的业务项目组重新构建镜像,且在镜像重新发版时,会造成业务应用程序的重启,浪费大量的人力物力,产生一些不必要的变更操作。
3、原生的kubernetes没有批量升级功能,使用Sidecar模式部署,当需要对6个agent进行版本升级时,必须登录到各个kubernetes集群对原生资源对象进行升级操作,运维复杂。
4、我们的业务应用程序在生产环境上不允许仅仅部署在一个kubernetes集群中,需要跨kubernetes集群进行部署,kubernetes原生资源对象不支持跨集群部署,使用原生资源对象,需要人为在部署的kubernetes集群上建立同名资源对象,无法统一管理。
在kubernetes集群中可以在业务集群之上抽取一层作为全局控制集群,该全局控制集群本质上也是一套kubernetes集群,可以通过集群管理集群的方式实现对kubernetes集群的统一管理,在kubernetes集群中客户资源定制(Custom Resource Definition,CRD)为重要特性,集群可以通过CRD支持自定义资源类型,Operator就是利用了CRD的这一特性,实现对CRD生命周期的管理。开发Operator需要用到operator-framework。operator-framework是一个为云原生开发者提供开发Operator的组件框架开源项目。它主要包含三个组件:1、Operator SDK。集成controller-runtime,提供了:编写运维逻辑的高阶API、快速构建Operator项目及代码生成的脚手架工具、覆盖常见Operator用例的扩展。OperatorSDK是Operator Framework中最核心的工程。2、Operator Lifecycle Manager:K8S集群内所有Operator(及其关联服务)的生命周期管理。3、Operator Metering:提供对Operator本身的监控以提供一些定制化服务。
基于上述内容,可以在全局控制集群上创建Cluster、AlcorGroup、SidecarGroup等三种CRD对象,Cluster对业务集群信息进行管理,AlcorGroup对业务集群的Pod容器进行管理,SidecarGroup对业务集群的Pod容器中的辅助功能进行管理。
首先,在kubernetes集群中创建一个CRD,名为Cluster,该CRD记录的就是集群信息,通过维护该CR,可以对现有集群列表进行管理,创建另一个CRD,名为AlcorGroup,该CRD可以看做是kubernetes原生资源对象Deployment、StatefulSet的升级版。该CRD创建在全局控制集群上,当全局控制集群上的operator监听到该CRD对象的创建之后,会根据CRD对象里的详细定义,去目标集群上创建预期的Pod对象,CRD对象里会定义Pod对象预期部署的集群列表,以及Pod对象在每个预期部署集群上的实例数。针对业务集群的Pod容器创建的流程如下:1、Operator监听到AlcorGroup对象的创建;2、Operator根据AlcorGroup中定义的预期部署集群列表以及在每个预期部署集群上的实例数列表,和目标集群建立连接,监听判断在该集群上的Pod对象数量是否已经满足预期,如果不满足预期,则根据AlcorGroup中定义的Pod对象模板,创建Pod,知道满足预期数为止。通过以kubernetes管理kubernetes的方式,以及一个运行在全局控制集群上的AlcorGroup-Operator和一个名为AlcorGroup的CRD对象,实现对部署应用程序的跨集群统一管理。
针对业务集群的Pod容器的辅助功能批量注入与升级的流程如下:AlcorGroup-Operator创建Pod时,会先读取全局的SidecarGroup,获取Pod需要注入的Sidecar容器模板列表,在创建Pod时,会同步将这些Sidecar容器自动注入到Pod中。而当需要对这些Sidecar容器进行升级操作时,只需要修改更新SidecarGroup对象即可。SidecarGroup-Operator会监听到SidecarGroup的变化,遍历比对所有集群上的所有Pod,检测Pod中的Sidecar容器是否和SidecarGroup中定义的模板一致,不一致则会更新该容器,整个过程不需要人工介入,也不会影响到业务主容器。其中,预先创建的名为SidecarGroup的CRD对象,该对象存储记录了整个集群范围内需要自动注入的Sidecar容器模板列表。
实施例六
图7是本发明实施例六提供的一种多集群容器管理装置的结构示意图,可执行本发明任意实施例所提供的多集群容器管理装置,具备执行方法相应的功能模块和有益效果。该装置可以由软件和/或硬件实现,具体包括:请求获取模块601和容器管理模块602。
请求获取模块601,用于获取用户输入的容器管理请求。
容器管理模块602,用于根据所述容器管理请求和预设管理对象管理从属集群中的业务容器。
本发明实施例,通过请求获取模块采集用户输入的容器管理请求,容器管理模块使用预设管理对象和容器管理请求实现对从属集群中业务容器的管理,实现从属集群中业务容器的统一管理,降低业务容器的维护难度,减少多集群部署情况下的容器管理成本。
进一步的,在上述发明实施例的基础上,所述预设管理对象至少包括业务容器管理对象和辅功能管理对象中一种。
进一步的,在上述发明实施例的基础上,所述容器管理模块602包括:
创建请求单元,用于获取所述容器创建请求对应的业务容器管理对象。;
参见提取单元,用于提取所述业务容器管理对象中的预期部署集群和预期实例数。
容器创建单元,用于根据所述预期部署集群和所述预期实例数创建业务容器。
进一步的,在上述发明实施例的基础上,容器创建单元具有用于:
根据所述预期部署集群连接到至少一个从属集群;控制各所述从属集群创建业务容器;判断各所述从属集群中创建的业务容器的数量是否满足所述预期实例数的要求,若满足,则完成业务容器的创建,若不满足,则控制所述从属集群继续创建业务容器,直到所述业务容器的数量满足所述预期实例数的要求。
进一步的,在上述发明实施例的基础上,所述容器管理模块602包括:
更新请求单元,用于按照所述容器更新请求修改辅功能管理对象的辅助功能容器模板。
更新管理单元,用于监听到所述辅功能管理对象更新时,控制各所述从属集群根据所述辅功能管理对象更新所述业务容器。
进一步的,在上述发明实施例的基础上,所述更新管理单元具体用于:遍历各所述从属集群的业务容器,判断所述业务容器的业务辅助功能是否与所述辅功能管理对象的辅助功能容器模板中的业务辅助功能一致;若一致,则不更新所述业务容器,若不一致,则将所述辅助功能容器模板中的业务辅助功能注入所述业务容器。
进一步的,在上述发明实施例的基础上,所述装置还包括:
集群管理模块,用于根据集群管理对象管理所述从属集群,其中,所述管理包括增加、删除和更新从属集群信息。
实施例七
图8是本发明实施例七提供的另一种多集群容器管理装置的结构示意图,可执行本发明任意实施例所提供的多集群容器管理装置,具备执行方法相应的功能模块和有益效果。该装置可以由软件和/或硬件实现,具体包括:指令获取模块701和管理执行模块702。
指令获取模块701,用于获取全局控制集群发送的容器管理指令,其中,所述容器管理指令根据所述容器管理请求和所述预设管理对象确定。
管理执行模块702,用于根据所述容器管理指令管理业务容器。
本发明实施例,通过指令获取模块在从属集群监听全局控制集群发送的容器管理指令,管理执行模块按照容器管理指令管理业务容器,实现了从属集群中业务容器的统一管理,降低多从属集群情景下业务容器维护的难度,节约业务容器的管理的人力和物力成本。
进一步的,在上述发明实施例的基础上,所述预设管理对象至少包括业务容器管理对象和辅功能管理对象中一种。
进一步的,在上述发明实施例的基础上,所述管理执行模块702包括:
创建执行单元,用于提取所述容器创建指令中的预期实例数,并创建所述预期实例数的业务容器。
进一步的,在上述发明实施例的基础上,所述创建执行单元包括:
模板接收子单元,用于接收所述全局控制集群中辅功能管理对象内的辅助功能容器模板,其中,所述辅助功能容器模板包括至少一个业务辅助功能。
创建执行子单元,用于创建业务容器,按照所述辅助功能容器模板将各所述业务辅助功能注入所述业务容器。
进一步的,在上述发明实施例的基础上,所述管理执行模块702包括:
更新接收单元,用于接收所述全局控制集群中辅功能管理对象内的辅助功能容器模板。
更新执行单元,用于判断所述业务容器的业务辅助功能是否所述辅功能管理对象的辅助功能容器模板中的业务辅助功能一致,若一致,则不更新所述业务容器,若不一致,则将所述辅助功能容器模板中的业务辅助功能注入所述业务容器。
进一步的,在上述发明实施例的基础上,所述装置还包括:
集群信息模块,用于发送从属集群信息到所述全局控制集群以更新集群管理对象。
实施例八
图9是本发明实施例八提供的一种电子设备的结构示意图,如图9所示,该电子设备包括处理器70、存储器71、输入装置72和输出装置73;电子设备中处理器70的数量可以是一个或多个,图9中以一个处理器70为例;电子设备中的处理器70、存储器71、输入装置72和输出装置73可以通过总线或其他方式连接,图9中以通过总线连接为例。
存储器71作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的多集群容器管理方法对应的程序指令/模块(例如,多集群容器管理装置中的请求获取模块601和容器管理模块602,或者,指令获取模块701和管理执行模块702)。处理器70通过运行存储在存储器71中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述的多集群容器管理方法。
存储器71可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器71可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器71可进一步包括相对于处理器70远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置72可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置73可包括显示屏等显示设备。
实施例九
本发明实施例九还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种多集群容器管理方法,该方法包括:
获取用户输入的容器管理请求;
根据所述容器管理请求和预设管理对象管理从属集群中的业务容器。
或者,
获取全局控制集群发送的容器管理指令,其中,所述容器管理指令根据所述容器管理请求和所述预设管理对象确定;
根据所述容器管理指令管理业务容器。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的多集群容器管理方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述多集群容器管理装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (18)
1.一种多集群容器管理方法,其特征在于,应用于全局控制集群,所述方法包括:获取用户输入的容器管理请求;
根据所述容器管理请求和预设管理对象管理从属集群中的业务容器。
2.根据权利要求1所述的方法,其特征在于,所述预设管理对象至少包括业务容器管理对象和辅功能管理对象中一种。
3.根据权利要求1所述的方法,其特征在于,所述容器管理请求包括容器创建请求,相应的,所述根据所述容器管理请求和预设管理对象管理从属集群中的业务容器,包括:
获取所述容器创建请求对应的业务容器管理对象;
提取所述业务容器管理对象中的预期部署集群和预期实例数;
根据所述预期部署集群和所述预期实例数创建业务容器。
4.根据权利要求3所述的方法,其特征在于,所述根据所述预期部署集群和所述预期实例数创建业务容器,包括:
根据所述预期部署集群连接到至少一个从属集群;
控制各所述从属集群创建业务容器;
判断各所述从属集群中创建的业务容器的数量是否满足所述预期实例数的要求,若满足,则完成业务容器的创建,若不满足,则控制所述从属集群继续创建业务容器,直到所述业务容器的数量满足所述预期实例数的要求。
5.根据权利要求4所述的方法,其特征在于,所述控制各所述从属集群创建业务容器,包括:
获取辅功能管理对象中的辅助功能容器模板,其中,辅助功能容器模板包括至少一个业务辅助功能;
控制各所述从属集群创建业务容器;
按照所述辅助功能容器模板将各所述业务辅助功能分别注入各所述业务容器。
6.根据权利要求1所述的方法,其特征在于,所述容器管理请求包括容器更新请求,相应的,所述根据所述容器管理请求和预设管理对象管理从属集群中的业务容器,包括:
按照所述容器更新请求修改辅功能管理对象的辅助功能容器模板;
监听到所述辅功能管理对象更新时,控制各所述从属集群根据所述辅功能管理对象更新所述业务容器。
7.根据权利要求6所述的方法,其特征在于,所述控制各所述从属集群根据所述辅功能管理对象更新所述业务容器,包括:
遍历各所述从属集群的业务容器,判断所述业务容器的业务辅助功能是否与所述辅功能管理对象的辅助功能容器模板中的业务辅助功能一致;
若一致,则不更新所述业务容器,若不一致,则将所述辅助功能容器模板中的业务辅助功能注入所述业务容器。
8.根据权利要求1所述的方法,其特征在于,还包括:
根据集群管理对象管理所述从属集群,其中,所述管理包括增加、删除和更新从属集群信息。
9.一种多集群容器管理方法,其特征在于,应用于从属集群,所述方法包括:
获取全局控制集群发送的容器管理指令,其中,所述容器管理指令根据所述容器管理请求和所述预设管理对象确定;
根据所述容器管理指令管理业务容器。
10.根据权利要求9所述的方法,其特征在于,所述预设管理对象至少包括业务容器管理对象和辅功能管理对象中一种。
11.根据权利要求9所述的方法,其特征在于,所述容器管理指令包括容器创建指令,所述根据所述容器管理指令管理业务容器,包括:
提取所述容器创建指令中的预期实例数,并创建所述预期实例数的业务容器。
12.根据权利要求11所述的方法,其特征在于,所述业务容器的创建包括:
接收所述全局控制集群中辅功能管理对象内的辅助功能容器模板,其中,所述辅助功能容器模板包括至少一个业务辅助功能;
创建业务容器,按照所述辅助功能容器模板将各所述业务辅助功能注入所述业务容器。
13.根据权利要求9所述的方法,其特征在于,所述容器管理指令包括容器更新指令,所述根据所述容器管理指令管理业务容器,包括:
接收所述全局控制集群中辅功能管理对象内的辅助功能容器模板;
判断所述业务容器的业务辅助功能是否所述辅功能管理对象的辅助功能容器模板中的业务辅助功能一致,若一致,则不更新所述业务容器,若不一致,则将所述辅助功能容器模板中的业务辅助功能注入所述业务容器。
14.根据权利要求9所述的方法,其特征在于,还包括:
发送从属集群信息到所述全局控制集群以更新集群管理对象。
15.一种多集群容器管理装置,其特征在于,应用于全局控制集群,所述装置包括:
请求获取模块,用于获取用户输入的容器管理请求;
容器管理模块,用于根据所述容器管理请求和预设管理对象管理从属集群中的业务容器。
16.一种多集群容器管理装置,其特征在于,应用于从属集群,所述装置包括:
指令获取模块,用于获取全局控制集群发送的容器管理指令,其中,所述容器管理指令根据所述容器管理请求和所述预设管理对象确定;
管理执行模块,用于根据所述容器管理指令管理业务容器。
17.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8或9-14中任一所述的多集群容器管理方法。
18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-8或者9-14中任一所述的多集群容器管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110334857.7A CN112905306A (zh) | 2021-03-29 | 2021-03-29 | 多集群容器管理方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110334857.7A CN112905306A (zh) | 2021-03-29 | 2021-03-29 | 多集群容器管理方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112905306A true CN112905306A (zh) | 2021-06-04 |
Family
ID=76109350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110334857.7A Pending CN112905306A (zh) | 2021-03-29 | 2021-03-29 | 多集群容器管理方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112905306A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778623A (zh) * | 2021-08-26 | 2021-12-10 | 北京达佳互联信息技术有限公司 | 资源处理方法和装置、电子设备及存储介质 |
-
2021
- 2021-03-29 CN CN202110334857.7A patent/CN112905306A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778623A (zh) * | 2021-08-26 | 2021-12-10 | 北京达佳互联信息技术有限公司 | 资源处理方法和装置、电子设备及存储介质 |
CN113778623B (zh) * | 2021-08-26 | 2024-04-16 | 北京达佳互联信息技术有限公司 | 资源处理方法和装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109992354B (zh) | 容器处理方法、装置、主体服务器、系统和存储介质 | |
JP5144659B2 (ja) | 能力マネジメントオブジェクトを保守し、能力を管理するための方法、システム、および端末 | |
CN111324571B (zh) | 一种容器集群管理方法、装置及系统 | |
CN112424750A (zh) | 云平台上的多集群供应及管理办法 | |
CN110196731B (zh) | 一种运维系统、方法及存储介质 | |
CN104360878B (zh) | 一种应用软件部署的方法及装置 | |
CN115292026B (zh) | 容器集群的管理方法、装置、设备及计算机可读存储介质 | |
CN105164660A (zh) | 基于云的服务设计承继 | |
WO2021238301A1 (zh) | 一种应用更新方法、装置、设备及介质 | |
US20230342183A1 (en) | Management method and apparatus for container cluster | |
CN111679888A (zh) | 一种代理容器的部署方法及装置 | |
JP2001356912A (ja) | ソフトウェアのインストール/アップデート/アンインストールシステム | |
CN113778486A (zh) | 一种代码流水线的容器化处理方法、装置、介质及设备 | |
CN114168179A (zh) | 微服务管理方法、装置、计算机设备和存储介质 | |
CN114546588A (zh) | 任务的部署方法、装置、存储介质及电子装置 | |
CN112905306A (zh) | 多集群容器管理方法、装置、电子设备和存储介质 | |
CN112199200B (zh) | 资源调度方法、装置、计算机设备和存储介质 | |
EP4162649B1 (en) | Stable references for network function life cycle management automation | |
CN115357198B (zh) | 存储卷的挂载方法及装置、存储介质及电子设备 | |
CN115421847A (zh) | 支持多引擎的研发运维平台和cicd流水线的管理方法及设备 | |
CN115729590A (zh) | 服务部署方法、装置、设备和计算机可读存储介质 | |
CN112464596B (zh) | 回归测试方法、系统、设备及可读存储介质 | |
CN114662102A (zh) | 一种文件处理方法、装置及存储介质 | |
CN111767345B (zh) | 建模数据同步方法、装置、计算机设备及可读存储介质 | |
CN114721827A (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 |