私は Prometheusオペレーター0.34
(期待どおりに機能します)をクラスターにインストールしました[〜#〜] a [〜#〜](main prom) federation オプションを使用したいので、他のK8Sクラスターにある他のPrometheusからメトリックを収集します[〜 #〜] b [〜#〜]
Secnario:
- クラスター内にある[〜#〜] a [〜#〜]MAIN prometheus operator
v0.34
構成- 私はクラスタにいます[〜#〜] b [〜#〜]SLAVE prometheus
2.13.1
- 構成
どちらもhelm経由で正常にインストールされ、port-forwarding
経由でlocalhostにアクセスして、各クラスターのスクレイピング結果を確認できます。
次の手順を実行しました
オペレーターで使用(メインクラスター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
を確認できるようにするには(写真を参照)type:NodePort
を使用して type:LoadBalacer
を使用する代わりに、クラスターB
でプロメテウスサーバーを構成し、外部のメトリックを公開します。 、これはテストに適していますが、セキュリティで保護する必要があります、どのように実行できますか? e2eを安全な方法で動作させる方法...tls https://prometheus.io/docs/prometheus/1.8/configuration/configuration/#tls_config
クラスターA(メインクラスター)の内部では、次のようなistio
でoutサービスに証明書を使用します
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オペレーターconfig内で使用する必要がある証明書、メインのprometheus AまたはスレーブBの証明書がわかりませんか?
AdditionalScrapeConfigs
では、追加のプロメテウススクレイプ構成を含むシークレットのキーを指定できます。指定されたスクレイプ構成は、Prometheusオペレーターによって生成された構成に追加されます。
これは公式にはサポートされていません。ただし、prometheus.yml
Helmチャート内のセクション。詳細については、チェックアウト このブログ をご覧ください。
ここには2つのオプションがあります。
Prometheusおよびそのエクスポーターへの接続は、デフォルトでは暗号化および認証されません。 これはTLS証明書とstunnelでこれを修正する1つの方法です 。
または Secrets を指定して、スクレイプ構成に追加できます。
問題が解決した場合はお知らせください。
いくつかのオプションが思い浮かびます: