[root@xianchaonode1 case]# docker pull registry.cn-hangzhou.aliyuncs.com/zhangshijie/kube-state-metrics:v2.6.0
[root@xianchaonode2 case]# docker pull registry.cn-hangzhou.aliyuncs.com/zhangshijie/kube-state-metrics:v2.6.0
#case5-kube-state-metrics-deploy.yaml 开放31666端口
[root@xianchaomaster1 case]# cat case5-kube-state-metrics-deploy.yaml
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
image: registry.cn-hangzhou.aliyuncs.com/zhangshijie/kube-state-metrics:v2.6.0
ports:
- containerPort: 8080
---
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: kube-state-metrics
namespace: kube-system
---
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
---
apiVersion: v1
kind: Service
metadata:
annotations:
prometheus.io/scrape: 'true'
name: kube-state-metrics
namespace: kube-system
labels:
app: kube-state-metrics
spec:
type: NodePort
ports:
- name: kube-state-metrics
port: 8080
targetPort: 8080
nodePort: 31666
protocol: TCP
selector:
app: kube-state-metrics
[root@xianchaomaster1 case]# kubectl apply -f case5-kube-state-metrics-deploy.yaml
[root@xianchaomaster1 case]# kubectl get pods -n kube-system | grep metrics
kube-state-metrics-78b6dd6666-rt9hs 1/1 Running 0 4m53s
[root@xianchaomaster1 case]# kubectl get svc -n kube-system | grep metrics
kube-state-metrics NodePort 10.103.165.27 <none> 8080:31666/TCP 5m13s
#配置Prometheus
[root@xianchaomaster1 case]# cat /apps/prometheus/prometheus.yml
添加
- job_name: "prometheus-kube-state-metrics"
static_configs:
- targets: ["192.168.40.180:31666"]
[root@xianchaomaster1 case]# systemctl restart prometheus
#Grafana导入模板 13332、13824
![]()
![]()
![]()
上面如果有No data需要修改 查询语句
![]()
count(kube_node_role{role="worker"})