一种ZooKeeper容器化控制的方法、装置、存储介质及电子设备转让专利

申请号 : CN202010052733.5

文献号 : CN111277460A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 朱慧君

申请人 : 江苏满运软件科技有限公司

摘要 :

本申请实施例公开了一种ZooKeeper容器化控制的方法、装置、存储介质及电子设备。该方法包括:响应于配置项的创建请求,调用Kubernetes接口定义目标集群的配置项;通过预先设置的控制器根据所述目标集群的目标配置项创建ZooKeeper集群,并创建监控组件和告警组件;其中,所述ZooKeeper集群包括一个根节点和至少一个子节点;通过所述监控组件对ZooKeeper集群的各节点的运行状态进行监控,若监控到符合告警条件,则通过告警组件发出告警信息。通过运行本申请所提供的技术方案,可以实现对于ZooKeeper集群进行快速部署和动态监控的目的。

权利要求 :

1.一种ZooKeeper容器化控制的方法,其特征在于,包括:响应于配置项的创建请求,调用Kubernetes接口定义目标集群的配置项;

通过预先设置的控制器根据所述目标集群的目标配置项创建ZooKeeper集群,并创建监控组件和告警组件;其中,所述ZooKeeper集群包括一个根节点和至少一个子节点;

通过所述监控组件对ZooKeeper集群的各节点的运行状态进行监控,若监控到符合告警条件,则通过告警组件发出告警信息。

2.根据权利要求1所述的方法,其特征在于,在创建ZooKeeper集群之后,所述方法还包括:若检测到对ZooKeeper集群的配置项数量变更请求,则生成节点数量变更指令,以控制所述ZooKeeper集群的节点数量进行变更。

3.根据权利要求1所述的方法,其特征在于,在创建ZooKeeper集群之后,所述方法还包括:若检测到对ZooKeeper集群的配置项内容变更请求,则生成节点参数变更指令,以控制所述ZooKeeper集群的节点参数进行变更。

4.根据权利要求3所述的方法,其特征在于,所述节点参数包括该节点的内存使用量参数。

5.根据权利要求4所述的方法,其特征在于,生成节点参数变更指令,以控制所述ZooKeeper集群的节点参数进行变更,包括:生成节点参数变更指令,并控制所述ZooKeeper集群退出主流程;

更新所述ZooKeeper集群的目标配置项;

根据更新后的目标配置项逐一更新所述ZooKeeper集群中各子节点的参数,并在所有子节点的参数更新完成后,更新ZooKeeper集群中根节点的参数。

6.根据权利要求2所述的方法,其特征在于,生成节点数量变更指令,以控制所述ZooKeeper集群的节点数量进行变更,包括:生成节点数量变更指令,并控制所述ZooKeeper集群退出主流程;

更新所述ZooKeeper集群的目标配置项;

根据更新后的目标配置项对所述ZooKeeper集群的节点数量进行变更,并记录变更事件。

7.根据权利要求1所述的方法,其特征在于,所述方法还包括:若通过所述监控组件监控到ZooKeeper集群的节点数量增加,则将新增的节点加入到ZooKeeper集群的受监控节点中,并按照ZooKeeper集群增加后的节点数量运行主流程。

8.一种ZooKeeper容器化控制的装置,其特征在于,包括:配置项定义模块,用于响应于配置项的创建请求,调用Kubernetes接口定义目标集群的配置项;

集群创建模块,用于通过预先设置的控制器根据所述目标集群的目标配置项创建ZooKeeper集群,并创建监控组件和告警组件;其中,所述ZooKeeper集群包括一个根节点和至少一个子节点;

节点监控模块,用于通过所述监控组件对ZooKeeper集群的各节点的运行状态进行监控,若监控到符合告警条件,则通过告警组件发出告警信息。

9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一项所述的ZooKeeper容器化控制的方法。

10.一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7中任一项所述的ZooKeeper容器化控制的方法。

说明书 :

一种ZooKeeper容器化控制的方法、装置、存储介质及电子

设备

技术领域

[0001] 本申请实施例涉及互联网技术领域,尤其涉及一种ZooKeeper容器化控制的方法、装置、存储介质及电子设备。

背景技术

[0002] 随着科技水平的迅速发展,ZooKeeper的使用越来越广泛,作为开源的键值对数据库,现有的部署方式是通过Helm chart方式,通过定义多个的YAML文件,最终部署出可用的zookeeper集群。然而,这种部署方式需要调用Helm本身接口实现部署,部署完成之后Helm无法感知集群状态,以及集群发生故障之后无法及时修复等等一些问题。因此,一种能够对ZooKeeper进行准确的容器化控制方案亟待产生。

