当前位置: 首页 > 知识库问答 >
问题:

如何将TLS证书放入pod中使用普罗米修斯舵图?

漆雕奇
2023-03-14

下面是stable/prometheus的helm图表值:https://github.com/helm/charts/blob/master/stable/prometheus/values.yaml

我能把这件事搞定:

helm upgrade --install prometheus stable/prometheus \
--set extraScrapeConfigs="- job_name: 'myjob'
  scrape_interval: 1s
  metrics_path: /metrics
  scheme: https
  static_configs:
    - targets: ['###.##.###.###:#####']
  tls_config:
    ca_file: /prometheus/ca.pem
    key_file: /prometheus/key.pem
    cert_file: /prometheus/cert.pem
    insecure_skip_verify: true"

为了做到这一点,我必须做:

kubectl cp localdir/ca.pem prometheus-server-abc:/prometheus -c prometheus-server
kubectl cp localdir/key.pem prometheus-server-abc:/prometheus -c prometheus-server
kubectl cp localdir/cert.pem prometheus-server-abc:/prometheus -c prometheus-server

我相信有一种更好、更恰当的方法可以使用secretmountpath来实现这一点。我尝试了类似以下的事情,但没有运气:

apiVersion: v1
kind: Secret
metadata:
  name: mysecret
data:
  ca.pem: base64encodedcapem
  key.pem: base64encodedkeypem
  cert.pem: base64encodedcertpem
kubectl apply -f mysecret
helm upgrade --install prometheus stable/prometheus \
--set extraSecretMounts="- name: mysecret-mount
  mountPath: /somepathinpod/mysecret
  secretName: mysecret" \
--set extraScrapeConfigs="- job_name: 'myjob'
  scrape_interval: 1s
  metrics_path: /metrics
  scheme: https
  static_configs:
    - targets: ['###.##.###.###:#####']
  tls_config:
    ca_file: /somepathinpod/mysecret/ca.pem
    key_file: /somepathinpod/mysecret/key.pem
    cert_file: /somepathinpod/mysecret/cert.pem
    insecure_skip_verify: true"

我希望证书神奇地出现在/somepathinpod上,但它们没有出现。

我假设我不需要克隆整个repo和手动编辑helm图表来将volumemount放入prometheus-server部署/pod中,并且可以以某种方式更改helm命令。有什么建议让我的证书在那里吗?

共有1个答案

狄雅珺
2023-03-14

根据文档,要使用的正确密钥应该是server.extrasecretmounts而不是仅仅extrasecretmounts

还可以通过以下方法验证在Kubernetes上生成的YAML是否包含正确的挂载:

kubectl get deployment prometheus-server-object-name -o yaml

重写.yaml

server:
  extraSecretMounts:
    - name: mysecret-mount
      mountPath: /etc/config/mysecret
      secretName: mysecret

extraScrapeConfigs: |
  - job_name: myjob
    scrape_interval: 15s
    metrics_path: /metrics
    scheme: https
    static_configs:
      - targets:
          - ###.##.###.###:#####
    tls_config:
      ca_file: /etc/config/mysecret/ca.pem
      key_file: /etc/config/mysecret/key.pem
      cert_file: /etc/config/mysecret/cert.pem
      insecure_skip_verify: true
helm upgrade -f override.yaml prometheus stable/prometheus
 类似资料:
  • 我试图使用现有的Prometheus(集群外部)从EKS集群内部聚合所有的指标,EC2(CPU、ram、disk)和POD(CPU、ram、disk)。我开始使用node-exporter、kube-state-metrics添加数据,但我一直坚持部署metrics-server。使用helm I conf并安装它,和正在提取数据,但是有人能告诉我如何将所有这些都提取到外部的Prometheus吗

  • 我将我的GKE API服务器升级到1.6,并正在将节点升级到1.6,但遇到了一个障碍... 我有一个prometheus服务器(版本1.5.2),运行在一个由Kubernetes部署管理的pod中,其中两个节点运行版本1.5.4Kubelet,一个新节点运行版本1.6。 但普罗米修斯仍然得到401。 更新:就像乔丹所说的kubernetes认证问题。在这里看到新的、更集中的问题;https://s

  • 摘要 由于导入的Grafana仪表板无法工作,我正在尝试找出如何在Prometheus查询中正确使用或运算符。

  • null 使用默认配置和轻微的定制。 我可以访问prometheus、grafana和alertmanager,查询度量标准并查看精美的图表。 但是prometheus-adapter在启动时不断抱怨它不能访问/发现度量: 在我的设置中,对于prometheus-adapter的正确值是什么?

  • 我的各种docker容器导出prometheus度量,但是我们的prometheus安装只需要从一个endpoint提取所有度量。不幸的是,这是无法改变的。因此,我需要在一个点上聚合所有度量,从普罗米修斯安装可以刮取度量。 此外,如果这个程序或脚本能够提供关于如何处理由不同endpoint导出的相同度量的额外逻辑,那就太好了。例如,如果我只是将不同的度量站点连接在一起,Prometheus在解释度

  • 我要监控的应用程序为健康检查提供了一个apiendpoint,该endpoint使用json中的指标进行响应。例如: 我已经设置了Prometheus blackbox\u exporter,以监视此endpoint是否返回200 Ok,但理想情况下,我也希望获得这些指标。我知道instrumentation直接从应用程序导出这些数据。但是,由于应用程序已经在导出json对象中我想要的内容,我更希