1.3. モニタリングスタックについて - 主な概念
OpenShift Dedicated のモニタリングの概念と用語を解説します。クラスターのパフォーマンスとスケールを向上させる方法、データを保存および記録する方法、メトリクスとアラートを管理する方法などを説明します。
1.3.1. パフォーマンスとスケーラビリティーについて リンクのコピーリンクがクリップボードにコピーされました!
クラスターのパフォーマンスとスケールを最適化できます。次のアいずれかのアクションを実行して、モニタリングスタックを設定できます。
モニタリングコンポーネントの配置と分散を制御します。
- ノードセレクターを使用して、コンポーネントを特定のノードに移動します。
- taint されたノードにコンポーネントを移動できるように toleration を割り当てます。
- Pod トポロジー分散制約を使用します。
- CPU とメモリーのリソースを管理します。
1.3.1.1. ノードセレクターを使用したモニタリングコンポーネントの移動 リンクのコピーリンクがクリップボードにコピーされました!
ラベル付きノードで nodeSelector 制約を使用すると、任意のモニタリングスタックコンポーネントを特定ノードに移動できます。これにより、クラスター全体のモニタリングコンポーネントの配置と分散を制御できます。
モニタリングコンポーネントの配置と分散を制御して、システムリソースの使用を最適化し、パフォーマンスを高め、特定の要件やポリシーに基づいてワークロードを分離できます。
ノードセレクターと他の制約の連携
ノードセレクターの制約を使用してモニタリングコンポーネントを移動する場合、クラスターに Pod のスケジューリングを制御するための他の制約があることに注意してください。
- Pod の配置を制御するために、トポロジー分散制約が設定されている可能性があります。
- Prometheus、Alertmanager、およびその他のモニタリングコンポーネントでは、コンポーネントの複数の Pod が必ず異なるノードに分散されて高可用性が常に確保されるように、ハードなアンチアフィニティールールが設定されています。
ノード上で Pod をスケジュールする場合、Pod スケジューラーは既存の制約をすべて満たすように Pod の配置を決定します。つまり、Pod スケジューラーがどの Pod をどのノードに配置するかを決定する際に、すべての制約が組み合わされます。
そのため、ノードセレクター制約を設定しても既存の制約をすべて満たすことができない場合、Pod スケジューラーはすべての制約をマッチさせることができず、ノードへの Pod 配置をスケジュールしません。
モニタリングコンポーネントの耐障害性と高可用性を維持するには、コンポーネントを移動するノードセレクター制約を設定する際に、十分な数のノードが利用可能で、すべての制約がマッチすることを確認してください。
1.3.1.2. モニタリングのための Pod トポロジー分散制約について リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Dedicated Pod が複数のアベイラビリティーゾーンにデプロイされている場合、Pod トポロジーの分散制約を使用して、モニタリング Pod がネットワークトポロジー全体にどのように分散されるかを制御できます。
Pod トポロジーの分散制約は、ノードがリージョンやリージョン内のゾーンなど、さまざまなインフラストラクチャーレベルに分散している階層トポロジー内で Pod のスケジューリングを制御するのに適しています。さらに、さまざまなゾーンで Pod をスケジュールできるため、特定のシナリオでネットワーク遅延を改善できます。
Cluster Monitoring Operator によってデプロイされたすべての Pod に対して Pod トポロジーの分散制約を設定し、ゾーン全体のノードに Pod レプリカをスケジュールする方法を制御できます。これにより、ワークロードが異なるデータセンターまたは階層型インフラストラクチャーゾーンのノードに分散されるため、Pod の可用性が高まり、より効率的に実行されるようになります。
1.3.1.3. モニタリングコンポーネントの制限と要求の指定について リンクのコピーリンクがクリップボードにコピーされました!
ユーザー定義プロジェクトを監視する以下のコンポーネントのリソース制限および要求を設定できます。
- Alertmanager
- Prometheus
- Thanos Ruler
リソース制限を定義することで、コンテナーのリソース使用量を制限し、コンテナーが CPU およびメモリーリソースの指定された最大値を超えないようにします。
リソース要求を定義することで、要求されたリソースに一致するのに十分な CPU およびメモリーリソースがあるノードでのみコンテナーをスケジュールできることを指定します。