1.curl验证请求
curl -s https://10.x.x.x:2379/metrics --cacert /etc/etcd/ssl/ca.pem --cert /etc/etcd/ssl/server.pem --key /etc/etcd/ssl/server-key.pem
2.配置prometheus
- 创建secret
kubectl create secret generic etcd-certs --from-file=/etc/etcd/ssl/ca.pem --from-file=/etc/etcd/ssl/server.pem --from-file /etc/etcd/ssl/server-key.pem
- 配置prometheus (prometheus-config.yml)
#cat prometheus-config.yml
apiVersion: v1
kind: ConfigMap
metadata:
name: prometheus-config
data:
prometheus.yml: |
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'etcd'
metrics_path: /metrics
scheme: https
tls_config:
ca_file: /var/run/secrets/kubernetes.io/k8s-certs/etcd/ca.pem
cert_file: /var/run/secrets/kubernetes.io/k8s-certs/etcd/server.pem
key_file: /var/run/secrets/kubernetes.io/k8s-certs/etcd/server-key.pem
static_configs:
- targets: ['10.0.0.1:2379','10.0.0.2:2379','10.0.0.3:2379']
- 配置deployment挂载证书 (prometheus-deployment.yml)
新增如下配置
volumeMounts:
- mountPath: /var/run/secrets/kubernetes.io/k8s-certs/etcd/
name: k8s-certs
volumes:
- name: k8s-certs
secret:
secretName: etcd-certs
- 配置configmap新增etcd target (prometheus-config.yml)
- job_name: 'etcd'
metrics_path: /metrics
scheme: https
tls_config:
ca_file: /var/run/secrets/kubernetes.io/k8s-certs/etcd/ca.pem
cert_file: /var/run/secrets/kubernetes.io/k8s-certs/etcd/server.pem
key_file: /var/run/secrets/kubernetes.io/k8s-certs/etcd/server-key.pem
static_configs:
- targets: ['10.0.0.1:2379','10.0.0.2:2379','10.0.0.3:2379']
kubectl apply -f xx.yaml应用上述配置使其生效
3.访问prometheus验证
4.grafana中导入模版3070,效果如图
参考:
https://www.chenshaowen.com/blog/using-prometheus-in-the-cluster-to-collect-etcd-metrics.html