![17-[信创]-Kube-Prometheus监控coreDNS_Time](https://s2.51cto.com/images/blog/front/202505/18f9d2523dcd7cc2c2038363e9671115e8d501.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=,x-oss-process=image/resize,m_fixed,w_1184)
因为我们是二进制安装的coreDNS需要调整一下
1.查看coreDNS暴漏的prometheus端口号/metrics
[root@k8s-master1 data]# kubectl edit pod -n kube-system node-local-dns-4jck7
#随便找个dns的pod进去看下 搜索关键字 metrics
......
......
ports:
- containerPort: 53
hostPort: 53
name: dns
protocol: UDP
- containerPort: 53
hostPort: 53
name: dns-tcp
protocol: TCP
- containerPort: 9253
hostPort: 9253 #这是给prometheus暴漏的端口号
name: metrics #这里
protocol: TCP
......
......得到端口号测试一下
[root@master01 manifests]# curl 10.1.19.51:9253/metrics | tail -3
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 39833 0 39833 0 0 37.9M 0 --:--:-- --:--:-- --:--:-- 37.9M
# HELP process_virtual_memory_max_bytes Maximum amount of virtual memory available in bytes.
# TYPE process_virtual_memory_max_bytes gauge
process_virtual_memory_max_bytes -1
#没问题开始配置2.查看prometheus监控coredns的标签 在原有基础上添加无头service和endpoints
可以去查看prometheus的yaml文件 ServiceMonitorCoreDNS配置文件
[root@master01 manifests]# kubectl -n kube-system get svc kube-dns --show-labels
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE LABELS
kube-dns ClusterIP 10.96.0.2 <none> 53/UDP,53/TCP,9153/TCP 27h k8s-app=kube-dns,kubernetes.io/cluster-service=true,kubernetes.io/name=CoreDNS
#看上面的标签 需要下面指定哦!!!不一样一定要替换vim manifests/kubernetes-serviceMonitorCoreDNS.yaml
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
labels:
app.kubernetes.io/name: coredns
name: coredns
namespace: monitoring
spec:
endpoints:
- bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
interval: 15s
port: metrics
jobLabel: app.kubernetes.io/name
namespaceSelector:
matchNames:
- kube-system
selector:
matchLabels:
# app.kubernetes.io/name: kube-dns
k8s-app: kube-dns # 修正为 CoreDNS 的标准标签[1,6](@ref)或者动态查看
root@guoguo-M5-Pro:/apps/k8s/prometheus/etcd# kubectl edit -n monitoring servicemonitors.monitoring.coreos.com3.写个无头svc和endpoints
[root@master01 manifests]# vim servicemonitor/promteheus-coredns.yaml
#无头svc
---
apiVersion: v1
kind: Service
metadata:
name: kube-coredns-prometheus
namespace: kube-system
labels:
k8s-app: kube-dns
spec:
ports:
- name: metrics
port: 9253
targetPort: 9253
protocol: TCP
type: ClusterIP
selector:
k8s-app: kube-dns
clusterIP: None
---
apiVersion: v1
kind: Endpoints
metadata:
name: kube-coredns-prometheus
namespace: kube-system
labels:
k8s-app: kube-dns
subsets:
- addresses:
- ip: 10.1.19.51
- ip: 10.1.19.52
- ip: 10.1.19.53
- ip: 10.1.19.54
- ip: 10.1.19.55
- ip: 10.1.19.56
ports:
- name: metrics
port: 9253
protocol: TCP执行后去prometheus ui 页面查看
serviceMonitor/monitoring/coredns/0 (8/8 up)
















