prometheus学习笔记之cAdvisor

一、cAdvisor简介

监控Pod指标数据需要使⽤cadvisor, cadvisor由⾕歌开源, cadvisor不仅可以搜集⼀台机器上所有运⾏的容器信息,还提供基础查询界⾯和http接⼝,⽅便其他组件如Prometheus进⾏数据抓取cAdvisor可以对节点机器上的资源及容器进⾏实时监控和性能数据采集,包括CPU使⽤情况、内存使⽤情况、⽹络吞吐量及⽂件系统使⽤情况。

二、DaemonSet部署cAdvisor

1.准备清单文档

清单文件参考:https://github.com/google/cadvisor/tree/master/deploy/kubernetes/base

清单文件使用了kustomize配置,我这省略了,配置文件如下

apiVersion: v1
kind: Namespace
metadata:name: cadvisor #自定义了名称空间,按需修改
---
apiVersion: apps/v1 # for Kubernetes versions before 1.9.0 use apps/v1beta2
kind: DaemonSet
metadata:name: cadvisornamespace: cadvisorannotations:seccomp.security.alpha.kubernetes.io/pod: 'docker/default'
spec:selector:matchLabels:name: cadvisortemplate:metadata:labels:name: cadvisorspec:tolerations:    #污点容忍,忽略master的NoSchedule,具体污点可以通过descript命令查看- effect: NoSchedulekey: node-role.kubernetes.io/control-plane #你的污点未必和我一致,请确认hostNetwork: truecontainers:- name: cadvisorimage: gcr.io/cadvisor/cadvisor:v0.39.3  #默认国内无法下载,需要自行解决resources:requests:memory: 400Micpu: 400mlimits:memory: 2000Micpu: 800msecurityContext:privileged: true #需要开启特权模式volumeMounts: #删除readOnly挂载选项- name: rootfsmountPath: /rootfs- name: var-runmountPath: /var/run- name: sysmountPath: /sys- name: dockermountPath: /var/lib/dockerports:- name: httpcontainerPort: 8080hostPort: 8080 #如果不指定则和容器的port保持一致,看实际情况修改protocol: TCPvolumes:- name: rootfshostPath:path: /- name: var-runhostPath:path: /var/run- name: syshostPath:path: /sys- name: dockerhostPath:path: /var/lib/containerd/ #应为我的runc用的containerd,如果是docker,改成/var/lib/docker即可

2.应用清单配置

kubectl apply -f daemonset.yaml
kubectl get pods -n cadvisor
NAME             READY   STATUS    RESTARTS   AGE
cadvisor-5d2wq   1/1     Running   0          5m
cadvisor-lgb2b   1/1     Running   0          5m
cadvisor-wsvh7   1/1     Running   0          5mnetstat -tnlp|grep 8080 #与清单的hostPort保持一致

3.访问web界面验证

访问集群节点的8080端口

查看 metrics 接口

三、cadvisor常用指标数据及示例

常用示例

1)获取容器CPU使用率
sum(irate(container_cpu_usage_seconds_total{image!=""}[1m])) without (cpu)(2)查询容器内存使用量(单位:字节)
container_memory_usage_bytes{image!=""}(3)查询容器网络接收量(速率)(单位:字节/秒)
sum(rate(container_network_receive_bytes_total{image!=""}[1m])) without(interface)(4)容器网络传输量 字节/秒
sum(rate(container_network_transmit_bytes_total{image!=""}[1m])) without(interface)(5)容器文件系统读取速率 字节/秒
sum(rate(container_fs_reads_bytes_total{image!=""}[1m])) without (device)(6)容器文件系统写入速率 字节/秒
sum(rate(container_fs_writes_bytes_total{image!=""}[1m])) without (device)(7)容器网络接收的字节数(1分钟内),根据名称查询 name=~".+"
sum(rate(container_network_receive_bytes_total{name=~".+"}[1m])) by (name)(8)容器网络传输的字节数(1分钟内),根据名称查询 name=~".+"
sum(rate(container_network_transmit_bytes_total{name=~".+"}[1m])) by (name)(9)所用容器system cpu的累计使用时间(1min内)
sum(rate(container_cpu_system_seconds_total[1m]))(10)每个容器system cpu的使用时间(1min内)
sum(irate(container_cpu_system_seconds_total{image!=""}[1m])) without (cpu)(11)每个容器的cpu使用率
sum(rate(container_cpu_usage_seconds_total{name=~".+"}[1m])) by (name) * 10012)总容器的cpu使用率
sum(sum(rate(container_cpu_usage_seconds_total{name=~".+"}[1m])) by (name) * 100)

四、配置prometheus采集cadvisor

1.配置prometheus

