1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
|
LISTEN 0 32768 *:10257 *:* users:(("kube-controller",pid=3528,fd=3)) LISTEN 0 32768 *:10259 *:* users:(("kube-scheduler",pid=837,fd=3)) ----------------------------------------------------------------------------------------------------------- 如果是127.0.0.1:10257 解决办法如下
kubectl edit po kube-controller-manager-k8s-master -n kube-system - --bind-address=0.0.0.0
然后因为K8s的这两上核心组件我们是以二进制形式部署的,为了能让K8s上的prometheus能发现,我们需要来创建相应的service和endpoints来将其关联起来 这里面有所以不需要创建servicemonitoring kubectl get servicemonitors.monitoring.coreos.com -A NAMESPACE NAME AGE monitoring alertmanager-main 28h monitoring blackbox-exporter 28h monitoring coredns 28h monitoring grafana 28h monitoring kube-apiserver 28h monitoring kube-controller-manager 28h monitoring kube-scheduler 28h monitoring kube-state-metrics 28h monitoring kubelet 28h monitoring node-exporter 28h monitoring prometheus-adapter 28h monitoring prometheus-k8s 28h monitoring prometheus-operator 28h ------------------------------------------------------------------------------------------------------ apiVersion: v1 kind: Service metadata: namespace: kube-system name: kube-controller-manager labels: app.kubernetes.io/name: kube-controller-manager spec: type: ClusterIP clusterIP: None ports: - name: https-metrics port: 10257 targetPort: 10257 protocol: TCP
--- apiVersion: v1 kind: Endpoints metadata: labels: app.kubernetes.io/name: kube-controller-manager name: kube-controller-manager namespace: kube-system subsets: - addresses: - ip: 192.168.85.128 ports: - name: https-metrics port: 10257 protocol: TCP
---
apiVersion: v1 kind: Service metadata: namespace: kube-system name: kube-scheduler labels: app.kubernetes.io/name: kube-scheduler spec: type: ClusterIP clusterIP: None ports: - name: https-metrics port: 10259 targetPort: 10259 protocol: TCP
--- apiVersion: v1 kind: Endpoints metadata: labels: app.kubernetes.io/name: kube-scheduler name: kube-scheduler namespace: kube-system subsets: - addresses: - ip: 192.168.85.128 ports: - name: https-metrics port: 10259 protocol: TCP ---------------------------------------------------------------------------------- 将上面的yaml配置保存为repair-prometheus.yaml,然后创建它
kubectl apply -f repair-prometheus.yaml
创建完成后确认下
kube-controller-manager ClusterIP None <none> 10252/TCP 58s kube-scheduler ClusterIP None <none> 10251/TCP 58s
然后再返回prometheus UI处,耐心等待一会,就能看到已经被发现了
serviceMonitor/monitoring/kube-controller-manager/0 (2/2 up) serviceMonitor/monitoring/kube-scheduler/0 (2/2 up)
|