【发布时间】:2019-11-15 10:30:39
【问题描述】:
我正在努力弄清楚如何让 prometheus https://hub.helm.sh/charts/stable/prometheus 收集 etcd 统计信息。我知道我需要为它设置 tls,但是很难找到没有手动附加 ansible 步骤的好方法。有没有办法在工作节点上获取 etcd 证书并将它们挂载到 prometheus pod?
【问题讨论】:
标签: kubernetes prometheus grafana
我正在努力弄清楚如何让 prometheus https://hub.helm.sh/charts/stable/prometheus 收集 etcd 统计信息。我知道我需要为它设置 tls,但是很难找到没有手动附加 ansible 步骤的好方法。有没有办法在工作节点上获取 etcd 证书并将它们挂载到 prometheus pod?
【问题讨论】:
标签: kubernetes prometheus grafana
按照Monitoring External Etcd Cluster With Prometheus Operator,您可以轻松配置 Prometheus 以从 ETCD 抓取指标。
我们可以通过将证书创建为 kubernetes 机密和 将 tlsConfig 添加到我们的服务监视器。让我带你走过 整个过程。
步骤如下:
1) 创建etcdservice
2) 为 etcd 服务创建/附加 endpoints
3) 使用适当的 tlsconfig 创建服务监视器。下面的例子
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
labels:
k8s-app: etcd
name: etcd
namespace: kube-system
spec:
endpoints:
- interval: 30s
port: metrics
scheme: https
tlsConfig:
caFile: /etc/prometheus/secrets/kube-etcd-client-certs/etcd-client-ca.crt
certFile: /etc/prometheus/secrets/kube-etcd-client-certs/etcd-client.crt
keyFile: /etc/prometheus/secrets/kube-etcd-client-certs/etcd-client.key
serverName: etcd-cluster
jobLabel: k8s-app
selector:
matchLabels:
k8s-app: etcd
4) 创建 Etcd 客户端证书
5) 创建 Kubernetes Secrets 以及之前为 prometheus 和 etcd ca 创建的证书和密钥。这将允许 prometheus 安全地连接到 etcd。 示例:
kubectl -n monitoring create secret kube-etcd-client-certs --from-file=etcd-client-ca.crt=etcd-client.ca.crt --from-file=etcd-client.crt=etcd-client.crt --from-file=etcd-client.key=etcd-client.key
6) 更新 prometheus.yaml 以包含所创建机密的名称。
7) 部署 etcd-service、servicemonitor 和 prometheus manifests 到集群
kubectl apply -f etcd-service.yaml
kubectl apply -f etcd-serviceMon.yaml
kubectl apply -f prometheus-prometheus.yaml
享受
【讨论】: