【问题标题】:Access etcd metrics for Prometheus访问 Prometheus 的 etcd 指标
【发布时间】:2019-11-29 10:43:05
【问题描述】:

我已经使用 Kube Spray 建立了一个 v1.13 Kubernetes 集群。 我们的 etcd 在 K8s 集群之外作为 docker 容器运行。如果我检查 etcd 证书,我可以看到每个 etcd 都有自己的 ca、客户端证书和密钥。

如果我想为 Prometheus 抓取这些 etcd 容器的 /metrics 端点,哪些证书用于 HTTPS 端点?

【问题讨论】:

    标签: kubernetes prometheus etcd


    【解决方案1】:

    我还不确定这是否是最安全的方式。 但我拿走了其中一个 etcd 使用的 ca.pem、证书和密钥。

    我从三个中创建了一个 Kubernetes 秘密对象:

    kubectl create secret generic etcd-metrics -n monitoring --from-file=etcd-secrets/
    

    然后我将秘密添加为 Prometheus 配置中的 configmaps 以及下面作为我的抓取

    targets:
    - job_name: etcd
      scrape_interval: 15s
      scrape_timeout: 10s
      metrics_path: /metrics
      scheme: https
      static_configs:
     - targets:
       - 172.xxxxx:2379
       - 172.xxxxx:2379
       - 172.xxxxx:2379
     tls_config:
      ca_file: /etc/ssl/etcd/ca.pem
      cert_file: /etc/ssl/etcd/etcd-node.pem
      key_file: /etc/ssl/etcd/etcd-key.pem
      insecure_skip_verify: false
    

    【讨论】:

      【解决方案2】:

      虽然不完全符合您的要求,但我通过使用在监听 etcd's prometheus port :9379 的边车容器中运行的 socat 将身份验证推送到实际机器上取得了巨大成功,然后您可以将 prometheus 指向 http://${etcd_hostname}:9379/metrics 而无需处理这些指标端点的身份验证。

      我面前没有 socat 调用,但类似:

      socat tc4-listen:9379,reuseaddr,fork \
         openssl:127.0.0.1:2379,capath=/etc/kubernetes/pki/etcd/cacert.crt,key=/etc/kubernetes/pki/etcd/peer.key,cert=/etc/kubernetes/pki/etcd/peer.crt
      

      【讨论】:

        猜你喜欢
        • 2023-02-10
        • 1970-01-01
        • 2020-06-25
        • 2022-11-25
        • 2021-05-18
        • 1970-01-01
        • 2018-07-26
        • 1970-01-01
        • 2020-09-01
        相关资源
        最近更新 更多