vim /usr/local/prometheus/prometheus.yml #在文件最后添加一个job- job_name: "cadvisor"static_configs: #改成你集群的节点IP和cadvisor的端口- targets:  ["192.168.100.131:8080","192.168.100.132:8080","192.168.100.133:8080"]curl -X POST http://127.0.0.1:9090/-/reload  #如果没有配置热更新则需要重启

2.prometheus验证cadvisor数据

五、grafana配置 模板监控pod

1.创建新的dashboard

2.导入对应的模板,这来使用的模板ID为14282

3.查看dashboard数据

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/788653.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国产化适配——人大金仓V8R6(1)

本文主要记录kingbase安装及存储过程修改相关内容,或有错漏,请指正。 原数据库:Mysql8.0.31 现数据库:KingbaseES V008R006C008M001B0030 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit 一、kingbase安装1.安装前准备 1.1查看…

南沙区信奥赛CSP-J/S 陈老师解题:1350:【例4-11】最短网络(agrinet)

​【题目描述】农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场。当然,他需要你的帮助。约翰已经给他的农场安排了一条高速的网络线路,他想把这条线路共享给其他农场。为了用最小的消费,他想铺设最短的光纤去连接所有的农场。你…

从零开始带你玩转 AI 变现公开课

在这个数字化时代,AI技术正以前所未有的速度改变着我们的创作与变现方式。小红书,作为年轻人喜爱的社交电商平台,更是为创作者们提供了广阔的舞台。但如何在小红书上利用AI技术实现内容创作与收益转化的双赢?我们的公开课将为你一一揭晓答案! 主课程亮点:掌握DALLE模型文…

C++基础/C++中的多态(关于虚...)

C++中的多态(关于虚...) 1.前置基础知识 1.1对象是如何存储在内存中的 #include <iostream> #include <string>class Animal { private:string name;int age;public:Animal(std::string name, int age) : name(name), age(age) {};~Animal();virtual void eat() …

算法与数据结构——哈希算法

哈希算法 前面介绍了哈希表的工作原理和哈希冲突的处理方法。然而无论是开放寻址还是链式地址,它们只能保证可以在发生冲突时正常工作,而无法减少哈希冲突的发生。 如果哈希冲突过于频繁,哈希表的性能则会急剧劣化。如下图所示,对于链式哈希表,理想情况下键值对均匀分布在…

Proxyless的多活流量和微服务治理

1. 引言 1.1 项目的背景及意义 在当今的微服务架构中,应用程序通常被拆分成多个独立的服务,这些服务通过网络进行通信。这种架构的优势在于可以提高系统的可扩展性和灵活性,但也带来了新的挑战,比如:服务间通信的复杂性:不同服务之间需要进行可靠的通信,处理失败重试、负…

报表融合大屏,做不一样的财务分析!

冷冰冰的数据如何让人眼前一亮? 千篇一律的表格如何让数据可视化? ...... 赶快丢掉那些传统的表格工具吧!!!现在我们都用更智能的工具来做报表了!财务报表是什么? 财务报表是企业财务状况、经营成果及现金流量的综合反映,通过表格、图表等形式,系统地展示了企业在一定…

Cloudflare Workers 每日免费限制 超出流量自动关闭 - 失败模式 改为 失败时自动关闭(阻止)

cloudflare workers 每日免费限制 超出流量自动关闭 - 失败模式 改为 失败时自动关闭(阻止) 位置在 Workers 和 Pages - 相应的workers - 设置 - 函数 - 更改失败模式 改为 失败时自动关闭(阻止) 这个设置,网上竟然没有人说,这么重要的事情,应该要设置,必须要设置!!…

为什么上海市的跨江大桥两边上没有设置非机动车道 All In One

为什么上海市的跨江大桥两边上没有设置非机动车道 All In One 处于设计、安全和成本考虑,因噎废食,懒得搞为什么上海市的跨江大桥两边上没有设置非机动车道 All In One处于设计、安全和成本考虑,因噎废食,懒得搞FQA 行人如何跨越黄浦江?上海15座跨江大桥,为何只见车流不见…

vue3的 状态管理库

1.vue 的状态管理库 vue 常用的状态管理库有 vuex 和 Pinia,两者的区别如下:架构设计‌:Vuex 采用全局单例模式,通过一个store对象来管理所有的状态;而 Pinia 采用了分离模式,每个组件都拥有自己的store实例。 模块设计:Vuex 包含 states、mutations、getters、actions、…

南沙信息学家教陈老师: 1349:【例4-10】最优布线问题

​ 【题目描述】学校有nn台计算机,为了方便数据传输,现要将它们用数据线连接起来。两台计算机被连接是指它们有数据线连接。由于计算机所处的位置不同,因此不同的两台计算机的连接费用往往是不同的。 当然,如果将任意两台计算机都用数据线连接,费用将是相当庞大的。为了节…

基于springboot的grpc服务端demo

一个springboot 实现grpc 服务端demo的简单配置,包含java配置 和 代理配置1. Javamaven配置点击查看代码 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www…