この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

プロメテウスフェデレーターを有効にする

要件

デフォルトでは、プロメテウスフェデレーターはランチャーモニタリングと一緒にデプロイされるように構成されており、各プロジェクトモニタリングスタックはデフォルトで名前空間スコープのメトリクスをフェデレートするように設定されたクラスターのプロメテウスをデプロイします。

ランチャーモニタリングのインストール手順については、このページを参照してください。

デフォルトの設定は、既にランチャーモニタリングスタックと互換性があります。ただし、クラスター内のプロメテウスフェデレーターのセキュリティと使いやすさを最適化するために、ランチャーモニタリングに以下の追加設定を行うことをお勧めします:

cattle-monitoring-systemのネームスペースをSystem Project(またはクラスター内の他のプロジェクトにアクセスできる同様に制限されたプロジェクト)に配置してください。

プロジェクト-ネームスペース

プロメテウスオペレーターのセキュリティモデルは、デプロイされる名前空間(例:cattle-monitoring-system)がクラスター管理者以外の誰にも制限されたアクセスを持つことを期待しており、ポッドにexecすることによる特権の昇格を避けることができます(Helm操作を実行するジョブなど)。さらに、プロメテウスフェデレーターとすべてのプロジェクトプロメテウススタックをシステムプロジェクトにデプロイすることで、各プロジェクトプロメテウスがすべてのプロジェクトにわたってワークロードをスクレイプできるようになります。たとえネットワークポリシーがプロジェクトネットワーク分離を介して定義されていても。また、プロジェクトオーナー、プロジェクトメンバー、その他のユーザーに対して制限されたアクセスを提供し、彼らがアクセスすべきでないデータにアクセスできないようにします(すなわち、ポッドにexecすることを許可される、特定のプロジェクト外の名前空間をスクレイプする能力を設定するなど)。

  1. あなたのネームスペースを確認するために`System`プロジェクトを開いてください:

    Rancher UIでクラスター  プロジェクト/ネームスペースをクリックしてください。これにより、`System`プロジェクト内のすべてのネームスペースが表示されます:

    プロジェクト-ネームスペース
  2. `cattle-monitoring-system`ネームスペース内に既存のMonitoring V2インストールがある場合、そのネームスペースが`System`プロジェクトにない場合は、`cattle-monitoring-system`ネームスペースを`System`プロジェクトまたは制限されたアクセスのある別のプロジェクトに移動できます。そのためには、次のいずれかを行うことができます:

    • ネームスペースを`System`プロジェクトにドラッグアンドドロップするか

    • ネームスペースの右側にある を選択し、移動 をクリックして、Systemターゲットプロジェクト のドロップダウンから選択します。

      新しいプロジェクトに移動

rancher-monitoring を、Helmチャート自体によって作成されたリソースのみを監視するように構成してください。

各プロジェクトモニタリングスタックが他のネームスペースを監視し、すでに追加のカスタムワークロードメトリクスやダッシュボードを収集するため、Helm チャート自体によって作成されたリソースのみをクラスターのプロメテウススタックが監視するように、すべてのセレクターに以下の設定を構成することをお勧めします。

matchLabels:
  release: "rancher-monitoring"

以下のセレクターフィールドにはこの値を設定することをお勧めします。

  • .Values.alertmanager.alertmanagerSpec.alertmanagerConfigSelector

  • .Values.prometheus.prometheusSpec.serviceMonitorSelector

  • .Values.prometheus.prometheusSpec.podMonitorSelector

  • .Values.prometheus.prometheusSpec.ruleSelector

  • .Values.prometheus.prometheusSpec.probeSelector

この設定がオンになると、ラベル release: "rancher-monitoring" を追加することで、クラスターの Prometheus によって取得される ServiceMonitors または PodMonitors を常に作成できます。この場合、これらの ServiceMonitors または PodMonitors が存在するネームスペースがシステムネームスペースでなくても、プロジェクトモニタリングスタックによって自動的に無視されます。

ユーザーがプロジェクトネームスペースでクラスターの Prometheus に集約される ServiceMonitors および PodMonitors を作成できないようにしたい場合は、チャートの namespaceSelectors を設定して、システムネームスペースのみをターゲットにすることができます(これには cattle-monitoring-systemcattle-dashboards が含まれ、rancher-monitoring によってデフォルトでリソースがデプロイされる場所です。また、apiserver メトリクスを取得するために default ネームスペースを監視するか、デフォルトネームスペースに存在するサービスから apiserver メトリクスをスクレイプするカスタム ServiceMonitor を作成する必要があります)ので、クラスターの Prometheus が他の Prometheus Operator CR を取得しないように制限できます。その場合、システムネームスペース内から非システムネームスペースを監視できる ServiceMonitors を定義できるようにするために .Values.prometheus.prometheusSpec.ignoreNamespaceSelectors=true をオンにすることをお勧めします。

クラスターの Prometheus の CPU/メモリ制限を増加させます。

クラスターの設定に応じて、クラスターの Prometheus に大きな専用メモリを割り当てることが一般的に推奨されます。これは、通常、クラスター内で生成される大量の高カーディナリティのメトリクスが Prometheus に取り込まれることによって、メモリ不足エラー(OOMKilled)による再起動を避けるためです。これは、デフォルトの Rancher Monitoring スタックが通常のサイズのクラスターで動作するために約 4GB の RAM を期待する理由の一つです。ただし、すべてのプロジェクトモニタリングスタックが同じクラスターの Prometheus に`/federate`リクエストを送信し、その名前空間のシステムデータを連携させるためにクラスターの Prometheus が「稼働中」であることに依存している場合、クラスターの Prometheus に十分なCPU/メモリが割り当てられていることがさらに重要です。これにより、クラスター内のすべてのプロジェクト Prometheus にデータギャップを引き起こす可能性のある障害を防ぐことができます。

クラスターの Prometheus にどれだけのメモリを設定すべきかについての具体的な推奨はありません。これは完全にユーザーの設定に依存するためです(特にクラスター内で発生する高いchurn率や、その時に生成されるメトリクスの規模)。一般的に、設定ごとに異なります。

Prometheus Federator アプリケーションをインストールします。

  1. *☰ > クラスター管理*をクリックします。

  2. Prometheus Federator をインストールしたいクラスターに移動し、Explore をクリックします。

  3. アプリ -> チャート をクリックします。

  4. Prometheus Federator チャートをクリックします。

  5. [*インストール]*をクリックします。

  6. メタデータ ページで、次へ をクリックします。

  7. ネームスペース > プロジェクトリリースネームスペースプロジェクトID フィールドでは、System Project がデフォルトとして使用されますが、同様の 制限付きアクセス を持つ別のプロジェクトで上書きすることができます。プロジェクトIDは、ローカルのアップストリームクラスターで実行される以下のコマンドで見つけることができます。

  kubectl get projects -A -o custom-columns="NAMESPACE":.metadata.namespace,"ID":.metadata.name,"NAME":.spec.displayName
  1. [*インストール]*をクリックします。

*結果:*Prometheus Federator アプリは`cattle-monitoring-system`ネームスペースにデプロイされています。