prometheus监控kube-controller-manager
第一种方法:
创建kube-controller-manager的service
cat kube-controller-manager.yaml
apiVersion: v1 kind: Service metadata: annotations: prometheus.io/port: "32108" prometheus.io/scrape: "true" labels: component: kube-controller-manager tier: control-plane name: kube-controller namespace: kube-system spec: clusterIP: ports: - name: metrics port: 10252 protocol: TCP targetPort: 10252 nodePort: 32108 selector: component: kube-controller-manager tier: control-plane type: NodePort
kubectl apply -f kube-controller-manager.yaml
集群外部访问k8s集群中pod应用,流量走向:物理节点ip:port—>service ip:port–>pod ip:port
第二种方法:
kubectl delete -f kube-controller-manager.yaml
修改prometheus-cfg的yaml文件,新增一个job来监控kube-controller-manager cat prometheus-cfg.yaml
--- kind: ConfigMap apiVersion: v1 metadata: labels: app: prometheus name: prometheus-config namespace: monitor-sa data: prometheus.yml: | global: scrape_interval: 15s scrape_timeout: 10s evaluation_interval: 1m scrape_configs: - job_name: kubernetes-node kubernetes_sd_configs: - role: node relabel_configs: - source_labels: [__address__] regex: (.*):10250 replacement: ${1}:9100 target_label: __address__ action: replace - action: labelmap regex: __meta_kubernetes_node_label_(.+) - job_name: kubernetes-node-cadvisor kubernetes_sd_configs: - role: node scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token relabel_configs: - action: labelmap regex: __meta_kubernetes_node_label_(.+) - target_label: __address__ replacement: kubernetes.default.svc:443 - source_labels: [__meta_kubernetes_node_name] regex: (.+) target_label: __metrics_path__ replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor - job_name: kubernetes-apiserver kubernetes_sd_configs: - role: endpoints scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token relabel_configs: - source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name] action: keep regex: default;kubernetes;https - job_name: kubernetes-service-endpoints kubernetes_sd_configs: - role: endpoints relabel_configs: - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape] action: keep regex: true - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scheme] action: replace target_label: __scheme__ regex: (https?) - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_path] action: replace target_label: __metrics_path__ regex: (.+) - source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port] action: replace target_label: __address__ regex: ([^:]+)(?::d+)?;(d+) replacement: $1:$2 - action: labelmap regex: __meta_kubernetes_service_label_(.+) - source_labels: [__meta_kubernetes_namespace] action: replace target_label: kubernetes_namespace - source_labels: [__meta_kubernetes_service_name] action: replace target_label: kubernetes_name - job_name: kubernetes-schedule scrape_interval: 5s static_configs: - targets: [192.168.124.16:10251] - job_name: kubernetes-controller-manager scrape_interval: 5s static_configs: - targets: [192.168.124.16:10252] kubectl delete -f prometheus-cfg.yaml kubectl apply -f prometheus-cfg.yaml kubectl delete -f prometheus-deploy.yaml kubectl apply -f prometheus-deploy.yaml