k8s–基礎(chǔ)–26.6–監(jiān)控告警系統(tǒng)–kube-state-metrics
1、kube-state-metrics是什么?
- kube-state-metrics 會監(jiān)聽API Server生成有關(guān)資源對象的狀態(tài)指標(biāo),比如Deployment、Node、Pod。
- kube-state-metrics只是簡單的提供一個metrics數(shù)據(jù),并不會存儲這些指標(biāo)數(shù)據(jù),我們可以使用Prometheus來抓取這些數(shù)據(jù)然后存儲。
- 指標(biāo)數(shù)據(jù)
- Deployment、Pod、副本狀態(tài)等
- 調(diào)度了多少個replicas
- 現(xiàn)在可用的pod有幾個
- 多少個Pod是running/stopped/terminated狀態(tài)
- Pod重啟了多少次
- 我有多少job在運行中。
2、安裝kube-state-metrics前
各個節(jié)點都要操作
2.1、上傳鏡像
2.2、解壓
# 解壓縮
docker load -i /root/k8s/monitor/kube-state-metrics_1_9_0.tar.gz
# 刪除
rm -rf /root/k8s/monitor/kube-state-metrics_1_9_0.tar.gz
3、安裝kube-state-metrics
- 以下操作都在master1節(jié)點上
3.1、創(chuàng)建sa,并對sa授權(quán)
3.1.1、腳本
vi /root/k8s/monitor/kube-state-metrics-rbac.yaml
內(nèi)容
# 創(chuàng)建sa
---
apiVersion: v1
kind: ServiceAccount
metadata:
# sa 賬號名稱
name: kube-state-metrics
# sa 賬號名稱空間
namespace: kube-system
---
# 對sa賬號進(jìn)行rbac授權(quán)
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: kube-state-metrics
rules:
- apiGroups: [""]
resources: ["nodes", "pods", "services", "resourcequotas", "replicationcontrollers", "limitranges", "persistentvolumeclaims", "persistentvolumes", "namespaces", "endpoints"]
verbs: ["list", "watch"]
- apiGroups: ["extensions"]
resources: ["daemonsets", "deployments", "replicasets"]
verbs: ["list", "watch"]
- apiGroups: ["apps"]
resources: ["statefulsets"]
verbs: ["list", "watch"]
- apiGroups: ["batch"]
resources: ["cronjobs", "jobs"]
verbs: ["list", "watch"]
- apiGroups: ["autoscaling"]
resources: ["horizontalpodautoscalers"]
verbs: ["list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: kube-state-metrics
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: kube-state-metrics
subjects:
- kind: ServiceAccount
name: kube-state-metrics
namespace: kube-system
3.1.2、執(zhí)行
kubectl apply -f /root/k8s/monitor/kube-state-metrics-rbac.yaml
# 查看
kubectl get sa -n kube-system | grep metrics
3.2、安裝kube-state-metrics組件
3.2.1、腳本
vi /root/k8s/monitor/kube-state-metrics-deploy.yaml
內(nèi)容
apiVersion: apps/v1
kind: Deployment
metadata:
# Deployment的名稱和 使用的名稱空間
name: kube-state-metrics
namespace: kube-system
spec:
# 副本實例
replicas: 1
# 標(biāo)簽選擇器,選擇哪個template
selector:
matchLabels:
app: kube-state-metrics
# 定義template
template:
metadata:
labels:
app: kube-state-metrics
# 定義容器
spec:
# sa賬號
serviceAccountName: kube-state-metrics
containers:
- name: kube-state-metrics
# image: gcr.io/google_containers/kube-state-metrics-amd64:v1.3.1
image: quay.io/coreos/kube-state-metrics:v1.9.0
ports:
- containerPort: 8080
3.2.2、執(zhí)行
kubectl apply -f /root/k8s/monitor/kube-state-metrics-deploy.yaml
# 查看
kubectl get ConfigMap -n monitor-sa
4、在grafana中導(dǎo)入kube-state-metrics的配置
4.1、配置文件
4.2、導(dǎo)入Kubernetes Cluster(Prometheus)-1577674936972.json后,效果圖
4.3、導(dǎo)入Kubernetes cluster monitoring(via Prometheus)(k8s 1.16)-1577691996738.json后,效果圖
文章來源:http://www.zghlxwxcb.cn/news/detail-402250.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-402250.html
到了這里,關(guān)于k8s--基礎(chǔ)--26.6--監(jiān)控告警系統(tǒng)--kube-state-metrics的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!