我在k8s集群上部署了一个Prometheus操作符。一切运行良好,但我希望监视位于另一个名称空间中的MySQL荚。我在MariaDB名称空间中为它创建mysqld和svc,在监视命名空间中为它创建一个servicemonitor。我检查了这个链接中的所有项目,但是这个服务程序(对于mysqld)并没有添加到Prometheus目标中。当我将svc类型更改为nodeport时,一切都正常,并公开了度量标准。
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
creationTimestamp: "2022-09-11T11:51:46Z"
generation: 1
labels:
app.kubernetes.io/part-of: kube-prometheus
app.kubernetes.io/version: 9.1.2
monitor-app: mysqld-exporter
name: mysqld-exporter
namespace: monitoring
resourceVersion: "2932040"
uid: 247683c8-7868-4f2c-9a60-255c703273a5
spec:
endpoints:
- interval: 30s
port: http-metrics
jobLabel: k8s-app
namespaceSelector:
matchNames:
- mariadb
selector:
matchLabels:
app: mysqld-exporter
--------
apiVersion: v1
kind: Service
metadata:
creationTimestamp: "2022-09-11T11:50:28Z"
labels:
app: mysqld-exporter
name: mysqld-exporter
namespace: mariadb
resourceVersion: "2931235"
uid: 1b548f89-33a1-4235-b042-8cda5dfc766b
spec:
clusterIP: 10.109.39.231
clusterIPs:
- 10.109.39.231
internalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
ports:
- name: http-metrics
port: 9104
protocol: TCP
targetPort: 9104
selector:
app: mysqld-exporter
sessionAffinity: None
type: ClusterIP
status:
loadBalancer: {}
发布于 2022-09-17 19:49:23
我检查了Prometheus吊舱日志,其错误是:
禁止使用豆荚:用户"system:serviceaccount:monitoring:prometheus-k8s“不能列出资源
因此,我搜索这个错误,并在这链接中找到答案,并向Prometheus-k8s ClusterRole的资源中添加豆荚和服务。
https://stackoverflow.com/questions/73680442
复制相似问题