[单master节点k8s部署]19.监控系统构建(四)kube-state-metrics

kube-state-metrics 是一个Kubernetes的附加组件,它通过监听 Kubernetes API 服务器来收集和生成关于 Kubernetes 对象(如部署、节点和Pod等)的状态的指标。这些指标可供 Prometheus 进行抓取和存储,从而使你能够监控和分析Kubernetes集群的状态和性能。

之前介绍过node-exporter和cAdvisor,但是他们收集的指标和kube-state-metrics是不同的。

不同插件的指标

node_exporter的指标主要关注节点的CPU、内存、磁盘和网络利用率等指标,以及系统负载,I/O操作和运行进程数。cAdvisor是一个容器监控工具,集成在Kubelet中,关注容器的CPU、内存和网络的资源使用情况。这两种都是与运行状态直接相关的物理或虚拟资源的度量。

而kube-state-metrics指标则是记录部署中期望副本数与当前副本数、pod的生命周期状态、重启次数、服务端点的状态等。

在实际应用中,将这两类指标结合起来使用可以提供更全面的视图来监控和管理 Kubernetes 集群。使用 node_exportercAdvisor 的指标可以帮助理解节点和容器的性能瓶颈。使用 kube-state-metrics 的指标可以帮助理解集群中的工作负载如何分布,以及 Kubernetes 控制平面的健康状态。

kube-state-metrics部署
创建sa文件

因为这个插件需要和kubernetes API交互,所以需要权限。

apiVersion: v1
kind: ServiceAccount
metadata:name: kube-state-metricsnamespace: kube-system
创建role文件 
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:name: kube-state-metrics
rules:
- apiGroups: [""]resources: ["nodes", "pods", "services", "resourcequotas", "replicationcontrollers", "limitranges", "persistentvolumeclaims", "persistentvolumes", "namespaces", "endpoints"]verbs: ["list", "watch"]
- apiGroups: ["extensions"]resources: ["daemonsets", "deployments", "replicasets"]verbs: ["list", "watch"]
- apiGroups: ["apps"]resources: ["statefulsets"]verbs: ["list", "watch"]
- apiGroups: ["batch"]resources: ["cronjobs", "jobs"]verbs: ["list", "watch"]
- apiGroups: ["autoscaling"]resources: ["horizontalpodautoscalers"]verbs: ["list", "watch"]
创建rolebinding
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: kube-state-metrics
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: kube-state-metrics
subjects:
- kind: ServiceAccountname: kube-state-metricsnamespace: kube-system

可以看到把之前创建的sa和clusterRole绑定在了一起。

[root@master prometheus]# kubectl get sa -n kube-system | grep kube-state-metrics
kube-state-metrics                   1         43s
创建pod
[root@master prometheus]# cat kube-state-metrics-deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:namespace: kube-systemname: kube-state-metrics
spec:replicas: 1selector:matchLabels:app: kube-state-metricstemplate:metadata:labels:app: kube-state-metricsspec:serviceAccountName: kube-state-metricscontainers:- name: kube-state-metricsimage: quay.io/coreos/kube-state-metrics:v1.9.0imagePullPolicy: IfNotPresentports:- containerPort: 8080

这里的deployment使用了之前定义的sa。可以看到pod成功启动,ip地址为:10.244.166.164

[root@master prometheus]# kubectl get pods -n kube-system
NAME                                       READY   STATUS    RESTARTS   AGE     IP               NODE     NOMINATED NODE   READINESS GATES
kube-state-metrics-57794dcf65-8wt8g        1/1     Running   0          110s    10.244.166.164   node1    <none>           <none>
monitoring-grafana-5bb6bb7867-9j2xb        1/1     Running   0          24h     10.244.166.160   node1    <none>           <none>
创建service
[root@master prometheus]# cat kube-state-metrics-service.yaml 
apiVersion: v1
kind: Service
metadata:annotations:prometheus.io/scrape: 'true'name: kube-state-metricsnamespace: kube-systemlabels:app: kube-state-metrics
spec:type: NodePortports:- name: kube-state-metricsport: 8080protocol: TCPselector:app: kube-state-metrics
[root@master prometheus]# kubectl get svc -n kube-system -owide
NAME                 TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                  AGE   SELECTOR
kube-dns             ClusterIP   10.96.0.10       <none>        53/UDP,53/TCP,9153/TCP   19d   k8s-app=kube-dns
kube-state-metrics   NodePort    10.106.104.112   <none>        8080:31711/TCP           10s   app=kube-state-metrics
monitoring-grafana   NodePort    10.110.10.133    <none>        80:31519/TCP             24h   k8s-app=grafana