发明内容

[0003] 本申请实施例提供一种ZooKeeper容器化控制的方法、装置、存储介质及电子设备,以实现对于ZooKeeper集群进行快速部署和动态监控的目的。
[0004] 第一方面,本申请实施例提供了一种ZooKeeper容器化控制的方法,该方法包括:
[0005] 响应于配置项的创建请求,调用Kubernetes接口定义目标集群的配置项;
[0006] 通过预先设置的控制器根据所述目标集群的目标配置项创建ZooKeeper集群,并创建监控组件和告警组件;其中,所述ZooKeeper集群包括一个根节点和至少一个子节点;
[0007] 通过所述监控组件对ZooKeeper集群的各节点的运行状态进行监控,若监控到符合告警条件,则通过告警组件发出告警信息。
[0008] 可选的,在创建ZooKeeper集群之后,所述方法还包括:
[0009] 若检测到对ZooKeeper集群的配置项数量变更请求,则生成节点数量变更指令,以控制所述ZooKeeper集群的节点数量进行变更。
[0010] 可选的,在创建ZooKeeper集群之后,所述方法还包括:
[0011] 若检测到对ZooKeeper集群的配置项内容变更请求,则生成节点参数变更指令,以控制所述ZooKeeper集群的节点参数进行变更。
[0012] 可选的,所述节点参数包括该节点的内存使用量参数。
[0013] 可选的,生成节点参数变更指令,以控制所述ZooKeeper集群的节点参数进行变更,包括:
[0014] 生成节点参数变更指令,并控制所述ZooKeeper集群退出主流程;
[0015] 更新所述ZooKeeper集群的目标配置项;
[0016] 根据更新后的目标配置项逐一更新所述ZooKeeper集群中各子节点的参数,并在所有子节点的参数更新完成后,更新ZooKeeper集群中根节点的参数。
[0017] 可选的,生成节点数量变更指令,以控制所述ZooKeeper集群的节点数量进行变更,包括:
[0018] 生成节点数量变更指令,并控制所述ZooKeeper集群退出主流程;
[0019] 更新所述ZooKeeper集群的目标配置项;
[0020] 根据更新后的目标配置项对所述ZooKeeper集群的节点数量进行变更,并记录变更事件。
[0021] 可选的,所述方法还包括:
[0022] 若通过所述监控组件监控到ZooKeeper集群的节点数量增加,则将新增的节点加入到ZooKeeper集群的受监控节点中,并按照ZooKeeper集群增加后的节点数量运行主流程。
[0023] 第二方面,本申请实施例提供了一种ZooKeeper容器化控制的装置,该装置包括:
[0024] 配置项定义模块,用于响应于配置项的创建请求,调用Kubernetes接口定义目标集群的配置项;
[0025] 集群创建模块,用于通过预先设置的控制器根据所述目标集群的目标配置项创建ZooKeeper集群,并创建监控组件和告警组件;其中,所述ZooKeeper集群包括一个根节点和至少一个子节点;
[0026] 节点监控模块,用于通过所述监控组件对ZooKeeper集群的各节点的运行状态进行监控,若监控到符合告警条件,则通过告警组件发出告警信息。
[0027] 第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器运行时实现如本申请实施例所述的ZooKeeper容器化控制的方法。
[0028] 第四方面,本申请实施例提供了一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器运行所述计算机程序时实现如本申请实施例所述的ZooKeeper容器化控制的方法。
[0029] 本申请实施例所提供的技术方案,响应于配置项的创建请求,调用Kubernetes接口定义目标集群的配置项;通过预先设置的控制器根据所述目标集群的目标配置项创建ZooKeeper集群,并创建监控组件和告警组件;其中,所述ZooKeeper集群包括一个根节点和至少一个子节点;通过所述监控组件对ZooKeeper集群的各节点的运行状态进行监控,若监控到符合告警条件,则通过告警组件发出告警信息。通过采用本申请所提供的技术方案,可以实现对于ZooKeeper集群进行快速部署和动态监控的目的。

附图说明

[0030] 图1是本申请实施例一提供的ZooKeeper容器化控制的方法的流程图;
[0031] 图2是本申请实施例二提供的ZooKeeper容器化控制的装置的结构示意图;
[0032] 图3是本申请实施例四提供的一种电子设备的结构示意图。

具体实施方式

