prometheus监控k8s集群信息(通过kube-state-metrics)

发布时间 2023-12-19 17:14:36作者: 难止汗

prometheus监控k8s集群信息(通过kube-state-metrics)

因为通过k8s集群中kubelet和apiserver自带的一些接口来获取的信息太少,当然如果只需要监控POD的cpu、内存等信息,可能使用kubelet也够了,但是更多的信息还需要其他的工具,这里使用kube-state-metrics。

 

一、部署kube-state-metrics(在k8s集群中部署)

  1、在github上找到kube-state-metrics

  https://github.com/kubernetes/kube-state-metrics

  2、根据安装介绍,这里使用kubernetes deployment来部署.

     2.1、下载https://github.com/kubernetes/kube-state-metrics/tree/main/examples/standard下的所有yaml文件到/opt/yaml/kube-state-metrics目录下。

     2.2、修改所有文件中namespace的值为monitor。

     2.3、修改deployment.yaml中的image值为:bitnami/kube-state-metrics:2.10.0

     2.4、修改service.yaml文件,删除clusterIP: None,新增type:Nodeport

  3、部署kube-state-metrics

kubectl apply -f /opt/yaml/kube-state-metrics/

 

  4、查看kube-state-metrics的nodeport端口

kubectl get svc -nmonitor

 

二、配置prometheus采集kube-state-metrics

  1、修改prometheus配置文件,新增一个job_name

  vim /usr/local/prometheus/prometheus.yml

  - job_name: 'kube-state-metrics'
    scrape_interval: 10s
    static_configs:
      - targets: ["xxx.xxx.xxx.xxx:32674"]

  这里只需要配置kube-state-metrics映射的8080端口即可,8081端口为web UI端口。

 

  2、重新加载prometheus配置文件。

curl -X POST http://localhost:9090/-/reload

 

  3、在prometheus的web界面查看监控情况。