0
点赞
收藏
分享

微信扫一扫

prometheus学习笔记之kube-state-metrics

一、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-metrics
  namespace: monitoring
spec:
  replicas: 1
  selector:
    matchLabels:
      app: kube-state-metrics
  template:
    metadata:
      labels:
        app: kube-state-metrics
    spec:
      serviceAccountName: monitor #之前给prometheus使用的sa,也可以单独创建
      containers:
      - name: kube-state-metrics
        image: 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-metrics
  namespace: monitoring
  labels:
    app: kube-state-metrics
spec:
  type: NodePort
  ports:
  - name: kube-state-metrics
    port: 8080
    targetPort: 8080
    nodePort: 31666
    protocol: TCP
  selector:
    app: kube-state-metrics


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

2.验证服务是否正常

prometheus学习笔记之kube-state-metrics_Deployment

三、配置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.验证抓取配置

prometheus学习笔记之kube-state-metrics_Pod_02

四、配置grafana数据展示

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

1.输入ID导入模板

prometheus学习笔记之kube-state-metrics_数据_03

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

prometheus学习笔记之kube-state-metrics_数据_04

效果图如下

prometheus学习笔记之kube-state-metrics_Pod_05

 

 

 

 

 

 

 

 

 

 

"一劳永逸" 的话,有是有的,而 "一劳永逸" 的事却极少



举报

相关推荐

0 条评论