[0033] 下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
[0034] 在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
[0035] 实施例一
[0036] 图1是本申请实施例一提供的ZooKeeper容器化控制的方法的流程图,本实施例可适于ZooKeeper集群的创建于监督的情况,该方法可以由本申请实施例所提供的ZooKeeper容器化控制的装置运行,该装置可以由软件和/或硬件的方式来实现,并可集成于智能终端等电子设备中。
[0037] 如图1所示,所述ZooKeeper容器化控制的方法包括:
[0038] S110、响应于配置项的创建请求,调用Kubernetes接口定义目标集群的配置项。
[0039] 其中,配置项的创建请求可以是用户发出的,可以是基于用户在页面上的点击或者其他操作触发的请求。其中配置项可以是对ZooKeeper的信息进行配置的项数,例如对于一组数据,需要配置其尺寸参数和分辨率参数,则可以确定该组数据的配置项中包括两项配置,分别是内存和分辨率。
[0040] Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。调用Kubernetes接口定义目标集群的配置项,其中,Kubernetes所提供的信息可以是以资源的形式进行定义的,接口可以创建自定义资源,作为目标集群的配置项。例如创建一个包括尺寸和分辨率的配置项。
[0041] S120、通过预先设置的控制器根据所述目标集群的目标配置项创建ZooKeeper集群,并创建监控组件和告警组件;其中,所述ZooKeeper集群包括一个根节点和至少一个子节点。
[0042] 其中,控制器可以是预先设置的,用于创建ZooKeeper集群的控制组件。控制器可以根据所述目标集群的目标配置项创建ZooKeeper集群,其中,目标配置小可以是自定义的配置项的具体配置内容,例如尺寸可以配置为5.8英寸,或者6.1英寸,分辨率可以配置为1080P,或者720P,有了具体的配置参数之后,可以根据目标配置来实现ZooKeeper集群的创建。其中ZooKeeper集群可以是包括一个根节点和多个子节点的集群。
[0043] 本技术方案中,在创建ZooKeeper集群的过程中,可以同步创建监控组件和告警组件。其中监控组件可以是基于监控策略创建的,告警组件可以是基于告警策略创建的。
[0044] S130、通过所述监控组件对ZooKeeper集群的各节点的运行状态进行监控,若监控到符合告警条件,则通过告警组件发出告警信息。
[0045] 其中,可以通过所述监控组件对ZooKeeper集群的各节点,此处包括根节点和所有的子节点,进行运行状态的监控,若监控到符合告警条件,则通过告警组件发出告警信息。例如检测到其中某一个子节点存在宕机事件,或者根节点的运行所需要的内存不足,则可以生成相应的告警信息。
[0046] 本申请实施例所提供的技术方案,响应于配置项的创建请求,调用Kubernetes接口定义目标集群的配置项;通过预先设置的控制器根据所述目标集群的目标配置项创建ZooKeeper集群,并创建监控组件和告警组件;其中,所述ZooKeeper集群包括一个根节点和至少一个子节点;通过所述监控组件对ZooKeeper集群的各节点的运行状态进行监控,若监控到符合告警条件,则通过告警组件发出告警信息。通过采用本申请所提供的技术方案,可以实现对于ZooKeeper集群进行快速部署和动态监控的目的。
[0047] 在上述技术方案的基础上,可选的,在创建ZooKeeper集群之后,所述方法还包括:若检测到对ZooKeeper集群的配置项数量变更请求,则生成节点数量变更指令,以控制所述ZooKeeper集群的节点数量进行变更。
[0048] 其中,可以在创建ZooKeeper集群之后,检测到用户需要对该ZooKeeper集群的配置项数量进行调整,例如增加或者减少,例如原来的配置项数仅为两项,即尺寸和分辨率,而现在用户需要增加材质配置项,例如是包括LED和LCD两种。则在这种情况下,用户可以在Kubernetes进行相应的操作,来对ZooKeeper集群的配置项进行增加或者减少。则可以根据用户的操作,生成节点数量变更指令,以控制所述ZooKeeper集群的节点数量进行变更。
[0049] 具体的,生成节点数量变更指令,以控制所述ZooKeeper集群的节点数量进行变更,包括:生成节点数量变更指令,并控制所述ZooKeeper集群退出主流程;更新所述ZooKeeper集群的目标配置项;根据更新后的目标配置项对所述ZooKeeper集群的节点数量进行变更,并记录变更事件。
[0050] 具体的,可以包括以下流程:
[0051] 更新Zookeeper CR中spec.cluster.nodeCount配置。
[0052] 触发operator主流程,判断期望副本数大于实际副本数继续流程,否则退出主流程。
[0053] 更新Zookeeper集群events,提交两种event:
[0054] Zookeeper upscale from 3to 4.
[0055] Zookeeper Statefulset%s already update.
[0056] 更新Zookeeper集群StatefulSet资源,StatefulSet控制器将会新建节点,Zookeeper将新建节点加入集群中,数据将会自动做同步。
[0057] Reconfig模块将从集群中添加或者剔除节点。
[0058] 本技术方案通过这样的设置,可以在Zookeeper集群需要扩缩容时,更新创建的自定义资源,控制器将自动实现扩缩容,从而实现快速并便捷的对Zookeeper集群的控制。
[0059] 在上述各技术方案的基础上,可选的,在创建ZooKeeper集群之后,所述方法还包括:若检测到对ZooKeeper集群的配置项内容变更请求,则生成节点参数变更指令,以控制所述ZooKeeper集群的节点参数进行变更。
[0060] 在本技术方案中,所述节点参数包括该节点的内存使用量参数。具体的,可以是为每个节点提供的容器的使用权限。例如在容器中,某一个节点允许使用的内存为256Mb,如果需要对其进行调整,调整为512Mb,则可以进行内存使用量参数的调整。
[0061] 在上述各技术方案的基础上,可选的,生成节点参数变更指令,以控制所述ZooKeeper集群的节点参数进行变更,包括:生成节点参数变更指令,并控制所述ZooKeeper集群退出主流程;更新所述ZooKeeper集群的目标配置项;根据更新后的目标配置项逐一更新所述ZooKeeper集群中各子节点的参数,并在所有子节点的参数更新完成后,更新ZooKeeper集群中根节点的参数。
[0062] 其中,对子节点进行逐一更新,并在所有子节点更新之后,再对根节点进行参数更新。具体的,扩充节点资源可以执行如下操作:
[0063] 更新Zookeeper CR中spec.node.resources配置。
[0064] 如果Zookeeper节点数与期望节点数不一致,退出主流程,直到节点数一致,所有pod全部ready。
[0065] 通过节点数量检查之后,更新StatefulSet资源,由于我们这边StatefulSet设置的rollingupdate策略为OnDelete,即更新StatefulSet配置之后,StatefulSet将不会主动重启节点以完成升级,需要我们自己手动去重启节点。
[0066] 获取当前集群中节点角色,将leader节点放到最后重启,尽量减少集群不可用时间。
[0067] operator比对StatefulSet和pod的resourceVersion值,如果不一致将节点加入到需要重启节点列表中。
[0068] operator执行对节点如下检查项:
[0069] 当前重启中对节点是否超过MaxUnavailable值,目前MaxUnavailable值默认为1。
[0070] 跳过节点状态为Terminating的节点。
[0071] 从重启节点中取一个节点,调用k8s接口,执行重启操作。
[0072] 第一个节点重启完成之后,将requeue主流程,继续其他节点重启。
[0073] 所有节点全部重启完成,滚动升级成功。
[0074] 本技术方案通过这样的设置,可以在用户需要调整资源,更新创建的自定义资源,控制器将自动滚动升级节点。
[0075] 在上述各技术方案的基础上,可选的,所述方法还包括:若通过所述监控组件监控到ZooKeeper集群的节点数量增加,则将新增的节点加入到ZooKeeper集群的受监控节点中,并按照ZooKeeper集群增加后的节点数量运行主流程。其中,可以在将新增节点加入到集群之后,对ZooKeeper集群根据增加节点后的节点数量来运行主流程。这样可以保证资源的合理分配,并且实现快速的对ZooKeeper集群的节点数量进行调整。控制器可以保证滚动升级期间业务可用性。
[0076] 为了能够让本领域技术人员更加清楚的了解本方案,本申请还提供了了一种具体的实施方式。
[0077] 一、容器分类。
[0078] InitContainer:
[0079] 配置文件初始化容器,主要用于ZooKeeper config文件复制到工作区域。
[0080] Container:
[0081] 主进程容器;
[0082] 监控容器。
[0083] 配置文件初始化容器。
[0084] zoo.cfg.dynamic,这个文件同样以configmap方式挂入主容器,主要用于ZooKeeper节点发现和注册,下面将详细介绍下这个ZooKeeper 3.5之后的特性。
[0085] 更新目录权限。
[0086] 设置data和logs目录的权限,确保ZooKeeper能够正常启动。
[0087] 主进程容器。
[0088] 环境变量。
[0089] POD_IP、POD_NAME,主要将node的pod ip和名称传到pod内部,方便容器内部调用。
[0090] ZOOKEEPER_SERVER_HEAP,这变量为限制ZooKeeper启动heapsize大小,由控制器根据request内部大小设置,ZooKeeper启动会读取这个变量。
[0091] Readiness探针。
[0092] 主要通过ZooKeeper客户端端口传入ruok命令,检查返回码,返回imok认为z k node已经准备完毕,ZooKeeper node将会被更新到上面说到的zoo.cfg.dynamic文件,ZooKeeper cluster将会自动发现该节点。
[0093] 监控容器。
[0094] exporter跟随主进程一同启动,后续会介绍如何注册到prometheus target以及告警策略。
[0095] 访问控制。
[0096] 暴露端口。
[0097] 9114,该端口为exporter服务端口,通过servicemonitor注册prometheus target时将通过labels匹配该端口。
[0098] 1988,该端口为ZooKeeper-agent服务端口,通过该接口控制器可以查询到当前节点运行状态,后面会详解介绍。
[0099] 2181,该端口为ZooKeeper客户端端口,该端口创建k8s headless模式svc,方便客户端一次获取所有节点ip。
[0100] 3888,选举leader使用。
[0101] 2888,集群内机器通讯使用(Leader监听此端口)。
[0102] 暴露方式。
[0103] 这里主要k8s service的两种模式:Headless和Cluster。
[0104] Headless Services,简单而言就是,每次访问headless service,kube-dns将返回后端一组ip,在我们这种场景下,即会返回ZooKeeper所有节点ip给客户端,再由客户端自己判断通过哪个ip访问ZooKeeper集群。
[0105] Cluster,这种模式是默认配置,创建此类service之后,将分配一个cluster ip,这个ip类似vip,每次访问这个service name,kube-dns将会随机返回一个节点ip。
[0106] 控制器在创建service的时候,上面两种都会创建,headless类型主要给k8s内部应用访问,cluster类型主要通过NodePort暴露给外部应用访问。
[0107] 数据存储。
[0108] PersistentVolume。
[0109] StorageClass PROVISIONER:diskplugin.csi.alibabacloud.com,阿里云CSI插件实现了Kubernetes平台使用阿里云云存储卷的生命周期管理,支持动态创建、挂载、使用云数据卷。当前的CSI实现基于K8S 1.14以上的版本。
[0110] 云盘CSI插件支持动态创建云盘数据卷、挂载数据卷。云盘是一种块存储类型,只能同时被一个负载使用(ReadWriteOnce)。
[0111] 控制器会将crd中配置的pvc信息,透传到sts中去,并挂载到ZooKeeper data目录下。
[0112] 监控。
[0113] 监控注册。
[0114] ServiceMonitor。
[0115] selector.matchLabels,这里通过zookeeper:zookeeper-sample来匹配service。
[0116] port:http-metrics,这里通过匹配service中到port name来注册到prometheus target。
[0117] 控制器调用prometheus-operator client完成servicemonior资源的创建,实现新建zookeeper集群自动注册到prometheus的功能。
[0118] 告警配置。
[0119] 控制器调用prometheus-operator client完成prometheusrule资源的创建,实现将告警策略自动注册到prometheus。
[0120] 告警策略中的dingtalkRobot标签,主要用来重定向告警信息到指定钉钉群中,这里可以添加多个钉钉群机器人。
[0121] 本技术方案,用户调用kubernetes api创建自定义资源,zookeeper控制器快速创建集群,同时自动创建监控和告警策略。如果需要扩缩容时,更新创建的自定义资源,控制器将自动实现扩缩容。如果需要调整资源,更新创建的自定义资源,控制器将自动滚动升级节点。通过这样的设置,可以实现控制器可以直接调用Kubernetes api接口实现操作,无需调用其他组件。控制器直接获取kubernetes events和zookeeper集群状态,可以获取实时状态。控制器可以感知节点事件,可以针对特定事件进行处理。控制器可以掌握扩缩容进度。控制器可以保证滚动升级期间业务可用性。
[0122] 实施例二
[0123] 图2是本申请实施例二提供的ZooKeeper容器化控制的装置的结构示意图。如图2所示,所述ZooKeeper容器化控制的装置,包括:
[0124] 配置项定义模块210,用于响应于配置项的创建请求,调用Kubernetes接口定义目标集群的配置项;
[0125] 集群创建模块220,用于通过预先设置的控制器根据所述目标集群的目标配置项创建ZooKeeper集群,并创建监控组件和告警组件;其中,所述ZooKeeper集群包括一个根节点和至少一个子节点;
[0126] 节点监控模块230,用于通过所述监控组件对ZooKeeper集群的各节点的运行状态进行监控,若监控到符合告警条件,则通过告警组件发出告警信息。
[0127] 本申请实施例所提供的技术方案,响应于配置项的创建请求,调用Kubernetes接口定义目标集群的配置项;通过预先设置的控制器根据所述目标集群的目标配置项创建ZooKeeper集群,并创建监控组件和告警组件;其中,所述ZooKeeper集群包括一个根节点和至少一个子节点;通过所述监控组件对ZooKeeper集群的各节点的运行状态进行监控,若监控到符合告警条件,则通过告警组件发出告警信息。通过采用本申请所提供的技术方案,可以实现对于ZooKeeper集群进行快速部署和动态监控的目的。
[0128] 上述产品可运行本申请任意实施例所提供的方法,具备运行方法相应的功能模块和有益效果。
[0129] 实施例三
[0130] 本申请实施例还提供一种包含计算机可运行指令的存储介质,所述计算机可运行指令在由计算机处理器运行时用于运行一种ZooKeeper容器化控制的方法,该方法包括:
[0131] 响应于配置项的创建请求,调用Kubernetes接口定义目标集群的配置项;
[0132] 通过预先设置的控制器根据所述目标集群的目标配置项创建ZooKeeper集群,并创建监控组件和告警组件;其中,所述ZooKeeper集群包括一个根节点和至少一个子节点;
[0133] 通过所述监控组件对ZooKeeper集群的各节点的运行状态进行监控,若监控到符合告警条件,则通过告警组件发出告警信息。
[0134] 存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDR RAM、SRAM、EDO RAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被运行的计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到计算机系统。第二计算机系统可以提供程序指令给计算机用于运行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器运行的程序指令(例如具体实现为计算机程序)。
[0135] 当然,本申请实施例所提供的一种包含计算机可运行指令的存储介质,其计算机可运行指令不限于如上所述的ZooKeeper容器化控制的操作,还可以运行本申请任意实施例所提供的ZooKeeper容器化控制的方法中的相关操作。
[0136] 实施例四
[0137] 本申请实施例提供了一种电子设备,该电子设备中可集成本申请实施例提供的ZooKeeper容器化控制的装置。图3是本申请实施例四提供的一种电子设备的结构示意图。如图3所示,本实施例提供了一种电子设备300,其包括:一个或多个处理器320;存储装置
310,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器320运行,使得所述一个或多个处理器320实现本申请实施例所提供的ZooKeeper容器化控制的方法,该方法包括:
[0138] 响应于配置项的创建请求,调用Kubernetes接口定义目标集群的配置项;
[0139] 通过预先设置的控制器根据所述目标集群的目标配置项创建ZooKeeper集群,并创建监控组件和告警组件;其中,所述ZooKeeper集群包括一个根节点和至少一个子节点;
[0140] 通过所述监控组件对ZooKeeper集群的各节点的运行状态进行监控,若监控到符合告警条件,则通过告警组件发出告警信息。
[0141] 图3显示的电子设备300仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
[0142] 如图3所示,该电子设备300包括处理器320、存储装置310、输入装置330和输出装置340;电子设备中处理器320的数量可以是一个或多个,图3中以一个处理器320为例;电子设备中的处理器320、存储装置310、输入装置330和输出装置340可以通过总线或其他方式连接,图3中以通过总线350连接为例。
[0143] 存储装置310作为一种计算机可读存储介质,可用于存储软件程序、计算机可运行程序以及模块单元,如本申请实施例中的ZooKeeper容器化控制的方法对应的程序指令。
[0144] 存储装置310可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置310可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置310可进一步包括相对于处理器320远程设置的存储器,这些远程存储器可以通过网络连接。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0145] 输入装置330可用于接收输入的数字、字符信息或语音信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置340可包括显示屏、扬声器等设备。
[0146] 本申请实施例提供的电子设备,可以实现对于ZooKeeper集群进行快速部署和动态监控的目的。
[0147] 上述实施例中提供的ZooKeeper容器化控制的装置、存储介质及电子设备可运行本申请任意实施例所提供的ZooKeeper容器化控制的方法,具备运行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的ZooKeeper容器化控制的方法。
[0148] 注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。