2017-12-21 11 views
0

Kubernetesのサービス名をPrometheusのジョブ名に自動的に設定するにはどうすればよいですか?私は、K8で作成された新しいサービスをPrometheus設定のターゲットとして自動的に作成する方法があると言います。 Kubernetesでは、アプリケーションをサービスのセットとして展開したいと思います。kubernetesサービス名をPrometheusのジョブ名に自動的に設定する方法はありますか?

サービスごとに1つ以上のポッドが関連付けられている可能性があります。

マッピングは次のように行うことができる:プロメテウス仕事

しかし、私は本当にこれがいくつかと実現可能であるかどうかを知りませんでインスタンスにプロメテウスジョブズ

  • K8Sポッドに

    • Kubernetesサービスプロメテウスの構成変更。私がどこに間違っていたら私を修正してください。

      これが不可能な場合は、展開するたびにPrometheus設定ファイルに明示的にPrometheusジョブを作成する必要があります。

  • +0

    クラスタに複数のリソースを配置する作業を自動化したい場合は、ヘルムチャートを参照してください。 –

    +0

    ヘルムチャートは配備を容易にします。しかし、私の質問は、主に「サービス名に基づいて自動的にPrometheusジョブを作成する」ことです。 – Kodar

    答えて

    0

    通常、コンテナ/ポッドの代わりに通常のノードを使用する場合と同じように、ポッドごとのメトリックが必要になります。

    this Prometheus configurationを使用すると、クラスタ上で実行されているすべてのポッドのターゲットが自動的に取得されます。これがtrueにprometheus.io/scrapeセットが含まれていポッドは、対象となる、プロメテウスによって掻き取りされますので、これが設定されている、

    # Example scrape config for pods 
    # 
    # The relabeling allows the actual pod scrape endpoint to be configured via the 
    # following annotations: 
    # 
    # * `prometheus.io/scrape`: Only scrape pods that have a value of `true` 
    # * `prometheus.io/path`: If the metrics path is not `/metrics` override this. 
    # * `prometheus.io/port`: Scrape the pod on the indicated port instead of the 
    # pod's declared ports (default is a port-free target if none are declared). 
    - job_name: 'kubernetes-pods' 
    
        kubernetes_sd_configs: 
        - role: pod 
    
        relabel_configs: 
        - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape] 
        action: keep 
        regex: true 
        - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path] 
        action: replace 
        target_label: __metrics_path__ 
        regex: (.+) 
        - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port] 
        action: replace 
        regex: ([^:]+)(?::\d+)?;(\d+) 
        replacement: $1:$2 
        target_label: __address__ 
        - action: labelmap 
        regex: __meta_kubernetes_pod_label_(.+) 
        - source_labels: [__meta_kubernetes_namespace] 
        action: replace 
        target_label: kubernetes_namespace 
        - source_labels: [__meta_kubernetes_pod_name] 
        action: replace 
        target_label: kubernetes_pod_name 
    

    としては、上記のコメントで説明した重要な部分です。ポッドには、プロメテウス形式のメトリックを公開するメトリクスエンドポイントが必要です。 prometheus.io/pathprometheus.io/portを使用して、Prometheusがポッドのメトリックを探す場所を設定できます。

    +0

    助けてくれてありがとう、私は完全に自動ポッド発見とPrometheusターゲットへのマッピングという概念を理解しています。しかし、私はプロメテウスの自動雇用創出を楽しみにしています。新しい雇用創出は私のK8サービス名と同じでなければなりません。これは本当に可能ですか? – Kodar

    関連する問題