CN111752807A - 一种基于Kubernetes的资源监控方法 - Google Patents
一种基于Kubernetes的资源监控方法 Download PDFInfo
- Publication number
- CN111752807A CN111752807A CN202010616161.9A CN202010616161A CN111752807A CN 111752807 A CN111752807 A CN 111752807A CN 202010616161 A CN202010616161 A CN 202010616161A CN 111752807 A CN111752807 A CN 111752807A
- Authority
- CN
- China
- Prior art keywords
- cluster
- kubernetes
- data
- monitoring
- cloud
- 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
- 238000012544 monitoring process Methods 0.000 title claims abstract description 73
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000012806 monitoring device Methods 0.000 claims description 3
- 238000012423 maintenance Methods 0.000 abstract description 3
- 238000004519 manufacturing process Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010223 real-time analysis Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
Images
Classifications
-
- 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/301—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- 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/45591—Monitoring or debugging support
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于Kubernetes的资源监控方法,属于云平台管理技术领域,Kubernetes通过heapster收集node和pod的各项指标,获取数据后存储在InfluxDB中,通过Grafana将InfluxDB中的监控数据展示出来。本发明可以很好的完成云监控指标的制作,并为监控告警平台提供了根据不同状态进行告警的能力,运维人员在收到告警后可以根据告警内容进行迅速排查,避免不必要的损失。
Description
技术领域
本发明涉及云平台管理技术领域,具体地说是一种基于Kubernetes的资源监控方法。
背景技术
Kubernetes(k8s)是Google开源的容器集群管理系统。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。
Kubernetes是一个全新的基于容器技术的分布式架构领先方案,所有的应用程序在kubernetes中都是以资源的形式存在,而这些资源有时会因为网络、环境等因素变得不可用,因此需要能够实时监控这些资源,并在这些资源状态异常时发出告警,使运维人员在收到告警后进行排查避免不必要的损失。
发明内容
本发明的技术任务是针对以上不足之处,提供一种基于Kubernetes的资源监控方法,能够很好的完成云监控指标的制作,并为监控告警平台提供了根据不同状态进行告警的能力。
本发明解决其技术问题所采用的技术方案是:
一种基于Kubernetes的资源监控方法,Kubernetes通过heapster收集node和pod的各项指标,获取数据后存储在InfluxDB中,通过Grafana将InfluxDB中的监控数据展示出来。
该方法能够给基于Kubernetes的容器服务提供一种资源监控方案,通过这个方法产生的云监控数据可以实时监控到Kubernetes的资源状况,并通过Grafana展示出来。
优选的,集群管理程序ICE定时向云监控程序agent推送集群元数据;云监控程序agent定时从InfluxDB获取集群对应的监控数据;通过kafka将制作出的云监控指标推送到Grafana。
优选的,对于大量数据采用多个go协程的方式进行数据的获取与推送。InfluxDB是开源的时序数据库,使用go语言开发,特别适合用于处理和分析资源监控数据这种时序相关数据。
具体的,对于集群元数据,ICE提供api接口供agent程序定时调用,可获取到所有被管理的集群元数据;
进一步的,设置集群状态的缓存,每次接收到新的集群元数据后,将原有的缓存清空,将新的元数据添加到缓存中;启动定时任务,agent每隔固定时间更新缓存中的集群状态;
将制作成功的云监控指标推送到Grafana。
具体的,对于集群内的资源元数据,启动定时任务,agent每隔固定时间遍历获取缓存中的集群列表;
ICE收集各个集群Kubernetes-heapster的监控数据,推送到InfluxDB;
Agent从ICE获取集群信息,并从InfluxDB获取集群相关的监控数据,组装好后推送到Grafana展示。
优选的,所述推送到Grafana,
初始化kafka的Producer实例,建立与kafka的consumer之间的连接;
将云监控数据指标放入到producer的value中推送到Grafana。
优选的,将云监控程序agent做成docker镜像,部署为statefulset的形式,并配置对应的service为headless;
ICE管理程序定时向agent分发数据时,可以根据配置不同的service的headless,制定分发某一部分数据到指定的pod上,这样可以避免数据量过大,单个pod处理不过来的问题。
本发明还要求保护一种基于Kubernetes的资源监控装置,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行权利要求1至8任一所述的方法。
本发明还要求保护一种计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行权利要求1至8任一所述的方法。
本发明的一种基于Kubernetes的资源监控方法与现有技术相比,具有以下有益效果:
通过使用该方法,可以很好的完成云监控指标的制作,并为监控告警平台提供了根据不同状态进行告警的能力,运维人员在收到告警后可以根据告警内容进行迅速排查,避免不必要的损失。
附图说明
图1是本发明一个实施例提供的基于Kubernetes的资源监控方法的设计架构图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明。
本发明实施例提供一种基于Kubernetes的资源监控方法,Kubernetes通过heapster收集node和pod的各项指标,获取数据后存储在InfluxDB中,通过Grafana将InfluxDB中的监控数据展示出来。
该方法基于kubernetes实现cpu和内存资源监控,能够给基于Kubernetes的容器服务提供一种资源监控方案,通过这个方法产生的云监控数据可以实时监控到Kubernetes的资源状况,并通过Grafana展示出来。
Heapster是k8s监控和性能分析工具,天然支持k8s。当我们搭建好集群后通过heapster收集node和pod的cpu和内存的资源使用情况,并借助第三方工具influxdb和grafana实现对集群资源的监控。
InfluxDB是一个开源的时序数据库,使用GO语言开发,特别适合用于处理和分析资源监控数据这种时序相关数据。而InfluxDB自带的各种特殊函数如求标准差,随机取样数据,统计数据变化比等,使数据统计和实时分析变得十分方便。
Grafana是用于可视化大型测量数据的开源程序,他提供了强大和优雅的方式去创建、共享、浏览数据。
参考图1所示为该方法的设计架构图。
集群管理程序ICE定时向云监控程序agent推送集群元数据;
云监控程序agent定时从InfluxDB获取集群对应的监控数据;
通过kafka将制作出的云监控指标推送到Grafana。
其中,对于集群元数据,
(1)、ICE提供api接口供agent程序定时调用,可获取到所有被管理的集群元数据;
(2)、设置一个集群状态的缓存,每次接收到新的集群元数据后,将原有的缓存清空,将新的元数据添加到缓存中;
(3)、启动一个定时任务,agent每隔固定时间3分钟更新缓存中的集群状态;
(4)、将制作成功的云监控指标推送到Grafana。
对于集群内的资源元数据,
(1)、启动一个定时任务,agent每隔3分钟遍历获取缓存中的集群列表;
(2)、ICE收集各个集群Kubernetes-heapster的监控数据,推送到InfluxDB;
(3)、agent从ICE获取集群信息,并从InfluxDB获取集群相关的监控数据,组装好后推送到Grafana展示。
所述推送到Grafana,
(1)、初始化kafka的Producer实例,建立与kafka的consumer之间的连接;
(2)、将云监控数据指标放入到producer的value中推送到Grafana。
对于云监控指标制作程序高可用的实现,
(1)、将云监控程序agent做成docker镜像,部署为statefulset的形式,并配置对应的service为headless;
(2)、ICE管理程序定时向agent分发数据时,可以根据配置不同的service的headless,制定分发某一部分数据到指定的pod上,这样可以避免数据量过大,单个pod处理不过来的问题。
本方法使用定时任务推送和拉取云监控指数据,使用缓存保存集群元数据,对外暴露API接口供接收集群元数据;且大量数据采用多个go协程的方式进行数据的获取与推送。该方法采用kafka消息队列进行大量云监控指标的推送,并实现云监控程序的高可用部署。
通过该方法,可以很好的完成云监控指标的制作,并为监控告警平台提供了根据不同状态进行告警的能力。
本发明实施例还提供了一种基于Kubernetes的资源监控装置,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行本发明上述实施例中所述的一种基于Kubernetes的资源监控方法。
本发明实施例还提供了一种计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行本发明上述实施例中所述的一种基于Kubernetes的资源监控方法。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。
Claims (10)
1.一种基于Kubernetes的资源监控方法,其特征在于,Kubernetes通过heapster收集node和pod的各项指标,获取数据后存储在InfluxDB中,通过Grafana将InfluxDB中的监控数据展示出来。
2.根据权利要求1所述的一种基于Kubernetes的资源监控方法,其特征在于,集群管理程序ICE定时向云监控程序agent推送集群元数据;云监控程序agent定时从InfluxDB获取集群对应的监控数据;通过kafka将制作出的云监控指标推送到Grafana。
3.根据权利要求1或2所述的一种基于Kubernetes的资源监控方法,其特征在于,对于大量数据采用多个go协程的方式进行数据的获取与推送。
4.根据权利要求2所述的一种基于Kubernetes的资源监控方法,其特征在于,对于集群元数据,ICE提供api接口供agent程序定时调用,可获取到所有被管理的集群元数据。
5.根据权利要求4所述的一种基于Kubernetes的资源监控方法,其特征在于,设置集群状态的缓存,每次接收到新的集群元数据后,将原有的缓存清空,将新的元数据添加到缓存中;启动定时任务,agent每隔固定时间更新缓存中的集群状态;
将制作成功的云监控指标推送到Grafana。
6.根据权利要求2或5所述的一种基于Kubernetes的资源监控方法,其特征在于,对于集群内的资源元数据,启动定时任务,agent每隔固定时间遍历获取缓存中的集群列表;
ICE收集各个集群Kubernetes-heapster的监控数据,推送到InfluxDB;
Agent从ICE获取集群信息,并从InfluxDB获取集群相关的监控数据,组装好后推送到Grafana展示。
7.根据权利要求2所述的一种基于Kubernetes的资源监控方法,其特征在于,所述推送到Grafana,
初始化kafka的Producer实例,建立与kafka的consumer之间的连接;
将云监控数据指标放入到producer的value中推送到Grafana。
8.根据权利要求2所述的一种基于Kubernetes的资源监控方法,其特征在于,将云监控程序agent做成docker镜像,部署为statefulset的形式,并配置对应的service为headless;
ICE管理程序定时向agent分发数据时,根据配置不同的service的headless,制定分发某一部分数据到指定的pod上。
9.一种基于Kubernetes的资源监控装置,其特征在于,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行权利要求1至8任一所述的方法。
10.计算机可读介质,其特征在于,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行权利要求1至8任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010616161.9A CN111752807A (zh) | 2020-07-01 | 2020-07-01 | 一种基于Kubernetes的资源监控方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010616161.9A CN111752807A (zh) | 2020-07-01 | 2020-07-01 | 一种基于Kubernetes的资源监控方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111752807A true CN111752807A (zh) | 2020-10-09 |
Family
ID=72676810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010616161.9A Pending CN111752807A (zh) | 2020-07-01 | 2020-07-01 | 一种基于Kubernetes的资源监控方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111752807A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112448846A (zh) * | 2020-11-05 | 2021-03-05 | 北京浪潮数据技术有限公司 | 一种k8s集群的健康巡检方法、装置及设备 |
CN113065785A (zh) * | 2021-04-13 | 2021-07-02 | 国网江苏省电力有限公司信息通信分公司 | 一种电力物联管理平台动态资源扩展方法 |
CN113609139A (zh) * | 2021-09-30 | 2021-11-05 | 苏州浪潮智能科技有限公司 | 一种监控数据管理方法、装置及电子设备和存储介质 |
CN113708994A (zh) * | 2021-08-20 | 2021-11-26 | 浪潮云信息技术股份公司 | 一种基于Go语言的云物理主机和云服务器监控方法及系统 |
CN114301919A (zh) * | 2021-12-30 | 2022-04-08 | 百融云创科技股份有限公司 | 一种基于Kubernetes的ICE框架改进方法 |
WO2022134725A1 (zh) * | 2020-12-25 | 2022-06-30 | 苏州浪潮智能科技有限公司 | 一种大规模K8s集群监控的方法、装置、设备及可读介质 |
-
2020
- 2020-07-01 CN CN202010616161.9A patent/CN111752807A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112448846A (zh) * | 2020-11-05 | 2021-03-05 | 北京浪潮数据技术有限公司 | 一种k8s集群的健康巡检方法、装置及设备 |
WO2022134725A1 (zh) * | 2020-12-25 | 2022-06-30 | 苏州浪潮智能科技有限公司 | 一种大规模K8s集群监控的方法、装置、设备及可读介质 |
CN113065785A (zh) * | 2021-04-13 | 2021-07-02 | 国网江苏省电力有限公司信息通信分公司 | 一种电力物联管理平台动态资源扩展方法 |
CN113065785B (zh) * | 2021-04-13 | 2024-02-20 | 国网江苏省电力有限公司信息通信分公司 | 一种电力物联管理平台动态资源扩展方法 |
CN113708994A (zh) * | 2021-08-20 | 2021-11-26 | 浪潮云信息技术股份公司 | 一种基于Go语言的云物理主机和云服务器监控方法及系统 |
CN113609139A (zh) * | 2021-09-30 | 2021-11-05 | 苏州浪潮智能科技有限公司 | 一种监控数据管理方法、装置及电子设备和存储介质 |
CN114301919A (zh) * | 2021-12-30 | 2022-04-08 | 百融云创科技股份有限公司 | 一种基于Kubernetes的ICE框架改进方法 |
CN114301919B (zh) * | 2021-12-30 | 2024-04-05 | 百融云创科技股份有限公司 | 一种基于Kubernetes的ICE框架改进方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111752807A (zh) | 一种基于Kubernetes的资源监控方法 | |
CN105653425B (zh) | 基于复杂事件处理引擎的监控系统 | |
CN111294217B (zh) | 告警分析方法、装置、系统及存储介质 | |
US10491453B2 (en) | Correlating computing network events | |
CN109828886B (zh) | 一种容器云环境下的ci/cd监控方法和系统 | |
US10372572B1 (en) | Prediction model testing framework | |
JP5989194B1 (ja) | テスト管理システムおよびプログラム | |
CN109597764A (zh) | 一种目录配额的测试方法及相关装置 | |
CN111782901A (zh) | 数据采集方法以及装置 | |
CN114048090A (zh) | 基于k8s的容器云平台监控的方法、设备及存储介质 | |
CN111198902B (zh) | 元数据管理方法、装置、存储介质及电子设备 | |
CN113032281B (zh) | 一种代码覆盖率实时获取方法及装置 | |
CN112148616B (zh) | 一种性能测试管理平台 | |
CN110336889B (zh) | 一种数值天气预报模式运行智能监控平台和监控方法 | |
CN113342608A (zh) | 流式计算引擎任务的监控方法及装置 | |
CN110825466B (zh) | 一种程序卡顿的处理方法以及卡顿处理装置 | |
CN110245120B (zh) | 流式计算系统及流式计算系统的日志数据处理方法 | |
CN115809119A (zh) | 容器编排引擎的监控方法、系统及装置 | |
US11216352B2 (en) | Method for automatically analyzing bottleneck in real time and an apparatus for performing the method | |
CN112988828B (zh) | 消息推送方法及电子设备 | |
CN112800089B (zh) | 一种中间数据存储级别调整方法、存储介质及计算机设备 | |
CN114090386A (zh) | 一种监控Kubernetes运行的方法及系统 | |
CN113449166A (zh) | 数据采集方法、装置、设备及存储介质 | |
CN109144788B (zh) | 一种重建osd的方法、装置及系统 | |
CN113485891A (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 |