CN112925612A - 一种基于Kubernetes的监控服务静态配置管理方法 - Google Patents
一种基于Kubernetes的监控服务静态配置管理方法 Download PDFInfo
- Publication number
- CN112925612A CN112925612A CN202110274812.5A CN202110274812A CN112925612A CN 112925612 A CN112925612 A CN 112925612A CN 202110274812 A CN202110274812 A CN 202110274812A CN 112925612 A CN112925612 A CN 112925612A
- Authority
- CN
- China
- Prior art keywords
- configuration
- control plane
- static
- monitoring
- kubernetes
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种基于Kubernetes的监控服务静态配置管理方法,涉及容器监控技术领域,包括:在Kubernetes集群中部署Prometheus server;在控制平面写入静态监控目标配置模板、告警规则配置模板;控制平面调用接口,获取当前Secret、ConfigMap内容、监控目标的变更信息;控制平面依据获取信息生成新的静态监控目标配置文件;控制平面备份当前Secret内容,并调用接口将新配置文件更新到Secret中;控制平面调用接口校验Secret的更新内容,根据校验结果,修改配置版本表的记录,并发送邮件通知运维人员或者执行下一步;控制平面基于监控信息生成新的告警规则配置,控制平面调用接口,确认告警规则配置更新成功。本发明可以有效减少Kubernetes集群中监控服务的人工维护工作,提高效率。
Description
技术领域
本发明涉及容器监控技术领域,具体的说是一种基于Kubernetes的监控服务静态配置管理方法。
背景技术
容器编排***Kubernetes被广泛应用于各类云计算服务,越来越多的应用以容器形式运行在云端节点。而作为一套完整的监控服务,Prometheus自带时序数据库、支持远程存储、实现了灵活的查询语言PromQL,且具备丰富的监控组件、良好的性能、活跃的社区等优势,已成为Kubernetes集群容器监控的首选。Prometheus为Kubernetes集群以及部署在集群内的应用提供了良好的监控与告警服务。
一方面,Kubernetes为部署在集群中的应用提供了方便快捷的扩缩容功能,而Kubernetes本身也有针对集群节点的扩缩容操作,这就要求监控服务Prometheus及时更新其配置文件,以适应监控目标的变更。在Prometheus的配置中,监控目标相关的配置内容包括静态监控模板和基于服务发现的动态监控目标,在具体的变更操作中,二者是不一样的。Prometheus支持多种服务发现机制,基于服务发现的配置可以根据筛选和过滤条件自适应地获取并更新监控目标,而静态配置需要人工手动修改配置文件,配置条目可能包括站点URL、IP地址、文件路径等。
另一方面,在Kubernetes集群中部署Prometheus时,相关的配置文件一般保存在Kubernetes的ConfigMap、Secret资源中,然后通过挂载操作,将这些资源中的配置内容写入容器中的文件。而配置文件包括监控目标配置、告警触发规则配置,一般地,对于不同类型的监控目标,在Prometheus server容器中其规则配置是分布在不同文件中的。另外,随着各类应用的不断发展壮大,Prometheus的监控目标越来越多,可能包含物理机、虚机、容器、网络、中间件服务、用户应用等,而在生产环境中,监控服务的稳定运行对服务至关重要,为保证监控服务的高稳定性,Prometheus的部署架构必须是高可用的,Prometheusserver以多个副本的方式部署,当监控数据量很大时,还需要对数据进行分片,以消除单个Prometheus server的负载瓶颈。这样的部署架构,大大增加了维护Prometheus配置的复杂度,但是,对于静态配置内容,人工维护往往会引入错误,而且人工维护效率低,不方便记录运维人员操作日志,不利于服务治理及应用业务的可持续发展。
发明内容
本发明针对目前技术发展的需求和不足之处,提供一种基于Kubernetes的监控服务静态配置管理方法。
本发明的一种基于Kubernetes的监控服务静态配置管理方法,解决上述技术问题采用的技术方案如下:
一种基于Kubernetes的监控服务静态配置管理方法,其实现过程包括:
步骤S1、在Kubernetes集群中以StatefulSet方式部署Prometheus server,将config-reloader容器以sidecar容器的形式部署至Prometheus server的Pod中;
步骤S2、在控制平面写入静态监控目标配置模板、告警规则配置模板;
步骤S3、控制平面调用Kubernetes APIServer接口,获取正在使用的Secret、ConfigMap内容,存入配置版本表中,并标记版本号、状态,随后通过轮询或监听服务发现***,获取到监控目标的变更信息,并写入数据库;
步骤S4、控制平面依据获取的监控目标信息,生成新的静态监控目标配置文件;
步骤S5、控制平面备份当前Secret内容,并调用Kubernetes APIServer接口,将新的静态监控目标配置文件更新到Secret中;
步骤S6、控制平面调用Prometheus配置校验接口,对Secret的更新内容进行校验,根据校验结果,修改配置版本表的记录,并发送邮件通知运维人员或者执行步骤S7,进行新配置文件的加载;
步骤S7、控制平面获取运维人员配置的监控告警信息,并结合告警规则模板文件,对配置值进行检查,以生成新的告警规则配置,新的告警规则配置挂载至Prometheusserver容器的配置目录下;
步骤S8、控制平面调用Prometheus配置热加载接口,确认告警规则配置更新成功。
进一步的,执行步骤S1时,还需要根据实际需求,规划selector规则,并以DaemonSet方式部署通用的节点级exporter,以SidecarSet方式部署通用的应用级exporter。
进一步的,执行步骤S1后,使用ConfigMap存储监控告警规则配置文件,使用Secret存储附加的静态监目标配置文件,并挂载至对应的Pod中,随后执行步骤S2。
进一步的,执行步骤S2时,静态监控目标配置模板以Prometheus主配置中的job为单位,告警规则配置模板与静态监控目标配置模板相对应,告警规则配置模板的内容采用yaml格式,存储在控制平面中。
进一步的,执行步骤S6,对Secret的更新内容进行校验时:
(a)若校验失败,则获取失败信息并更新到操作日志中,使用步骤5的备份文件回滚Secret/ConfigMap,修改配置版本表的记录,并发送邮件通知运维人员,流程结束;
(b)若校验成功,则调用Prometheus配置热加载接口,确认通过Secret挂载到Prometheus server容器中的新配置正确且立即生效,并修改配置版本表的记录,执行步骤S7,进行新配置文件的加载。
进一步的,步骤S7中所述新的告警规则配置通过ConfigMap挂载至Prometheusserver容器的配置目录下。
进一步的,执行步骤S7后,控制平面调用Kubernetes APIServer接口,首先备份当前ConfigMap内容,随后将规则配置文件名作为key、将文件内容作为value存入ConfigMap。
优选的,执行步骤S3时,通过控制平面修改当前配置版本表中记录的状态为不可修改。
本发明的一种基于Kubernetes的监控服务静态配置管理方法,与现有技术相比具有的有益效果是:
本发明采用容器监控服务Prometheus,利用Kubernetes多样化的容器部署及应用配置挂载方式,结合服务发现***,通过控制平面进行Prometheus静态配置的生成和分发操作,并利用Prometheus提供的配置校验和热加载接口,保障自动化配置管理功能的可靠性,从而有效减少Kubernetes集群中监控服务的人工维护工作,提高效率,保障监控服务的稳定性。
附图说明
附图1是本发明的方法实现原理图;
附图2是本发明的方法流程图。
具体实施方式
为使本发明的技术方案、解决的技术问题和技术效果更加清楚明白,以下结合具体实施例,对本发明的技术方案进行清楚、完整的描述。
实施例一:
结合附图1、2,本实施例提出一种基于Kubernetes的监控服务静态配置管理方法,其实现过程包括:
步骤S1、在Kubernetes集群中以StatefulSet方式部署Prometheus server,将config-reloader容器以sidecar容器的形式部署至Prometheus server的Pod中;同时,还根据实际需求,规划selector规则,并以DaemonSet方式部署通用的节点级exporter,以SidecarSet方式部署通用的应用级exporter。
使用ConfigMap存储监控告警规则配置文件,使用Secret存储附加的静态监目标配置文件,并挂载至对应的Pod中,
步骤S2、在控制平面写入静态监控目标配置模板、告警规则配置模板。静态监控目标配置模板以Prometheus主配置中的job为单位,告警规则配置模板与静态监控目标配置模板相对应,告警规则配置模板的内容采用yaml格式,存储在控制平面中。
步骤S3、控制平面调用Kubernetes APIServer接口,获取正在使用的Secret、ConfigMap内容,存入配置版本表中,并标记版本号、状态,随后通过轮询或监听服务发现***,获取到监控目标的变更信息,并写入数据库。
步骤S4、通过控制平面修改步骤S3中当前配置版本表中记录的状态为不可修改,并依据获取的监控目标信息,生成新的静态监控目标配置文件。
步骤S5、控制平面备份当前Secret内容,并调用Kubernetes APIServer接口,将新的静态监控目标配置文件更新到Secret中。
步骤S6、控制平面调用Prometheus配置校验接口,对Secret的更新内容进行校验:
(a)若校验失败,则获取失败信息并更新到操作日志中,使用步骤5的备份文件回滚Secret/ConfigMap,修改配置版本表的记录,并发送邮件通知运维人员,流程结束;
(b)若校验成功,则调用Prometheus配置热加载接口,确认通过Secret挂载到Prometheus server容器中的新配置正确且立即生效,并修改配置版本表的记录,执行步骤S7,进行新配置文件的加载。
步骤S7、控制平面获取运维人员配置的监控告警信息,并结合告警规则模板文件,对配置值进行检查,以生成新的告警规则配置,新的告警规则配置通过ConfigMap挂载至Prometheus server容器的配置目录下。
控制平面调用Kubernetes APIServer接口,首先备份当前ConfigMap内容,随后将规则配置文件名作为key、将文件内容作为value存入ConfigMap。
步骤S8、控制平面调用Prometheus配置热加载接口,确认告警规则配置更新成功。
综上可知,采用本发明的一种基于Kubernetes的监控服务静态配置管理方法,解决了监控服务Prometheus的静态配置需要人工维护的问题,实现了由控制平面结合服务发现机制自适应更新Prometheus静态监控目标及其告警规则配置的功能,并利用Prometheus的配置校验、热加载功能,保证自动更新配置操作的可靠性。
以上应用具体个例对本发明的原理及实施方式进行了详细阐述,这些实施例只是用于帮助理解本发明的核心技术内容。基于本发明的上述具体实施例,本技术领域的技术人员在不脱离本发明原理的前提下,对本发明所作出的任何改进和修饰,皆应落入本发明的专利保护范围。
Claims (8)
1.一种基于Kubernetes的监控服务静态配置管理方法,其特征在于,其实现过程包括:
步骤S1、在Kubernetes集群中以StatefulSet方式部署Prometheus server,将config-reloader容器以sidecar容器的形式部署至Prometheus server的Pod中;
步骤S2、在控制平面写入静态监控目标配置模板、告警规则配置模板;
步骤S3、控制平面调用Kubernetes APIServer接口,获取正在使用的Secret、ConfigMap内容,存入配置版本表中,并标记版本号、状态,随后通过轮询或监听服务发现***,获取到监控目标的变更信息,并写入数据库;
步骤S4、控制平面依据获取的监控目标信息,生成新的静态监控目标配置文件;
步骤S5、控制平面备份当前Secret内容,并调用Kubernetes APIServer接口,将新的静态监控目标配置文件更新到Secret中;
步骤S6、控制平面调用Prometheus配置校验接口,对Secret的更新内容进行校验,根据校验结果,修改配置版本表的记录,并发送邮件通知运维人员或者执行步骤S7,进行新配置文件的加载;
步骤S7、控制平面获取运维人员配置的监控告警信息,并结合告警规则模板文件,对配置值进行检查,以生成新的告警规则配置,新的告警规则配置挂载至Prometheus server容器的配置目录下;
步骤S8、控制平面调用Prometheus配置热加载接口,确认告警规则配置更新成功。
2.根据权利要求1所述的一种基于Kubernetes的监控服务静态配置管理方法,其特征在于,执行步骤S1时,还需要根据实际需求,规划selector规则,并以DaemonSet方式部署通用的节点级exporter,以SidecarSet方式部署通用的应用级exporter。
3.根据权利要求1所述的一种基于Kubernetes的监控服务静态配置管理方法,其特征在于,执行步骤S1后,使用ConfigMap存储监控告警规则配置文件,使用Secret存储附加的静态监目标配置文件,并挂载至对应的Pod中,随后执行步骤S2。
4.根据权利要求2所述的一种基于Kubernetes的监控服务静态配置管理方法,其特征在于,执行步骤S2时,静态监控目标配置模板以Prometheus主配置中的job为单位,告警规则配置模板与静态监控目标配置模板相对应,告警规则配置模板的内容采用yaml格式,存储在控制平面中。
5.根据权利要求1所述的一种基于Kubernetes的监控服务静态配置管理方法,其特征在于,执行步骤S6,对Secret的更新内容进行校验时:
(a)若校验失败,则获取失败信息并更新到操作日志中,使用步骤5的备份文件回滚Secret/ConfigMap,修改配置版本表的记录,并发送邮件通知运维人员,流程结束;
(b)若校验成功,则调用Prometheus配置热加载接口,确认通过Secret挂载到Prometheus server容器中的新配置正确且立即生效,并修改配置版本表的记录,执行步骤S7,进行新配置文件的加载。
6.根据权利要求5所述的一种基于Kubernetes的监控服务静态配置管理方法,其特征在于,步骤S7中所述新的告警规则配置通过ConfigMap挂载至Prometheus server容器的配置目录下。
7.根据权利要求6所述的一种基于Kubernetes的监控服务静态配置管理方法,其特征在于,执行步骤S7后,控制平面调用Kubernetes APIServer接口,首先备份当前ConfigMap内容,随后将规则配置文件名作为key、将文件内容作为value存入ConfigMap。
8.根据权利要求1所述的一种基于Kubernetes的监控服务静态配置管理方法,其特征在于,通过控制平面修改步骤S3中当前配置版本表中记录的状态为不可修改。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110274812.5A CN112925612A (zh) | 2021-03-15 | 2021-03-15 | 一种基于Kubernetes的监控服务静态配置管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110274812.5A CN112925612A (zh) | 2021-03-15 | 2021-03-15 | 一种基于Kubernetes的监控服务静态配置管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112925612A true CN112925612A (zh) | 2021-06-08 |
Family
ID=76174959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110274812.5A Pending CN112925612A (zh) | 2021-03-15 | 2021-03-15 | 一种基于Kubernetes的监控服务静态配置管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112925612A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116467139A (zh) * | 2023-03-27 | 2023-07-21 | 深圳市明源云科技有限公司 | ***告警重复率检测方法、电子设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111666189A (zh) * | 2020-06-12 | 2020-09-15 | 中信银行股份有限公司 | 一种声明式可视化配置Prometheus监控告警的方法和*** |
CN112256401A (zh) * | 2020-10-30 | 2021-01-22 | 浪潮云信息技术股份公司 | 基于Kubernetes环境下的Prometheus高可用***及实现方法 |
CN112328456A (zh) * | 2021-01-04 | 2021-02-05 | 北京电信易通信息技术股份有限公司 | 一种基于服务发现的集群资源监控*** |
-
2021
- 2021-03-15 CN CN202110274812.5A patent/CN112925612A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111666189A (zh) * | 2020-06-12 | 2020-09-15 | 中信银行股份有限公司 | 一种声明式可视化配置Prometheus监控告警的方法和*** |
CN112256401A (zh) * | 2020-10-30 | 2021-01-22 | 浪潮云信息技术股份公司 | 基于Kubernetes环境下的Prometheus高可用***及实现方法 |
CN112328456A (zh) * | 2021-01-04 | 2021-02-05 | 北京电信易通信息技术股份有限公司 | 一种基于服务发现的集群资源监控*** |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116467139A (zh) * | 2023-03-27 | 2023-07-21 | 深圳市明源云科技有限公司 | ***告警重复率检测方法、电子设备及可读存储介质 |
CN116467139B (zh) * | 2023-03-27 | 2024-06-07 | 深圳市明源云科技有限公司 | ***告警重复率检测方法、电子设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10642694B2 (en) | Monitoring containers in a distributed computing system | |
CN101964820B (zh) | 一种保持数据一致性的方法及*** | |
CN110012088B (zh) | 一种基于Kubernets的Redis主从集群自动化部署方案 | |
US20100241895A1 (en) | Method and apparatus for realizing application high availability | |
CN111143382B (zh) | 数据处理方法、***和计算机可读存储介质 | |
CN111045708B (zh) | 软件升级方法、电子设备和计算机可读存储介质 | |
US8612799B2 (en) | Method and apparatus of backing up subversion repository | |
CN112003728B (zh) | 一种基于Kubernetes集群的应用主备实现方法及装置 | |
CN113626286A (zh) | 多集群实例处理方法、装置、电子设备及存储介质 | |
CN114138754A (zh) | 基于Kubernetes平台的软件部署方法及装置 | |
US20120324436A1 (en) | Method of updating versioned software using a shared cache | |
CN112925612A (zh) | 一种基于Kubernetes的监控服务静态配置管理方法 | |
CN112181049B (zh) | 集群时间同步方法、装置、***、设备及可读存储介质 | |
CN113468143A (zh) | 数据迁移方法、***、计算设备及存储介质 | |
CN114500289B (zh) | 控制平面恢复方法、装置、控制节点及存储介质 | |
US20230090828A1 (en) | Framework for managing configurations of cloud computing resources | |
CN113934575A (zh) | 一种基于分布式拷贝的大数据备份***及方法 | |
CN113867955A (zh) | 一种服务发现方法、装置、设备及存储介质 | |
US20200401567A1 (en) | Object Storage System with Versioned Meta Objects | |
CN116760913B (zh) | k8s集群协议转换平台配置下发方法及*** | |
CN111756562B (zh) | 一种集群接管方法、***及相关组件 | |
CN111797062B (zh) | 数据处理方法、装置和分布式数据库*** | |
CN118034804A (zh) | 一种基于源生redis的高可用方法及*** | |
CN116483473A (zh) | 一种基于GlusterFS的存储插件方法和*** | |
CN116308639A (zh) | 一种分布式架构下高并发订单id设计方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210608 |