**vim etcd-svc.yaml** ``` apiVersion: v1 kind: Endpoints metadata: labels: app: etcd-prom name: etcd-prom namespace: kube-system subsets: - addresses: - ip: YOUR_ETCD_IP01 - ip: YOUR_ETCD_IP02 - ip: YOUR_ETCD_IP03 ports: - name: https-metrics port: 2379 # etcd端口 protocol: TCP apiVersion: v1 kind: Service metadata: labels: app: etcd-prom name: etcd-prom namespace: kube-system spec: ports: - name: https-metrics port: 2379 protocol: TCP targetPort: 2379 type: ClusterIP ``` ​ **servicemonitor.yaml** ``` apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: etcd namespace: monitoring labels: app: etcd spec: jobLabel: k8s-app endpoints: - interval: 30s port: https-metrics # 这个port对应 Service.spec.ports.name scheme: https tlsConfig: caFile: /etc/prometheus/secrets/etcd-ssl/etcd-ca.pem #证书路径 certFile: /etc/prometheus/secrets/etcd-ssl/etcd.pem keyFile: /etc/prometheus/secrets/etcd-ssl/etcd-key.pem insecureSkipVerify: true # 关闭证书校验 selector: matchLabels: app: etcd-prom # 跟Service的lables保持一致 namespaceSelector: matchNames: - kube-system ``` ​ **mysql-exporter.yaml** ``` --- apiVersion: apps/v1 kind: Deployment metadata: name: mysql-exporter namespace: monitoring spec: replicas: 1 selector: matchLabels: k8s-app: mysql-exporter template: metadata: labels: k8s-app: mysql-exporter spec: containers: - name: mysql-exporter image: registry.cn-beijing.aliyuncs.com/dotbalo/mysqld-exporter env: - name: DATA_SOURCE_NAME value: "exporter:exporter@(mysql.default:3306)/" imagePullPolicy: IfNotPresent ports: - containerPort: 9104 --- apiVersion: v1 kind: Service metadata: name: mysql-exporter namespace: monitoring labels: k8s-app: mysql-exporter spec: type: ClusterIP selector: k8s-app: mysql-exporter ports: - name: api port: 9104 protocol: TCP ``` ​ **mysql-sm.yaml** ``` apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: mysql-exporter namespace: monitoring labels: k8s-app: mysql-exporter namespace: monitoring spec: jobLabel: k8s-app endpoints: - port: api interval: 30s scheme: http selector: matchLabels: k8s-app: mysql-exporter namespaceSelector: matchNames: - monitoring ```