140 lines
2.5 KiB
Markdown
140 lines
2.5 KiB
Markdown
**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
|
||
|
||
```
|
||
|