此时查看Prometheus,可以看到endpoint里面已经识别到了这个pod

导入相应的json文件,在grafana里面也可以看到数据了。 

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

钡铼RTU无线S270用于风力发电站机房远程状态监测和故障预警系统集成

在现代风力发电行业中&#xff0c;机房的远程监测和故障预警系统对于保障风力发电机组的稳定运行至关重要。钡铼第4代S270工业级4G远程遥测终端&#xff08;RTU&#xff09;&#xff0c;以其先进的技术和多功能应用&#xff0c;成为风力发电站机房智能化管理的理想选择。 技术…

【MySQL备份】Percona XtraBackup总结篇

目录 1.前言 2.问题总结 2.1.为什么在恢复备份前需要准备备份 2.1.1. 保证数据一致性 2.1.2. 完成崩溃恢复过程 2.1.3. 解决非锁定备份的特殊需求 2.1.4. 支持增量和差异备份 2.1.5. 优化恢复性能 2.2.Percona XtraBackup的工作原理 3.注意事项 1.前言 在历经了详尽…

uni-app组件 子组件onLoad、onReady事件无效

文章目录 导文解决方法 导文 突然发现在项目中&#xff0c;组件 子组件的onLoad、onReady事件无效 打印也出不来值 怎么处理呢&#xff1f; 解决方法 mounted() {console.log(onLoad, this.dateList);//有效// this.checkinDetails()},onReady() {console.log(onReady, this.da…

百度云智能媒体内容分析一体机(MCA)建设

导读 &#xff1a;本文主要介绍了百度智能云MCA产品的概念和应用。 媒体信息海量且复杂&#xff0c;采用人工的方式对视频进行分析处理&#xff0c;面临着效率低、成本高的困难。于是&#xff0c;MCA应运而生。它基于百度自研的视觉AI、ASR、NLP技术&#xff0c;为用户提供音视…

【C++】哈希表 ---开散列版本的实现

