2017-03-20 10 views
0

1)kubernetesでは、多くのコンポーネント(ノード)にグループ別に表示したいメタデータがあります。例:さまざまなkuberentesコンポーネントのシャーディングメトリックの一般的なオプションは何ですか?

  • モニタのCPU使用率
  • モニタのCPU使用率のGPUを持つすべてのマシン上
  • モニタメモリ使用量
  • AA特定のゾーンで標識されているすべてのマシン(kubelets)でモニターメモリ使用量(すなわち、「ASIA-EAST-1」)

その他:ノードで測定されているメトリック前記ノード上に存在する任意のラベルまたはテントによってそれを閲覧/照会することを望むかもしれない。

いずれの場合でも、メトリックはこれらのすべてのデータのラベルとともに出力されないためです。

一つの解決策:多くのプロメテウスマスター

これまでのところ、私は一つの解決策を考えてきました:ノードの異なる論理グループごとに個別のプロメテウスマスター。これにより、管理者は/ラベル= SSD = 16ギガバイト、

  • そのリストからCSVを作成し、
  • 使用ワットのすべてのノードの任意のラベルでメトリックをロールアップの巨匠、すなわち

    • クエリクラスタを作成できるようになりますプロメテウスマスター、
    • 使用のためのエンドポイントとして、それ特定のデータソース「としてその。

    2)この問題へのよりエレガントな解決策はありますか?は

    上記の解決策は、恐怖に襲われています。あなたのメトリクスを分割する方法として、grafanaの "データソース"の概念を "ハック"するだけの仕事をしています。

    3)さらにいくつかの、クレイジーなアイデア...たぶんgrafanaは独自のグループを追加するために十分にスマートであるだけ...ホストによるkubernetesに指標をシャードする方法についてのより広範な会話をシード

    • を支援しますどういうわけか?
    • また、grafanaを拡張してプロメテウスマスターのポーリング/ロールアップ自体を行うことはできますか?
  • +0

    私は実際にこの問題を理解していませんが、複数のPrometheusマシンは良い、スケーラブルな答えのようには聞こえません。これらのメタデータでメトリックが発行されていないので、あなたは「なぜこのようなケースか分かりません」と言っています。 Telegraf(内部ドッカー)を使用してメトリックを発信します。私たちが放出するように指示するものを放出するので、あなたはkubeletsでこれを行うことができると思います。 ただし、ホストレベルのメトリックでありコンテナレベルのメトリックではないため、一部のメトリックはコンテナ内では意味がありません。 – FuzzyAmi

    +0

    ノード属性でクエリをグループ化したいという単純な問題です。 1つの選択肢は、ノードレベルのメトリックごとにすべてのノードラベルとラベルをエクスポートすることですが、データコストがかかる可能性があります。もう1つの選択肢は、異なるホストからのデータをサーバーがスクラップするようにすることです。これは複雑なコストがかかります。 – jayunit100

    +0

    ありがとう!私はあなたが言っていることを理解しています。しかし、それは本当に問題ですか?実際には非常に多くのノードレベルのメトリックがありますか?私は多くのホストレベルのメトリック(そのホスト上のすべてのノードに共通)があるかもしれないと思いますが、ほとんどの場合、ノードレベルのメトリックは実行中のアプリケーションからのものです。私の経験では)。 – FuzzyAmi

    答えて

    0

    一般に、同じ障害ドメイン内に物事を維持するために、データセンターごとに1つのPrometheusがあります。負荷の問題があれば、将来的にそれを分けるかもしれませんが、ノードの輸出業者の統計情報はそれほどありません。

    https://www.robustperception.io/scaling-and-federating-prometheus/は、一般的なスケーリング手法を説明している。

    https://www.robustperception.io/how-to-have-labels-for-machine-roles/は、GPUの存在などに基づいて集計する方法を説明しています。

    ゾーンはターゲットラベルとして終了すると考えられますので、特別な配慮は必要ありません。

    関連する問題