2017-07-19 4 views
1

私はprometheus-operatorを使用してPrometheusの展開をKubernetesクラスタに管理しています。設定は、メトリックが公開されるネットワークアドレスを与えるKubernetesエンドポイントを選択するいくつかのServiceMonitorを使用して、いくつかのアプリケーションポッドからメトリックを抽出するためにうまく機能しています。 prometheusオペレータの典型的な(必要な)ように、プロメテウスの設定はServiceMonitorsに基づいて発見されたKubernetesエンドポイントに基づいて生成されます。prometheus-operatorはKubernetesのcAdvisorから収集するようにどのように設定できますか?

プロメテウスの展開では、各クラスタノードでthe cAdvisor metrics published by kubeletを取得することもできます。私のクラスタ上のkubeletにcAdvisorがあり、それが有効になっていることを確認しました(ポート4194を訪問し、ネイティブcAdvisor Webインターフェイスを観察することによって)。しかし、私が見逃しているのは、prometheus-operatorに、これらのkubelet/cAdvisorサーバーのそれぞれを含むターゲットを使用してプロメテウスの配備を設定する方法です。

私が見つけたのはa prometheus-operator github issueで、ポスターのクラスタでという一部のcAdvisorメトリックが見つかりました。この説明は、kubelet/cAdvisorのKubernetesエンドポイントが何らかの形でprometheus-operatorによって作成された後、追加のServiceMonitorがそれらを見つけ、Prometheusに追加ターゲットを設定させることを示しています。しかし、これらのKubernetesエンドポイントは私のKubernetesクラスターには存在しません。

prometheusオペレータが設定したPrometheusのデプロイメントでこれらのメトリックを取得できるようにするには、何が必要ですか?

答えて

0

cAdvisorメトリックの収集を妨げる2つの問題があることが判明しました。

最初に、kubeletサービスとエンドポイントを作成および管理するオペレータの機能を有効にするために有効にする必要があるのはan option in prometheus-operatorです(kubeletにはこれらが通常はないため)。オペレータの設定に--kubelet-service=kube-system/kubelet --config-reloader-image=quay.io/coreos/configmap-reload:v0.0.1を追加した後、目的のkubeletエンドポイントが表示されました(2番目のオプションが何をしているか、必要であればわかりません;両方ともリンクされたドキュメントからコピーされています)。

次に、Prometheusの設定でServiceMonitorを選択する必要があります。 kubeletエンドポイントに一致するprometheus-operator文書のServiceMonitorにはいくつかのラベルがありますが、既存のPrometheusリソース定義と一致することは保証されていません。 ServiceMonitorのラベルを更新して、既存のPrometheusによって選択されるようにすると、cAdvisorの統計情報はすぐにPrometheusデプロイメントで利用できるようになります。

関連する問題