kubernetes - 如何将 TLS 证书放入 pod 以与 Prometheus helm chart 一起使用?
问题描述
以下是 helm 图表值stable/prometheus
: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
我相信使用 and 有更好、更合适的方法来做到这Secret
一点mountPath
。我尝试了以下类似的方法,但没有运气:
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 图表以将 avolumeMount
放入prometheus-server
部署/pod 中,并且可以以某种方式更改我的 helm 命令。关于如何在那里获得我的证书的任何建议?
解决方案
根据文档,正确使用的密钥将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
推荐阅读
- apache - 从 Asp.net 核心网络应用程序中检索窗口的用户名
- python - 如何知道何时发生过拟合?
- node.js - 从 React 浏览器收到套接字 IO 事件后确认 RabbitMQ 消息
- git - 使用 git difftool --dir-diff 时,我希望修改日期与原始文件/回购相匹配
- css - 返回 304 修改的背景图像未显示
- javascript - GoogleCloud 浏览器刷新问题
- python - Python,返回 url 列表的 IP 地址
- asp.net-mvc-4 - MVC 复选框列表绑定到模型
- ios - 如何使按钮(或任何其他元素)在点击时显示 SwiftUI 的 DatePicker 弹出窗口?
- reporting-services - SSRS 报告 - 找不到子报告