前言
在前面章节 8-5 在Prometheus实现Kubernetes-apiserver及Coredns服务发现 介绍过使用kubernetes_sd_config对K8s集群进行监控。监控内容有master,node,schedule,controlle-manager,pod等。但是由于这些都是K8s内置的指标数据,数据并不全面。
其他资源对象也需要监控的,例如Deployment,Daemonset,ConfigMap等资源对象。所以再部署一个监控服务kube-state-metrics,通过它去与API Server通信,最后Prometheus去获取它的指标数据。
Kube-state-metrics获取的数据有很多。比如 Deployment,Pod,副本状态等,调度了多少个 replicas?现在可用的有几个?多少个 Pod 是 running/stopped/terminated状态?Pod 重启了多少次? 目前有多少 job 在运行中等等。
参考资料
官方定义:
Kube-state-metrics(KSM) is a simple service that listens to the Kubernetes API server and generates metrics
about the state of the objects.
GitHub项目:
https://github.com/kubernetes/kube-state-metrics
Docker镜像:
https://hub.docker.com/r/bitnami/kube-state-metrics
Kube-state-metrics部署
在k8s集群使用yaml部署Kube-state-metrics
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: kube-state-metrics
namespace: kube-system
spec:
replicas: 1
selector:
matchLabels:
app: kube-state-metrics
template:
metadata:
labels:
app: kube-state-metrics
spec:
serviceAccountName: kube-state-metrics
containers:
- name: kube-state-metrics
# 官方镜像