【问题标题】:ETCD certs data to PrometheusETCD 向 Prometheus 认证数据
【发布时间】:2019-11-15 10:30:39
【问题描述】:

我正在努力弄清楚如何让 prometheus https://hub.helm.sh/charts/stable/prometheus 收集 etcd 统计信息。我知道我需要为它设置 tls,但是很难找到没有手动附加 ansible 步骤的好方法。有没有办法在工作节点上获取 etcd 证书并将它们挂载到 prometheus pod?

【问题讨论】:

    标签: kubernetes prometheus grafana


    【解决方案1】:

    按照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
    

    享受

    【讨论】:

      猜你喜欢
      • 2019-11-29
      • 2018-07-26
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 2017-01-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多