prometheus学习笔记之kube-state-metrics

news/2024/9/20 19:58:15

一、kube-state-metrics简介

Kube-state-metrics:通过监听 API Server 生成有关资源对象的状态指标,比如 Deployment、Node、Pod,需要注意的是 kube-state-metrics 只是简单的提供一个 metrics 数据, 并不会存储这些指标数据, 所以我
们可以使用 Prometheus 来抓取这些数据然后存储, 主要关注的是业务相关的一些元数据, 比如Deployment、 Pod、 副本状态等, 调度了多少个 replicas? 现在可用的有几个? 多少个 Pod 是
running/stopped/terminated 状态? Pod 重启了多少次? 目前有多少 job 在运行中。

参考文档:https://github.com/kubernetes/kube-state-metrics
镜像下载地址:https://hub.docker.com/r/bitnami/kube-state-metrics
资源指标参考:https://github.com/kubernetes/kube-state-metrics/tree/main/docs #每个资源点击进入会看到具体的指标

二、部署kube-state-metrics

1.部署yaml文件

apiVersion: apps/v1
kind: Deployment
metadata:name: kube-state-metricsnamespace: monitoring
spec:replicas: 1selector:matchLabels:app: kube-state-metricstemplate:metadata:labels:app: kube-state-metricsspec:serviceAccountName: monitor #之前给prometheus使用的sa,也可以单独创建containers:- name: kube-state-metricsimage: registry-vpc.cn-shanghai.aliyuncs.com/zdbl-base/kube-state-metrics:2.11.0 #原镜像仓库地址 bitnami/kube-state-metrics,注意KSM的版本需要与K8S版本对应,具体对应关系查看官方文档ports:- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:annotations:prometheus.io/scrape: 'true'name: kube-state-metricsnamespace: monitoringlabels:app: kube-state-metrics
spec:type: NodePortports:- name: kube-state-metricsport: 8080targetPort: 8080nodePort: 31666protocol: TCPselector:app: kube-state-metrics


kubectl apply -f kube-state-metrics.yaml
kubectl get pods -n monitoring

2.验证服务是否正常

三、配置prometheus抓取kube-metrics数据

1.prometheus配置

  - job_name: "monitor-for_kube-metrics"  #新增一个job,抓取kube-metrics svc nodePort端口metric_relabel_configs:static_configs:- targets: ["192.168.100.131:31666"]

curl -X POST http://127.0.0.1:9090/-/reload #重载配置文件

2.验证抓取配置

四、配置grafana数据展示

对于kube-state-metrics场景的模板有三个,ID分别为 13332 13824 14518,这样以13332为示例演示,因为这个配置是有个特殊配置需要知道

1.输入ID导入模板

配置选项这个模板最下面多了一个数据源的配置,需要手动修改与上面的保持一致

效果图如下

 

 

 

 

 

 

 

 

 

 

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

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

相关文章

事务发件箱模式在 .NET 云原生开发中的应用(基于Aspire)

原文:Transactional Outbox in .NET Cloud Native Development via Aspire 作者:Oleksii Nikiforov总览 这篇文章提供了使用 Aspire、DotNetCore.CAP、Azure Service Bus、Azure SQL、Bicep 和 azd 实现 Outbox 模式的示例。源代码: https://github.com/NikiforovAll/cap-as…

Css 斜线生成案例_Css 斜线/对角线整理

一、Css 斜线,块斜线,对角线 块的宽度高度任意支持<!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><tit…

mac升级node到指定版本

node版本升级到稳定版18.16.1 (1)node -v(2)npm cache clean -f 在使用npm cache clear --force清除缓存的时候,报npm WARN using --force Recommended protections disabled的错误,有可能是镜相源过期的问题换为npm cache verify(3) sudo n stable // 把当前系统的 Node 更…

HashMap深入讲解

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型的数据结构, 而HashSet和HashMap者在Java里有着相同的实现,前者仅仅是对后者做了一层包装,也就是说HashSet里面有一个HashMap(适配器模式)。因此了解HashMap源码也就了解HashSet了 介绍Key的存储方式是基于哈希表…

如何实现mysql高可用

1.机器资源耗尽 2.单点故障 3.认为操作 4.网络单点故障解决方案? 1.搭建mysql主从集群(双主,一主多从,多主多从) 2. 可以用MyCat, ShardingJdbc实现A节点同步到B节点流程?1. 从库通过IO线程, 连接到主库,并且向主库要对应的bin log文件 2. 主库通过dump线程获取binlog文…

基于基尼指数构建分类决策树[算法+示例]

0 前言本文主要讲述使用基尼指数构建二叉决策树的算法,并给出例题一步步解析,帮助读者理解。 本文所使用的数据集:贷款.CSV。 读者需要具备的知识:基尼指数计算。1 基于基尼指数的分类树构建算法选择最优特征进行分裂: 对于决策树的每个节点,遍历数据集中的所有特征。对于…

Node.js版本管理工具之NVM

目录一、NVM介绍二、NVM的下载安装1、NVM下载2、卸载旧版Node.js3、安装三、NVM配置及使用1、设置nvm镜像源2、安装Node.js3、卸载Node.js4、使用或切换Node.js版本5、设置全局安装路径和缓存路径四、常用命令一、NVM介绍 在工作中,不同的项目可能需要不同NodeJS版本,所以维护…

Javaweb-DQL-分组查询

select sex,avg(math) from stu group by sex;-- 1 select sex,avg(math) as 数学平均分,count() as 人数 from stu group by sex;-- 2 select sex,avg(math) as 数学平均分,count() as 人数 from stu where math>=70 group by sex;-- 3 select sex,avg(math) as 数学平均分…