编辑
2025-10-16
Prometheus
00

目录

一、把这几个配置文件丢到主节点服务器
二、配置普罗米修斯
Grafana模版配置

一、把这几个配置文件丢到主节点服务器

vi service-account.yaml

yml
apiVersion: v1 automountServiceAccountToken: false kind: ServiceAccount metadata: labels: app.kubernetes.io/component: exporter app.kubernetes.io/name: kube-state-metrics app.kubernetes.io/version: 2.17.0 name: kube-state-metrics namespace: kube-system-xuan

vi cluster-role.yaml

yml
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.17.0 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: - poddisruptionbudgets verbs: - list - watch - apiGroups: - certificates.k8s.io resources: - certificatesigningrequests verbs: - list - watch - apiGroups: - discovery.k8s.io resources: - endpointslices verbs: - list - watch - apiGroups: - storage.k8s.io resources: - storageclasses - volumeattachments verbs: - list - watch - apiGroups: - admissionregistration.k8s.io resources: - mutatingwebhookconfigurations - validatingwebhookconfigurations verbs: - list - watch - apiGroups: - networking.k8s.io resources: - networkpolicies - ingressclasses - ingresses verbs: - list - watch - apiGroups: - coordination.k8s.io resources: - leases verbs: - list - watch - apiGroups: - rbac.authorization.k8s.io resources: - clusterrolebindings - clusterroles - rolebindings - roles verbs: - list - watch

vi cluster-role-binding.yaml

yml
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: labels: app.kubernetes.io/component: exporter app.kubernetes.io/name: kube-state-metrics app.kubernetes.io/version: 2.17.0 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-xuan

vi deployment.yaml

js
apiVersion: apps/v1 kind: Deployment metadata: labels: app.kubernetes.io/component: exporter app.kubernetes.io/name: kube-state-metrics app.kubernetes.io/version: 2.17.0 name: kube-state-metrics namespace: kube-system-xuan spec: replicas: 1 selector: matchLabels: app.kubernetes.io/name: kube-state-metrics template: metadata: labels: app.kubernetes.io/component: exporter app.kubernetes.io/name: kube-state-metrics app.kubernetes.io/version: 2.17.0 spec: automountServiceAccountToken: true containers: - image: bitnami/kube-state-metrics:latest livenessProbe: httpGet: path: /livez port: http-metrics initialDelaySeconds: 5 timeoutSeconds: 5 name: kube-state-metrics ports: - containerPort: 8080 name: http-metrics - containerPort: 8081 name: telemetry readinessProbe: httpGet: path: /readyz port: telemetry initialDelaySeconds: 5 timeoutSeconds: 5 securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true runAsNonRoot: true runAsUser: 65534 seccompProfile: type: RuntimeDefault nodeSelector: kubernetes.io/os: linux serviceAccountName: kube-state-metrics

vi service.yaml

js
apiVersion: v1 kind: Service metadata: labels: app.kubernetes.io/component: exporter app.kubernetes.io/name: kube-state-metrics app.kubernetes.io/version: 2.17.0 name: kube-state-metrics namespace: kube-system-xuan spec: type: NodePort ports: - name: http-metrics port: 8080 targetPort: 8080 nodePort: 31666 protocol: TCP selector: app.kubernetes.io/name: kube-state-metrics
js
kubectl apply -f service-account.yaml kubectl apply -f cluster-role.yaml kubectl apply -f cluster-role-binding.yaml kubectl apply -f deployment.yaml kubectl apply -f service.yaml

二、配置普罗米修斯

prometheus.yml

yml
# 全局配置 global: # 数据抓取间隔(默认1分钟) scrape_interval: 15s # 告警规则评估频率(建议与抓取间隔一致) evaluation_interval: 15s # 抓取超时时间(默认10秒) # 告警配置 alerting: alertmanagers: - static_configs: - targets: # 启用Alertmanager时需配置实际地址 # - alertmanager:9093 # 规则文件配置 rule_files: # 告警规则文件路径(支持通配符) # - 'alert_rules/*.rules' # 记录规则文件路径 # - 'recording_rules/*.rules' # 监控目标配置 scrape_configs: - job_name: "prometheus-server" file_sd_configs: - files: - /server/prometheus/node_exporter.yml refresh_interval: 5s #nginx服务 - job_name: nginx static_configs: - targets: ['192.168.201.104:9113'] #K8S服务器 - job_name: K8S static_configs: - targets: ['192.168.201.100:31666']

然后重启普罗米修斯

Grafana模版配置

https://grafana.com/grafana/dashboards/17519-kube-state-metrics-v2/

json
17519 13105

image.png

本文作者:松轩(^U^)

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

Document