你很自由 充满了无限可能 这是很棒的事 我衷心祈祷你可以相信自己 无悔地燃烧自己的人生 -- 东野圭吾 《解忧杂货店》 开散列版本的实现 1 前言2 开散列版本的实现2.1 节点设计2.2 框架搭建2.3 插入函数2.4 删除函数2.5 查找操作2.6 测试 Thanks♪(&#xff65;ω&#x…

申请便宜SSL证书 Let‘s Encrypt泛域名SSL证书

在当今数字化时代&#xff0c;网络安全已成为公众和企业关注的焦点。 申请Lets Encrypt便宜泛域名SSL证书步骤 1. 登录来此加密网站&#xff0c;输入域名&#xff0c;可以勾选泛域名和包含根域。 2. 选择加密方式&#xff0c;一般选择默认就可以了&#xff0c;也可以自定义CS…

【启明智显分享】乐鑫HMI方案2.8寸触摸串口屏应用于太阳能控制器

前言 太阳能作为一种无尽的、可再生的能源&#xff0c;在现代社会的能源结构中占据着日益重要的地位。而在太阳能应用系统中&#xff0c;有一种设备是不可或缺的&#xff0c;那就是太阳能控制器。太阳能控制器在太阳能系统中起着至关重要的作用&#xff0c;它保证系统的安全和…

AntDesign上传组件upload二次封装+全局上传hook使用

文章目录 前言a-upload组件二次封装1. 功能分析2. 代码详细注释3. 使用到的全局上传hook代码4. 使用方式5. 效果展示 总结 前言 在项目中&#xff0c;ant-design是我们常用的UI库之一&#xff0c;今天就来二次封装常用的组件a-upload批量上传组件,让它用起来更方便。 a-uploa…

谷歌地图Google JS API 实现

demo实现 实现源码&#x1f447; // 谷歌地图Google JS API 实现 <template><div class"myMap"><gmp-map :center"center" zoom"15" map-id"ab6b6643adfa1a70"><gmp-advanced-markerv-for"(res, index) in…

python如何不保留小数

1、int() 向下取整&#xff08;内置函数&#xff09; n 3.75 print(int(n)) >>> 3 n 3.25 print(int(n)) >>> 3 2、round() 四舍五入&#xff08;内置函数&#xff09; n 3.75 print(round(n)) >>> 4 n 3.25 print(round(n)) >>> 3 …

Java+前后端分离架构+ MySQL8.0.36产科信息管理系统 产科电子病历系统源码

Java前后端分离架构 MySQL8.0.36产科信息管理系统 产科电子病历系统源码 产科信息管理系统—住院管理 数字化产科住院管理是现代医院管理中的重要组成部分&#xff0c;它利用数字化技术优化住院流程&#xff0c;提升医疗服务质量和效率。以下是对数字化产科住院管理的详细阐述…

NSAT-8000电源模块测试系统提供台式机电源自动化测试方案

在数字化时代&#xff0c;台式机电源的重要性愈发凸显&#xff0c;它不仅是计算机硬件系统的能量心脏&#xff0c;更是保障整个电子生态系统稳定运行的基础。随着人工智能、大数据等技术的飞速发展&#xff0c;计算机系统对电源的性能要求也在不断提高。因此&#xff0c;研究台…

【Linux进程】进程优先级 Linux 2.6内核进程的调度

前言 进程是资源分配的基本单位, 在OS中存在这很多的进程, 那么就必然存在着资源竞争的问题, 操作系统是如何进行资源分配的? 对于多个进程同时运行, 操作系统又是如何调度达到并发呢? 本文将以Linux kernel 2.6为例 , 向大家介绍进程在操作系统中 (OS) 的调度原理; 1. 进程优…

为什么写Python脚本时要加上if __name__ == ‘__main__‘?

目录 一、__name__ 的秘密 二、if __name__ __main__: 的作用 三、代码示例与案例分析 示例一&#xff1a;简单的数学工具模块 示例二&#xff1a;命令行工具 四、实际应用场景 五、进阶应用 1. 插件开发 2. 动态加载模块 3. 交互式与脚本模式切换 六、结论 在Pyth…

阿里云RDS云数据库库表恢复操作

最近数据库中数据被人误删了,记录一下恢复操作方便以后发生时进行恢复. 1.打开控制台&#xff0c;进入云数据库实例. 2.进入实例后 &#xff0c;点击右侧的备份恢复&#xff0c;然后看一下备份时间点&#xff0c;中间这边都是阿里云自动备份的备份集&#xff0c;基本都是7天一备…

优优嗨聚集团:揭秘!轻松化解个人债务危机的实用宝典

在快节奏的现代社会中&#xff0c;个人债务问题日益凸显&#xff0c;成为许多人不得不面对的棘手难题。面对堆积如山的账单和不断增长的利息&#xff0c;我们该如何应对&#xff0c;才能走出债务泥潭&#xff0c;重获财务自由呢&#xff1f;本文将为您揭秘处理个人债务的实用宝…

敏捷实践:需求,做还是不做?哪些先做?做优先级排序时用得最多的3个模型(附实操说明)

在当今快节奏的数字化时代&#xff0c; 敏捷开发已成为众多企业和团队提升竞争力的关键策略。 而在敏捷开发过程中&#xff0c; 优先级排序的重要性不言而喻&#xff0c; 它直接影响着项目的进度、资源分配以及最终的成果。 01 优先级排序听起来是一个很简单的工作&#…

广东这家非标自动化公司居然2台工作站20个设计同时用?

在当今快速发展的制造业中&#xff0c;非标自动化公司凭借其独特的定制化服务&#xff0c;正在逐步改变着传统的生产方式。在日益复杂和高度专业化的非标自动化设计领域&#xff0c;图形工作站的重要性不言而喻。设计师们需要强大的计算能力和高效的运行环境来支持他们的创意工…

开发者评测|操作系统智能助手OS Copilot

操作系统智能助手OS Copilot 文章目录 操作系统智能助手OS CopilotOS Copilot 是什么优势功能 操作步骤创建实验重置密码创建Access Key配置安全组安装 os-copilot环境变量配置功能评测命令行模式多轮交互模式 OS Copilot 产品体验评测反馈OS Copilot 产品功能评测反馈 参考文档…