CN116431275B - 容忍配置方法、装置、计算机设备和存储介质 - Google Patents
容忍配置方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN116431275B CN116431275B CN202310129524.XA CN202310129524A CN116431275B CN 116431275 B CN116431275 B CN 116431275B CN 202310129524 A CN202310129524 A CN 202310129524A CN 116431275 B CN116431275 B CN 116431275B
- Authority
- CN
- China
- Prior art keywords
- container set
- creation request
- target
- tolerance
- preset
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000012544 monitoring process Methods 0.000 claims abstract description 96
- 238000004590 computer program Methods 0.000 claims abstract description 23
- 238000012545 processing Methods 0.000 claims description 32
- 230000006870 function Effects 0.000 claims description 12
- 238000012795 verification Methods 0.000 claims description 11
- 238000002347 injection Methods 0.000 claims description 3
- 239000007924 injection Substances 0.000 claims description 3
- 230000002045 lasting effect Effects 0.000 claims description 3
- 238000007726 management method Methods 0.000 claims description 3
- 230000002085 persistent effect Effects 0.000 description 22
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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/45562—Creating, deleting, cloning virtual machine instances
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种容忍配置方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:获取监听组件发送的针对容器集合的创建请求;所述创建请求通过持续交付平台生成;在检测到所述创建请求中的标签信息与预设标签信息相匹配的情况下,为所述创建请求对应的容器集合配置容忍,得到目标容器集合;将所述目标容器集合发送至所述监听组件,以供所述监听组件将所述目标容器集合返回至所述持续交付平台。采用本方法能够为通过Zadig创建的容器集合配置容忍。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种容忍配置方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
Kubernetes也称为K8S,是用于自动部署、扩缩和管理容器化应用程序的开源系统,Kubernetes将组成应用程序的容器组合成逻辑单元,以便于管理和服务发现。Zadig是基于Kubernetes自主设计、研发的云原生持续交付(Continuous Delivery)平台。开发人员可以使用Zadig来动态构建Kubernetes的Pod(容器集合)。
在实际应用场景中,开发人员通常会为执行特殊任务的节点设置污点,以便仅有设置了tolerations(容忍)的容器集合才能调度到执行特殊任务的节点,避免其他的容器集合调度到这类执行特殊任务的节点。
目前,通过Zadig拉起创建容器集合的服务,并不具备配置容忍的地方,导致其生成的容器集合无法正常调度设置了污点的节点。
发明内容
基于此,有必要针对上述技术问题,提供一种容忍配置方法、装置、计算机设备、计算机可读存储介质和计算机程序产品,以至少能够实现为通过Zadig创建的容器集合配置容忍。
第一方面,本申请提供了一种容忍配置方法。所述方法包括:
获取监听组件发送的针对容器集合的创建请求;所述创建请求通过持续交付平台生成;
在检测到所述创建请求中的标签信息与预设标签信息相匹配的情况下,为所述创建请求对应的容器集合配置容忍,得到目标容器集合;
将所述目标容器集合发送至所述监听组件,以供所述监听组件将所述目标容器集合返回至所述持续交付平台。
在其中一个实施例中,在检测到所述创建请求中的标签信息与预设标签信息相匹配的情况下,为所述创建请求对应的容器集合配置容忍,得到目标容器集合,包括:
调用云原生处理指令,对所述创建请求进行解析,得到所述创建请求对应的容器集合;
调用校验函数,对所述容器集合进行校验,得到所述创建请求中的标签信息;
在检测到所述标签信息与所述预设标签信息相匹配的情况下,为所述容器集合配置容忍,得到所述目标容器集合。
在其中一个实施例中,为所述容器集合配置容忍,得到所述目标容器集合,包括:
获取预设配置信息;
调用所述云原生处理指令按照所述预设配置信息,为所述容器集合配置容忍,得到所述目标容器集合;
其中,所述云原生处理指令为HandleMutate指令。
在其中一个实施例中,获取监听组件发送的针对容器集合的创建请求,包括:
在所述监听组件监听到目标监听事件情况下,所述监听组件接收所述持续交付平台发送的所述目标监听事件关联的创建请求;
接收所述监听组件根据预设命名空间发送的所述创建请求;所述预设命名空间用于确定所述创建请求的发送对象。
在其中一个实施例中,在获取监听组件发送的针对容器集合的创建请求之前,还包括:
将容器集合的创建事件定义为所述监听事件,并将所述监听事件绑定至所述监听组件;
获取所述预设命名空间,并将所述预设命名空间发送至所述监听组件。
在其中一个实施例中,将所述目标容器集合发送至所述监听组件,以供所述监听组件将所述目标容器集合返回至所述持续交付平台,包括:
将所述目标容器集合发送至所述监听组件,以通过所述监听组件,将所述目标容器集合持久化存储至存储系统;
在接收到所述存储系统基于所述目标容器集合返回的存储结果的情况下,通过所述监听组件将所述目标容器集合发送至所述持续交付平台。
第二方面,本申请还提供了一种容忍配置装置。所述装置包括:
请求获取模块,用于获取监听组件发送的针对容器集合的创建请求;所述创建请求通过持续交付平台生成;
容忍配置模块,用于在检测到所述创建请求中的标签信息与预设标签信息相匹配的情况下,为所述创建请求对应的容器集合配置容忍,得到目标容器集合;
容器返回模块,用于将所述目标容器集合发送至所述监听组件,以供所述监听组件将所述目标容器集合返回至所述持续交付平台。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取监听组件发送的针对容器集合的创建请求;所述创建请求通过持续交付平台生成;
在检测到所述创建请求中的标签信息与预设标签信息相匹配的情况下,为所述创建请求对应的容器集合配置容忍,得到目标容器集合;
将所述目标容器集合发送至所述监听组件,以供所述监听组件将所述目标容器集合返回至所述持续交付平台。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取监听组件发送的针对容器集合的创建请求;所述创建请求通过持续交付平台生成;
在检测到所述创建请求中的标签信息与预设标签信息相匹配的情况下,为所述创建请求对应的容器集合配置容忍,得到目标容器集合;
将所述目标容器集合发送至所述监听组件,以供所述监听组件将所述目标容器集合返回至所述持续交付平台。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取监听组件发送的针对容器集合的创建请求;所述创建请求通过持续交付平台生成;
在检测到所述创建请求中的标签信息与预设标签信息相匹配的情况下,为所述创建请求对应的容器集合配置容忍,得到目标容器集合;
将所述目标容器集合发送至所述监听组件,以供所述监听组件将所述目标容器集合返回至所述持续交付平台。
上述容忍配置方法、装置、计算机设备、存储介质和计算机程序产品,获取监听组件发送的针对容器集合的创建请求;创建请求通过持续交付平台生成;在检测到创建请求中的标签信息与预设标签信息相匹配的情况下,为创建请求对应的容器集合配置容忍,得到目标容器集合;将目标容器集合发送至监听组件,以供监听组件将目标容器集合返回至持续交付平台。采用本方法,能够通过创建请求中的标签信息来为创建请求对应的容器集合配置容忍,使得处理得到的目标容器集合能够调度设置有污点的节点,解决了现有持续交付平台无法为创建的容器集合配置容忍的问题。
附图说明
图1为一个实施例中容忍配置方法的应用环境图;
图2为一个实施例中容忍配置方法的流程示意图;
图3为一个实施例中得到目标容器集合步骤的流程示意图;
图4为另一个实施例中容忍配置方法的流程示意图;
图5为又一个实施例中容忍配置方法的时序图;
图6为一个实施例中MutatingWebhook服务配置容忍的时序图;
图7为一个实施例中容忍配置装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的容忍配置方法,可以应用于如图1所示的应用环境中。其中,持续交付平台101通过网络与监听组件102进行通信,监听组件102通过网络与Webhook服务103进行通信。数据存储系统可以存储监听组件102需要处理的数据。数据存储系统可以集成在本地的存储介质上,也可以放在云上或其他网络服务器上。Webhook服务103获取监听组件102发送的针对容器集合的创建请求;其中,创建请求通过持续交付平台101生成;在检测到创建请求中的标签信息与预设标签信息相匹配的情况下,Webhook服务103为创建请求对应的容器集合配置容忍,得到目标容器集合;Webhook服务103将目标容器集合发送至监听组件102,以供监听组件102将目标容器集合返回至持续交付平台101。其中,持续交付平台101是指基于云原生、用于提供软件生命周期全环节服务的平台;持续交付平台101可以但不限于是各种云原生持续交付(Continuous Delivery)平台,云原生持续交付平台可以是基于Kubernetes(K8S)设计、研发得到的Zadig平台。监听组件102是指K8S中能够监听、观察云原生持续交付平台的组件,监听组件可以是K8S中的ApiServer组件。Webhook服务103是指用于审查资源对象的web服务;Webhook服务103可以是修改型服务,即MutatingWebhook,还可以通过MutatingAdmissionWebhook控制器来注册、管理并调用MutatingWebhook服务。其中,MutatingWebhookConfiguration是一种系统内置且默认启用的准入控制器文件,MutatingWebhookConfiguration中描述了Webhook服务的服务地址、关心的资源对象类型等信息。
在一个实施例中,如图2所示,提供了一种容忍配置方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤S201,获取监听组件发送的针对容器集合的创建请求;创建请求通过持续交付平台生成。
其中,容器集合是指Kubernetes中的Pod,容器集合是Kubernetes中创建和管理的、最小的可部署的计算单元。容器集合可以看做是一个或多个容器,这些容器共享存储、网络。
具体地,持续交付平台Zadig发起针对容器集合Pod的创建请求;监听组件(例如ApiSever组件)接收持续交付平台Zadig发起的创建请求,然后对接收的创建请求的权限等信息进行校验,在检测到创建请求校验通过后,ApiSever组件将创建请求发送至MutatingWebhook服务;MutatingWebhook服务接收ApiSever组件发送的创建请求。
步骤S202,在检测到创建请求中的标签信息与预设标签信息相匹配的情况下,为创建请求对应的容器集合配置容忍,得到目标容器集合。
其中,目标容器集合是指完成容忍等内容的配置之后得到的容器集合,即除了可以给容器集合配置容忍之外,还可以在MutatingWebhook服务中自定义需要配置的内容,以便通过MutatingWebhook服务为容器进行配置。
其中,容忍(tolerations)是容器集合(Pod)的一种属性,只有设置有容忍的容器集合才能够调度到设置有污点(Taint)的节点,而未设置容忍的容器集合是无法调度到设置有污点的节点。可以理解的是,容忍在Kubernetes的容器集合调度中具有重要作用,然而,目前的云原生可持续交付平台Zadig并不具备为创建的容器集合配置容忍的功能,需要开发人员单独编辑代码来为容器集合配置容忍,导致容忍配置的效率较低。
具体地,MutatingWebhook服务从接收到的创建请求中提取出标签信息,并将提取出的标签信息与预设标签信息进行匹配;若检测到该标签信息与预设标签信息相匹配,则MutatingWebhook服务获取创建请求对应的Pod,并为该Pod配置容忍,进而MutatingWebhook服务得到目标容器集合;若检测到该标签信息与预设标签信息不匹配,则可以将创建请求对应的Pod返回至持续交付平台。
进一步地,还可以预先定义除了容忍之外的内容(标记为预定义内容),并为其设置对应的预设标签信息,在检测到创建请求中的标签信息与预设标签信息相匹配的情况下,通过MutatingWebhook服务为创建请求对应的Pod配置预定义内容,从而得到目标容器集合,从而能够通过灵活定义需要配置在Pod中的内容,并通过MutatingWebhook服务来实现配置过程,而无需依赖于持续交付平台实现配置过程。
步骤S203,将目标容器集合发送至监听组件,以供监听组件将目标容器集合返回至持续交付平台。
具体地,在得到目标容器集合之后,MutatingWebhook服务将目标容器集合发送至ApiSever组件,通过ApiSever组件将目标容器集合转发至持续交付平台。若检测到该标签信息与预设标签信息不匹配,则MutatingWebhook服务将创建请求对应的Pod发送至ApiSever组件,通过ApiSever组件将目标容器集合转发至持续交付平台。
上述容忍配置方法中,获取监听组件发送的针对容器集合的创建请求;创建请求通过持续交付平台生成;在检测到创建请求中的标签信息与预设标签信息相匹配的情况下,为创建请求对应的容器集合配置容忍,得到目标容器集合;将目标容器集合发送至监听组件,以供监听组件将目标容器集合返回至持续交付平台。采用本方法,能够通过创建请求中的标签信息来为创建请求对应的容器集合配置容忍,使得处理得到的目标容器集合能够调度设置有污点的节点,解决了现有持续交付平台无法为创建的容器集合配置容忍的问题。
在一个实施例中,如图3所示,上述步骤S202,在检测到创建请求中的标签信息与预设标签信息相匹配的情况下,为创建请求对应的容器集合配置容忍,得到目标容器集合,具体包括如下内容:
步骤S301,调用云原生处理指令,对创建请求进行解析,得到创建请求对应的容器集合。
步骤S302,调用校验函数,对容器集合进行校验,得到创建请求中的标签信息。
步骤S303,在检测到标签信息与预设标签信息相匹配的情况下,为容器集合配置容忍,得到目标容器集合。
其中,云原生处理指令是指云原生技术中能够解析请求的指令程序。云原生处理指令可以是HandleMutate指令。云原生技术是基于分布部署和统一运管的分布式云,以容器、微服务、DevOps等技术为基础建立的一套云技术产品体系。
其中,标签信息用于指示是否需要为容器集合配置容忍等内容。
具体地,MutatingWebhook服务调用HandleMutate指令读取创建请求并对该创建请求进行解析,得到该创建请求对应的Pod。MutatingWebhook服务调用校验函数,对Pod进行校验,以得到创建请求中的标签信息;MutatingWebhook服务获取预设标签信息,并将标签信息与预设标签信息进行匹配;若检测到标签信息与预设标签信息相匹配,则MutatingWebhook服务在Pod中配置容忍,可以是在Pod中设置容忍参数,进而MutatingWebhook服务得到目标容器集合。
在实际应用中,标签信息还可以指示Pod的类型等详细信息,例如将预设标签信息设置为buildv2类型的容器,若MutatingWebhook服务解析得到的Pod为buildv2类型的容器,则MutatingWebhook服务在该Pod中配置容忍。
本实施例中,通过调用云原生处理指令,对创建请求进行解析,得到创建请求对应的容器集合;进而调用校验函数,对容器集合进行校验,得到创建请求中的标签信息;在检测到标签信息与预设标签信息相匹配的情况下,为容器集合配置容忍,得到目标容器集合,实现了对容器集合的容忍配置,使得处理得到的目标容器集合能够调度设置有污点的节点,从而有效解决了现有持续交付平台无法为创建的容器集合配置容忍的问题。
在一个实施例中,上述步骤S303,为容器集合配置容忍,得到目标容器集合,具体包括如下内容:获取预设配置信息;调用云原生处理指令按照预设配置信息,为容器集合配置容忍,得到目标容器集合;其中,云原生处理指令为HandleMutate指令。
其中,预设配置信息用于指示需配置内容的详细信息。
具体地,在配置容忍时,MutatingWebhook服务先获取预设配置信息,其中,预设配置信息可以是预设的容忍参数,也可以是其他需要配置的内容;然后MutatingWebhook服务调用HandleMutate指令,依据预设配置信息来为Pod配置容忍,则MutatingWebhook服务得到目标容器集合。
在本实施例中,通过MutatingWebhook服务调用云原生处理指令,来按照获取的预设配置信息为容器集合配置容忍,从而得到目标容器集合,能够通过MutatingWebhook服务调用云原生处理指令来实现对云原生持续交付平台Zadig的容器集合的容忍配置,而无需依赖于Zadig实现配置过程,解决了当前Zadig无法配置容忍的缺陷。
在一个实施例中,上述步骤S201,获取监听组件发送的针对容器集合的创建请求,具体包括如下内容:在监听组件监听到目标监听事件情况下,监听组件接收持续交付平台发送的目标监听事件关联的创建请求;接收监听组件根据预设命名空间发送的创建请求;预设命名空间用于确定创建请求的发送对象。
其中,预设命名空间用于指定MutatingWebhook服务所在的命名空间(namespace)。命名空间用于组织和重用代码,不仅能够避免变量名称重复产生冲突,还能够标记请求/访问路径。
具体地,MutatingWebhook服务通过ApiServer组件对Zadig平台进行监听,当ApiServer组件监听到Zadig平台触发目标监听事件时,ApiServer组件获取Zadig平台发起的目标监听事件关联的创建请求;进而ApiSever组件根据预设命名空间(namespace),确定出创建请求的发送对象为MutatingWebhook服务,则ApiServer组件根据MutatingWebhook服务的请求路径,将创建请求转发至MutatingWebhook服务。
在本实施例中,在监听组件监听到目标监听事件情况下,监听组件接收持续交付平台发送的目标监听事件关联的创建请求;进而Webhook服务接收监听组件根据预设命名空间发送的创建请求,以便Webhook服务在后续步骤中为创建请求对应的容器集合配置容忍。
在一个实施例中,在上述步骤S201,获取监听组件发送的针对容器集合的创建请求之前,还包括:将容器集合的创建事件定义为目标监听事件,并将目标监听事件绑定至监听组件;获取预设命名空间,并将预设命名空间发送至监听组件。
其中,目标监听事件是指需要执行监听操作的任务事件。目标监听事件可以包括多个,例如第一目标监听事件和第二目标监听事件等。
具体地,可以通过配置MutatingAdmissionWebhook来确定需要处理的资源,包括将Pod创建事件定义配置为第一目标监听事件,将标记了injection/type:zadig-builder标签的命名空间(或预设命名空间)定义配置为第二目标监听事件,将监听到的创建请求配置为转发至MutatingWebhook服务;进而将目标监听事件绑定至ApiServer组件,以便通过ApiServer组件来监听Zadig平台。此外,还可以指定MutatingWebhook服务所在的预设命名空间以及请求路径,并将预设命名空间和请求路径发送至监听组件,以便ApiServer组件能够根据预设命名空间和请求路径将创建请求转发至MutatingWebhook服务。
可以理解的是,配置MutatingAdmissionWebhook是确保Webhook服务能够正常运行的先决条件。
在本实施例中,将容器集合的创建事件定义为目标监听事件,并将目标监听事件绑定至监听组件,以及获取预设命名空间,并将预设命名空间发送至监听组件,实现了对MutatingAdmissionWebhook的预先配置,使得ApiServer组件和MutatingWebhook服务能够按照预先配置的内容执行容忍配置操作,从而能够实现为Zadig平台创建的容器集合进行容忍配置的技术效果。
在一个实施例中,上述步骤S203,将目标容器集合发送至监听组件,以供监听组件将目标容器集合返回至持续交付平台,具体包括如下:将目标容器集合发送至监听组件,以通过监听组件,将目标容器集合持久化存储至存储系统;在接收到存储系统基于目标容器集合返回的存储结果的情况下,通过监听组件将目标容器集合发送至持续交付平台。
其中,存储系统是指用于解决集群管理系统中分布式并发控制以及配置文件的存储与分发问题的系统,能够为Webhook提供有效的数据存储服务。存储系统可以是分布式ETCD存储系统。
具体地,ApiServer组件接收到MutatingWebhook服务发送的目标容器集合之后,还可以将目标容器集合发送至ETCD存储系统,进而ETCD存储系统对目标容器集合进行持久化存储,可以是对目标容器集合进行内存文件映射,从而得到复制的目标容器集合,ETCD存储系统存储复制的目标容器集合。ETCD存储系统将目标容器集合和/或目标容器集合的存储结果返回至ApiServer组件,ApiServer组件将目标容器集合转发至持续交付平台。
在本实施例中,通过监听组件,将目标容器集合持久化存储至存储系统,进而将目标容器集合发送至持续交付平台,通过存储系统进行目标容器集合持久化,来记录容器集合的变化过程,还能够保持服务中数据的强一致性,为服务的可靠运行和数据安全提供了有效保障。
在一个实施例中,如图4所示,提供了另一种容忍配置方法,以该方法应用于图1中的Webhook服务为例进行说明,包括以下步骤:
步骤S401,将容器集合的创建事件定义为监听事件,并将监听事件绑定至监听组件;获取预设命名空间,并将预设命名空间发送至监听组件。
步骤S402,在监听组件监听到目标监听事件情况下,监听组件接收持续交付平台发送的目标监听事件关联的创建请求。
步骤S403,接收监听组件根据预设命名空间发送的创建请求;预设命名空间用于确定创建请求的发送对象。
步骤S404,调用云原生处理指令,对创建请求进行解析,得到创建请求对应的容器集合。
步骤S405,调用校验函数,对容器集合进行校验,得到创建请求中的标签信息。
步骤S406,在检测到标签信息与预设标签信息相匹配的情况下,获取预设配置信息;调用云原生处理指令按照预设配置信息,为容器集合配置容忍,得到目标容器集合。
步骤S407,将目标容器集合发送至监听组件,以通过监听组件,将目标容器集合持久化存储至存储系统。
步骤S408,在接收到存储系统基于目标容器集合返回的存储结果的情况下,通过监听组件将目标容器集合发送至持续交付平台。
上述容忍配置方法,能够实现以下有益效果:能够通过创建请求中的标签信息来为创建请求对应的容器集合配置容忍,使得处理得到的目标容器集合能够调度设置有污点的节点,解决了现有持续交付平台无法为创建的容器集合配置容忍的问题。
为了更清晰阐明本公开实施例提供的容忍配置方法,以下以一个具体的实施例对上述容忍配置方法进行具体说明。提供了又一种容忍配置方法,可以应用于图1中的Webhook服务,图5为容忍配置方法的时序图,具体包括如下内容:
步骤S501,云原生持续交付平台(Zadig)发起创建Pod请求。
步骤S502,监听组件(ApiServer)接收到该创建Pod请求,并对该创建Pod请求进行权限等信息的校验,校验通过后将创建Pod请求发送到MutatingWebhook服务。
步骤S503,图6为MutatingWebhook服务配置容忍的时序图,如图6所示,Webhook服务(MutatingWebhook)通过gin路由接收到创建Pod请求后,调用HandleMutate处理函数进行处理,即HandleMutate处理函数先读取创建Pod请求并进行解析;解析后调用校验函数来检测创建Pod请求是否包含标签为buildv2的容器;进而MutatingWebhook服务根据创建Pod请求的检测结果来选择执行步骤S503-1或S503-2。
步骤S503-1,若检测结果为包含标签为buildv2的容器,则MutatingWebhook服务为该标签为buildv2的容器配置容忍,得到目标容器集合,通过gin路由将目标容器集合返回至ApiServer组件。
步骤S503-2,若检测结果为不包含标签为buildv2的容器,MutatingWebhook服务无需为容器集合的容器配置容忍,直接将容器集合返回至ApiServer组件。
步骤S504,ApiServer将接收到的Pod(目标容器集合或容器集合)持久化到ETCD存储系统中。
步骤S505,存储系统(ETCD)将目标容器集合和/或目标容器集合的存储结果返回至ApiServer组件。
步骤S506,ApiServer组件将Pod(目标容器集合或容器集合)转发至Zadig平台。
在本实施例中,能够通过MutatingWebhook服务调用云原生处理指令来实现对云原生持续交付平台Zadig的容器集合的容忍配置,而无需依赖于Zadig实现配置过程,解决了当前Zadig无法配置容忍的缺陷。除了配置容忍以外,还能够灵活定义需要配置在Pod中的内容,并通过MutatingWebhook服务来实现配置过程,而无需依赖于第三方平台实现配置过程。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的容忍配置方法的容忍配置装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个容忍配置装置实施例中的具体限定可以参见上文中对于容忍配置方法的限定,在此不再赘述。
在一个实施例中,如图7所示,提供了一种容忍配置装置700,包括:请求获取模块701、容忍配置模块702和容器返回模块703,其中:
请求获取模块701,用于获取监听组件发送的针对容器集合的创建请求;创建请求通过持续交付平台生成。
容忍配置模块702,用于在检测到创建请求中的标签信息与预设标签信息相匹配的情况下,为创建请求对应的容器集合配置容忍,得到目标容器集合。
容器返回模块703,用于将目标容器集合发送至监听组件,以供监听组件将目标容器集合返回至持续交付平台。
在一个实施例中,容忍配置模块702,还用于调用云原生处理指令,对创建请求进行解析,得到创建请求对应的容器集合;调用校验函数,对容器集合进行校验,得到创建请求中的标签信息;在检测到标签信息与预设标签信息相匹配的情况下,为容器集合配置容忍,得到目标容器集合。
在一个实施例中,容忍配置装置700还包括容忍注入模块,用于获取预设配置信息;调用云原生处理指令按照预设配置信息,为容器集合配置容忍,得到目标容器集合;其中,云原生处理指令为HandleMutate指令。
在一个实施例中,请求获取模块701,还用于在监听组件监听到目标监听事件情况下,监听组件接收持续交付平台发送的目标监听事件关联的创建请求;接收监听组件根据预设命名空间发送的创建请求;预设命名空间用于确定创建请求的发送对象。
在一个实施例中,容忍配置装置700还包括事件定义模块,用于将容器集合的创建事件定义为监听事件,并将监听事件绑定至监听组件;获取预设命名空间,并将预设命名空间发送至监听组件。
在一个实施例中,容器返回模块703,还用于将目标容器集合发送至监听组件,以通过监听组件,将目标容器集合持久化存储至存储系统;在接收到存储系统基于目标容器集合返回的存储结果的情况下,通过监听组件将目标容器集合发送至持续交付平台。
上述容忍配置装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储容器集合、预设标签信息和目标容器集合等数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种容忍配置方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(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.一种容忍配置方法,其特征在于,所述方法包括:
当监听组件监听到持续交付平台触发针对容器集合的创建事件时,获取所述监听组件发送的针对容器集合的创建请求;所述创建请求通过所述持续交付平台生成;
在检测到所述创建请求中的标签信息与预设标签信息相匹配的情况下,为所述创建请求对应的容器集合配置容忍,得到目标容器集合;
将所述目标容器集合发送至所述监听组件,以通过所述监听组件,将所述目标容器集合持久化存储至存储系统;
在接收到所述存储系统基于所述目标容器集合返回的存储结果的情况下,通过所述监听组件将所述目标容器集合返回至所述持续交付平台。
2.根据权利要求1所述的方法,其特征在于,所述在检测到所述创建请求中的标签信息与预设标签信息相匹配的情况下,为所述创建请求对应的容器集合配置容忍,得到目标容器集合,包括:
调用云原生处理指令,对所述创建请求进行解析,得到所述创建请求对应的容器集合;
调用校验函数,对所述容器集合进行校验,得到所述创建请求中的标签信息;
在检测到所述标签信息与所述预设标签信息相匹配的情况下,为所述容器集合配置容忍,得到所述目标容器集合。
3.根据权利要求2所述的方法,其特征在于,所述为所述容器集合配置容忍,得到所述目标容器集合,包括:
获取预设配置信息;
调用所述云原生处理指令按照所述预设配置信息,为所述容器集合配置容忍,得到所述目标容器集合;
其中,所述云原生处理指令为HandleMutate指令。
4.根据权利要求1所述的方法,其特征在于,所述获取所述监听组件发送的针对容器集合的创建请求,包括:
在所述监听组件监听到目标监听事件情况下,所述监听组件接收所述持续交付平台发送的所述目标监听事件关联的创建请求;
接收所述监听组件根据预设命名空间发送的所述创建请求;所述预设命名空间用于确定所述创建请求的发送对象。
5.根据权利要求4所述的方法,其特征在于,在获取监听组件发送的针对容器集合的创建请求之前,还包括:
将容器集合的创建事件定义为所述目标监听事件,并将所述目标监听事件绑定至所述监听组件;
获取所述预设命名空间,并将所述预设命名空间发送至所述监听组件。
6.一种容忍配置装置,其特征在于,所述装置包括:
请求获取模块,用于当监听组件监听到持续交付平台触发针对容器集合的创建事件时,获取所述监听组件发送的针对容器集合的创建请求;所述创建请求通过所述持续交付平台生成;
容忍配置模块,用于在检测到所述创建请求中的标签信息与预设标签信息相匹配的情况下,为所述创建请求对应的容器集合配置容忍,得到目标容器集合;
容器返回模块,用于将所述目标容器集合发送至所述监听组件,以通过所述监听组件,将所述目标容器集合持久化存储至存储系统;在接收到所述存储系统基于所述目标容器集合返回的存储结果的情况下,通过所述监听组件将所述目标容器集合返回至所述持续交付平台。
7.根据权利要求6所述的装置,其特征在于,所述容忍配置模块,还用于调用云原生处理指令,对所述创建请求进行解析,得到所述创建请求对应的容器集合;调用校验函数,对所述容器集合进行校验,得到所述创建请求中的标签信息;在检测到所述标签信息与所述预设标签信息相匹配的情况下,为所述容器集合配置容忍,得到所述目标容器集合。
8.根据权利要求7所述的装置,其特征在于,所述容忍配置装置还包括容忍注入模块,用于获取预设配置信息;调用所述云原生处理指令按照所述预设配置信息,为所述容器集合配置容忍,得到所述目标容器集合;其中,所述云原生处理指令为HandleMutate指令。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310129524.XA CN116431275B (zh) | 2023-02-16 | 2023-02-16 | 容忍配置方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310129524.XA CN116431275B (zh) | 2023-02-16 | 2023-02-16 | 容忍配置方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116431275A CN116431275A (zh) | 2023-07-14 |
CN116431275B true CN116431275B (zh) | 2024-01-19 |
Family
ID=87084408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310129524.XA Active CN116431275B (zh) | 2023-02-16 | 2023-02-16 | 容忍配置方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116431275B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10255147B2 (en) * | 2016-04-14 | 2019-04-09 | Vmware, Inc. | Fault tolerance for containers in a virtualized computing environment |
CN112965786A (zh) * | 2021-03-10 | 2021-06-15 | 神州数码融信云技术服务有限公司 | 一种基于容器化的持续集成和持续交付方法及装置 |
CN113313353A (zh) * | 2021-04-26 | 2021-08-27 | 新华三大数据技术有限公司 | 一种持续交付流水线管理方法及装置 |
CN113778500A (zh) * | 2021-09-26 | 2021-12-10 | 广域铭岛数字科技有限公司 | 一种基于DevOps的软件开发生命周期管理平台 |
CN114489934A (zh) * | 2021-12-29 | 2022-05-13 | 北京航天智造科技发展有限公司 | 一种基于容器的持续交付方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11899570B2 (en) * | 2019-12-12 | 2024-02-13 | Cognizant Technology Solutions India Pvt. Ltd. | System and method for optimizing assessment and implementation of microservices code for cloud platforms |
-
2023
- 2023-02-16 CN CN202310129524.XA patent/CN116431275B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10255147B2 (en) * | 2016-04-14 | 2019-04-09 | Vmware, Inc. | Fault tolerance for containers in a virtualized computing environment |
CN112965786A (zh) * | 2021-03-10 | 2021-06-15 | 神州数码融信云技术服务有限公司 | 一种基于容器化的持续集成和持续交付方法及装置 |
CN113313353A (zh) * | 2021-04-26 | 2021-08-27 | 新华三大数据技术有限公司 | 一种持续交付流水线管理方法及装置 |
CN113778500A (zh) * | 2021-09-26 | 2021-12-10 | 广域铭岛数字科技有限公司 | 一种基于DevOps的软件开发生命周期管理平台 |
CN114489934A (zh) * | 2021-12-29 | 2022-05-13 | 北京航天智造科技发展有限公司 | 一种基于容器的持续交付方法和装置 |
Non-Patent Citations (2)
Title |
---|
基于Kubernetes容器集群环境的持续交付平台;韩东;软件导刊;第19卷(第10期);200-204 * |
基于容器调度的数据服务质量保障方法研究及实现;王鑫浩;中国优秀硕士学位论文全文数据库信息科技辑(月刊)(第01期);I139-341 * |
Also Published As
Publication number | Publication date |
---|---|
CN116431275A (zh) | 2023-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108804618B (zh) | 数据库配置方法、装置、计算机设备和存储介质 | |
CN108959385B (zh) | 数据库部署方法、装置、计算机设备和存储介质 | |
CN110764700B (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
CN110601880B (zh) | 一种云平台、业务处理方法、命令接口及计算机设备 | |
CN104125197A (zh) | 一种安全基线系统及其实现安全检查的方法 | |
CN109460252B (zh) | 基于git的配置文件处理方法、装置和计算机设备 | |
CN111818175B (zh) | 企业服务总线配置文件生成方法、装置、设备和存储介质 | |
CN113672353B (zh) | 一种基于容器的任务执行方法及装置 | |
CN109254765B (zh) | 定时任务管理方法、装置、计算机设备及存储介质 | |
CN112882846A (zh) | 消息队列的数据处理方法、装置、计算机设备和存储介质 | |
CN110531984B (zh) | 代码编译方法、装置、系统、计算机设备和存储介质 | |
CN112866319B (zh) | 日志数据处理方法、系统和存储介质 | |
CN113377499B (zh) | 一种虚拟机管理方法、装置、设备及可读存储介质 | |
US20210216381A1 (en) | Dynamic management method for menu, server and system | |
CN113792008A (zh) | 网络拓扑结构的获取方法、装置、电子设备及存储介质 | |
CN114172785A (zh) | 告警信息处理方法、装置、设备和存储介质 | |
CN116431275B (zh) | 容忍配置方法、装置、计算机设备和存储介质 | |
CN116302433A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN111459907B (zh) | 通过模型配置主数据的方法、系统及存储介质 | |
CN112860412B (zh) | 业务数据处理方法、装置、电子设备及存储介质 | |
US11360785B2 (en) | Execution path determination in a distributed environment | |
CN113608831A (zh) | 一种插件实例管理方法、系统、存储介质及设备 | |
CN114095257B (zh) | 安全策略调整方法、装置、通信设备和存储介质 | |
CN115827392B (zh) | 一种分布式系统的监控方法、装置和系统 | |
CN113014411B (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 |