我已经在集群A (主舞会)上安装了Prometheus 运算符 0.34
(按预期工作)现在我想使用联合选项,我的意思是从位于其他 K8S 集群B上的其他 Prometheus 收集指标
Secnario:
- 在集群中有一个主要的普罗米修斯操作员
v0.34
配置- 我在集群B SLAVE prometheus
2.13.1
配置中
两者都通过 helm 成功安装,我可以通过 localhost 访问port-forwarding
并查看每个集群上的抓取结果。
我做了以下步骤
在操作员(主集群 A)上使用 additionalScrapeconfig
我已将以下内容添加到values.yaml
文件中并通过 helm 更新它。
additionalScrapeConfigs:
- job_name: 'federate'
honor_labels: true
metrics_path: /federate
params:
match[]:
- '{job="prometheus"}'
- '{__name__=~"job:.*"}'
static_configs:
- targets:
- 101.62.201.122:9090 # The External-IP and port from the target prometheus on Cluster B
我采取了如下目标:
在集群 B内的普罗米修斯上(我想从中收集数据)我使用:
kubectl get svc -n monitoring
并获得以下条目:
把EXTERNAL-IP
它放在additionalScrapeConfigs
配置条目中。
现在我切换到集群A
并运行kubectl port-forward svc/mon-prometheus-operator-prometheus 9090:9090 -n monitoring
打开浏览器,localhost:9090
查看图表并单击,Status
然后单击Targets
并通过工作看到新目标federate
现在我的主要问题/差距。(安全和验证)
- 为了能够看到
state
绿色的目标(参见图片),我在集群中配置 prometheus 服务器,B
而不是使用type:NodePort
将type:LoadBalacer
指标暴露在外部,这可能有利于测试,但我需要保护它,如何做到? 如何使 e2e 以安全的方式工作......
tls https://prometheus.io/docs/prometheus/1.8/configuration/configuration/#tls_config
在集群 A(主集群)内,我们将证书用于输出服务,istio
如下所示
tls:
mode: SIMPLE
privateKey: /etc/istio/oss-tls/tls.key
serverCertificate: /etc/istio/oss-tls/tls.crt
我看到文档里面有一个配置选项
additionalScrapeConfigs:
- job_name: 'federate'
honor_labels: true
metrics_path: /federate
params:
match[]:
- '{job="prometheus"}'
- '{__name__=~"job:.*"}'
static_configs:
- targets:
- 101.62.201.122:9090 # The External-IP and port from the target
# tls_config:
# ca_file: /opt/certificate-authority-data.pem
# cert_file: /opt/client-certificate-data.pem
# key_file: /sfp4/client-key-data.pem
# insecure_skip_verify: true
但不确定我需要在 prometheus operator config 中使用哪个证书,主 prometheus A 或从 B 的证书?