一、Prometheus 监控K8S集群
1.安装kube-state-metrics
kube-state-metrics 是一个用于从 Kubernetes API进行交互来收集数据,并将这些状态信息存储在本地存储中,导出各种对象的状态指标的工具。它暴露的指标包括各种 Kubernetes 对象的状态信息,如 Pod、Node、Namespace、Deployment、ReplicaSet 等。
(默认kube-state-metrics服务不在Kubernetes集群中)
因此 Prometheus 想要监控谁,谁就需要暴露一个api端口号,才能监控得到数据。
目前使用的 K8s 版本为:v1.27.8,因此所使用Kube-state-metrics版本为 v2.10.1 GitHub - kubernetes/kube-state-metrics: Add-on agent to generate and expose cluster-level metrics. 下载相应的源码以及部署脚本, 在 /kube-state-metrics/examples/standard
2.Kube-state-metrics官方部署YAML文件
Kube-state-metrics.yaml 部署文件
注意:镜像需要翻墙,建议制定国内的K8S镜像站
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
app.kubernetes.io/component: exporter
app.kubernetes.io/name: kube-state-metrics
app.kubernetes.io/version: 2.10.1
name: kube-state-metrics
rules:
- apiGroups:
- ""
resources:
- configmaps
- secrets
- nodes
- pods
- services
- serviceaccounts
- resourcequotas
- replicationcontrollers
- limitranges
- persistentvolumeclaims
- persistentvolumes
- namespaces
- endpoints
verbs:
- list
- watch
- apiGroups:
- apps
resources:
- statefulsets
- daemonsets
- deployments
- replicasets
verbs:
- list
- watch
- apiGroups:
- batch
resources:
- cronjobs
- jobs
verbs:
- list
- watch
- apiGroups:
- autoscaling
resources:
- horizontalpodautoscalers
verbs:
- list
- watch
- apiGroups:
- authentication.k8s.io
resources:
- tokenreviews
verbs:
- create
- apiGroups:
- authorization.k8s.io
resources:
- subjectaccessreviews
verbs:
- create
- apiGroups:
- policy
resources:
- p