陈同学
微服务
Accelerator
About
# K8s Cluster Metrics 采集:kube-state-metrics > [GitHub:kube-state-metrics](https://github.com/kubernetes/kube-state-metrics) > [Prometheus kubernetes_sd_config](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kubernetes_sd_config) kube-state-metrics 用于采集和暴露k8s集群的metrics,它负责监听 K8s apiserver 从而生成metrics数据。 指标数据通过 `/metrics` Endpoint 暴露,主要是适配 Prometheus。 ## 运行 kube-state-metrics 下载将 [kube-state-metrics examples](https://github.com/kubernetes/kube-state-metrics/blob/master/examples/standard) 几个文件,分别为: * cluster-role-binding.yaml * cluster-role.yaml * deployment.yaml * service-account.yaml * service.yaml 在当前目录应用所有yaml文件,依次创建上述对象。 ```bash kubectl apply -f ./ ``` 下面是对应的Pod。 ```bash $ kubectl get pods -n kube-system -o wide | grep metrics kube-state-metrics-6c4d4dd64-fh85d 1/1 Running 0 4m46s 10.244.0.128 172.31.189.87 <none> <none> ``` 通过 `/healthz` 健康检查端口查看Pod状态。 ```bash $ curl 10.244.0.128:8080/healthz OK ``` 通过 `/metrics` 接口可查看其采集的全量数据。 ```bash curl 10.244.0.128:8080/metrics ``` ## 接入Prometheus 可在 Prometheus 中添加一个 `kube-state-metrics` Job。 ```yaml - job_name: kube-state-metrics static_configs: - targets: ['kube-state-metrics.kube-system.svc.cluster.local:8080'] ``` 加入后可见Target **kube-state-metrics**。  可自行查找支持 `kube-state-metrics` 的Dashboard,下面是 [Kubernetes Cluster (Prometheus)](https://grafana.com/grafana/dashboards/6417) Dashboard的效果: 
本文由
cyj
创作,可自由转载、引用,但需署名作者且注明文章出处。
文章标题:
K8s Cluster Metrics 采集:kube-state-metrics
文章链接:
https://chenyongjun.vip/articles/152
扫码或搜索 cyjrun 关注微信公众号, 结伴学习, 一起努力