type
status
date
slug
summary
tags
category
icon
password
书籍

第15章

メトリクスサブシステムのインストールと設定

目標

メトリクス収集サブシステムをインストールし、設定する。

学習目標

  • メトリクスサブシステムの アーキテクチャと動作 を説明できるようになる。
  • メトリクスサブシステムを インストール できるようになる。

内容

  • メトリクスサブシステムのアーキテクチャの説明(およびクイズ)
  • メトリクスサブシステムのインストール(およびガイド付き演習)
 

メトリクスサブシステムのアーキテクチャの説明

目的

このセクションを完了すると、メトリクスサブシステムのアーキテクチャと動作を説明できるようになります。

メトリクスサブシステムの構成要素

OpenShiftのメトリクスサブシステムは、クラスタのパフォーマンスデータを収集し、長期保存 できる仕組みを提供します。
メトリクスは、各ノードおよびそのノードで動作するすべてのコンテナ について収集されます。
notion image

メトリクスサブシステムのアーキテクチャ

メトリクスサブシステムの概要

OpenShift のメトリクスサブシステムは、クラスタのパフォーマンスデータを収集し、長期保存するための仕組み です。各ノードと、そのノード内で稼働するすべてのコンテナのメトリクスが収集されます。
メトリクスサブシステムは、以下のオープンソースプロジェクトを基に構成されています。

1. Heapster

Heapster は、Kubernetes クラスタ内のすべてのノードからメトリクスを収集し、ストレージエンジンに転送するコンポーネント です。
  • Red Hat OpenShift では、Heapster のストレージエンジンとして Hawkular を使用します。
  • Heapster は、Kubernetes コミュニティによって開発され、サードパーティのアプリケーションがクラスタのパフォーマンスデータを取得できるように設計されています。

2. Hawkular Metrics

Hawkular Metrics は、時系列データの保存および取得を行う REST API を提供するコンポーネントです。
  • Hawkular Metrics は Cassandra をデータストアとして使用します。
  • Hawkular は、RHQ プロジェクト(Red Hat JBoss Operations Network の上流プロジェクト)の後継として開発され、Red Hat CloudForms のミドルウェア管理機能の一部を担っています。

3. Hawkular Agent

Hawkular Agent は、アプリケーションからカスタムメトリクスを収集し、Hawkular Metrics に転送するコンポーネント です。
  • アプリケーションは、Hawkular Agent に対して独自のメトリクスを提供できます。
  • Hawkular OpenShift Agent(HOSA)は、現在 テクノロジープレビュー機能 であり、デフォルトではインストールされません。Red Hat は、本番環境での使用を推奨していません

4. Cassandra

Cassandra は、非リレーショナルな分散型データベース であり、時系列データの保存に使用されます。

メトリクスサブシステムの独立性と必要なコンポーネント

OpenShift のメトリクスサブシステムは、他の OpenShift コンポーネントとは独立して動作します。ただし、以下の 3 つの機能を利用する場合には、メトリクスサブシステムが必要です。
  1. OpenShift Web コンソール
      • Web コンソールは Hawkular Metrics API を利用し、プロジェクト内の Pod のパフォーマンスグラフを表示します。
      • メトリクスサブシステムが導入されていない場合、グラフは表示されません。
      • 注意: メトリクス API へのリクエストは、ユーザーの Web ブラウザから直接送信され、OpenShift マスター経由ではありません。
  1. oc adm top コマンド
      • Heapster API を利用し、クラスタ内の Pod やノードの現在のリソース使用状況を取得します。
  1. Kubernetes のオートスケールコントローラー
      • Heapster API からデプロイメント内の Pod の現在の状態を取得し、スケーリングの判断を行います。

外部モニタリングシステムとの統合

OpenShift は、必ずしもフルセットのメトリクスサブシステムを導入する必要はありません
  • 既に 外部のモニタリングシステム を運用している場合、Heapster のみを導入 し、メトリクスの長期保存を外部システムに任せることが可能です。
  • もし外部モニタリングシステムがアラート通知やヘルスチェック機能のみを提供している場合、Hawkular API を利用してメトリクスを取得し、アラートを生成することもできます。

Heapster のメトリクス収集とクエリ機能

Heapster は、各ノードおよびノード内のコンテナのメトリクスを収集し、それらを集約して Pod、ネームスペース、クラスタ全体 のデータを提供します。Heapster が収集する代表的なメトリクスは以下の通りです。
  • ワーキングセット(Working set)
    • ノード上のすべてのプロセスが実際に使用しているメモリ量(バイト単位)。
  • CPU 使用量(CPU usage)
    • ノード上のすべてのプロセスが使用している CPU の量(ミリコア単位)。
    • 例: 10 ミリコア = CPU 1% の使用率に相当。
Heapster は、メモリ内に保持されているメトリクスに対して シンプルなクエリ を実行でき、特定の期間のデータを取得することが可能です。
Heapster のメトリクス詳細については、Heapster Storage Schema の公式ドキュメントを参照してください。

Heapster と Hawkular の利用方法

OpenShift のユーザーは、宣言されたリソース要求(Requests/Limits)実際のリソース使用量 の違いを理解する必要があります。
  • Pod のリソース要求(Requests) は、スケジューリング時に考慮されます。
  • リソース要求は、ノードの総容量から差し引かれ、ノードの利用可能な容量が決定 されます。
  • ただし、実際のリソース使用量はこの計算には影響しません。

oc describe node コマンドの挙動

  • OpenShift 3.9 以降、oc describe node コマンドは Pod が宣言したリソース要求のみを表示 します。
  • Pod がリソース要求を宣言していない場合、実際の使用量は考慮されません。
  • その結果、ノードの空き容量が実際より多く見える可能性があります

まとめ

  • Heapster: メトリクスの収集・集約を行う。
  • Hawkular Metrics: メトリクスの保存・取得を行う。
  • Hawkular Agent: アプリケーションのカスタムメトリクスを収集する(技術プレビュー)。
  • Cassandra: メトリクスを保存するデータベース。
  • メトリクスサブシステムを導入すると、Web コンソールのグラフ表示、oc adm top コマンド、オートスケーリングが利用可能になる。
  • OpenShift は、外部のモニタリングシステムとの統合にも対応している。
  • oc describe node は、リソース要求のみを表示し、実際のリソース使用量は考慮しない。
 

Web コンソールとノードメトリクスの取得

Web コンソールの表示内容

  • Web コンソールは oc describe node コマンドと同じ情報を表示 します。
  • Hawkular Metrics から取得した実際のリソース使用量も表示可能 ですが、OpenShift 3.9 では Pod とプロジェクト単位のメトリクスのみを表示 します。
  • ノード単位のメトリクスは Web コンソールでは確認できません

ノードの実際のリソース使用状況を確認する方法

  1. oc adm top コマンドを使用(ノードのハードウェア・仮想環境のキャパシティ状況を確認)
  1. 詳細な情報が必要な場合 → Linux の標準コマンドを使用(例: vmstat, ps
  1. Heapster API を利用(より詳細なメトリクスの取得が可能)

Heapster API のアクセス方法

Heapster API は外部から直接アクセスできない

  • OpenShift は Heapster をクラスタ外部には公開していません
  • Heapster にアクセスするには、OpenShift マスター API プロキシ機能を利用 する必要があります。
  • マスター API プロキシは、OpenShift の認証・アクセス制御ポリシーに基づいて動作 します。

Heapster API に curl でアクセスする例

以下の curl コマンドを使用すると、特定のノードのメモリ使用量(ワーキングセット)を取得できます。

コマンドのポイント

  1. OpenShift マスター API プロキシ URL を設定
      • openshift-infra ネームスペース内の Heapster サービスへプロキシ経由でアクセス。
  1. Heapster API の URL 設定
      • サービス名 heapster を URL に含める(ホスト名の代わりにサービス名を使用)。
  1. OpenShift ユーザーの認証トークンを取得
      • oc whoami -t コマンドでトークン取得(最低限クラスタの読み取り権限が必要)。
  1. curl で API にリクエスト送信
      • k: SSL 証明書の検証を無効化(必要に応じて)
      • H "Authorization: Bearer $TOKEN": 認証トークンをリクエストヘッダーに設定
      • ?start=$START: 特定のタイムスタンプ(UTC形式)以降のメトリクスを取得
        • 例: 2017-07-27T17:27:37Zdate '+%FT%TZ' コマンドで取得可能)

Hawkular の外部公開に関する注意点

  • Hawkular を外部アクセス可能にする場合、セキュリティ上の考慮が必要
  • 詳細は Red Hat OpenShift Container Platform の公式ドキュメント を参照。

他の監視ツールとの統合

  • Heapster や Hawkular API の利用が難しい場合、他のオープンソース監視ツール(Nagios、Zabbix など)と統合可能
  • OpenShift のオープンソース版(Origin)や Kubernetes コミュニティでは、これらのツールとの連携を提供。

まとめ

Web コンソールはノードのメトリクスを表示しない(Pod/プロジェクト単位のみ)。
ノードのリソース使用状況を確認するには oc adm top コマンドを使用
より詳細な情報を取得するには vmstat, ps, Heapster API などを活用
Heapster は外部から直接アクセスできない → OpenShift マスター API プロキシを利用。
監視ツールとの統合オプションもあり(Nagios, Zabbix など)

メトリクスサブシステムの適切なサイズ設計

概要

OpenShift のメトリクスサブシステムの適切なサイズ設計について説明します。詳細な情報は、Red Hat OpenShift Container Platform の公式ドキュメント(インストール & 設定ガイドスケーリング & パフォーマンスガイド)を参照してください。

メトリクスサブシステムのスケーリング

  • 各コンポーネント(Heapster、Hawkular、Cassandra)はそれぞれ独立したデプロイメントコントローラーを持ち、個別にスケール可能。
  • OpenShift クラスタ内のどこにでもデプロイ可能だが、本番環境ではメトリクス用に専用のノードを確保するのが一般的。
  • Cassandra と Hawkular は Java アプリケーション であり、大規模なヒープメモリを活用する。
    • デフォルト設定は中小規模の OpenShift クラスタ向け に調整済み。
    • テスト環境ではメモリ・CPU のデフォルト設定を変更 し、少ないリソースで動作させることも可能。
  • Heapster と Hawkular は標準の OpenShift ツールでサイズ変更・スケール調整が可能
    • 数百のノード、数千のプロジェクトのメトリクスを少数の Heapster & Hawkular ポッドで管理できる。
  • oc コマンドを使用してリソースの増減やレプリカ数の変更が可能。
    • ただし、推奨される設定方法は Ansible の変数を調整すること(次の「インストール」セクションで解説)。
  • Cassandra は oc コマンドではスケール不可(データベースはステートレスアプリではないため)。
    • Cassandra のスケーリング & 設定は Metrics インストール Playbook を使用

Cassandra の永続ストレージの確保

  • Cassandra は「共有なし(shared-nothing)」のストレージアーキテクチャを採用
    • 各 Cassandra ポッドは専用の永続ボリューム(PV)を使用。
  • 高可用性(HA)を実現するには、最低 3 つの Cassandra ポッドが必要
  • 一時ストレージ(ephemeral storage)も利用可能だが、データ消失のリスクあり
    • emptyDir ボリュームタイプはテスト環境向けであり、本番環境には 推奨されない
  • 必要なストレージサイズはクラスタの規模(ノード数 & Pod 数)だけでなく、メトリクスの保存期間 & 解像度にも依存
    • 適切なストレージサイズについては Red Hat の公式ドキュメントを参照

永続ボリュームの管理

  • Metrics インストール Playbook では、静的 or 動的プロビジョニング の永続ボリューム(PV)が利用可能。
  • Playbook は 一意のプレフィックス + 連番 を使用して 永続ボリューム要求(PVC)を作成
    • 静的に PV をプロビジョニングする場合は、同じ命名規則を適用することが推奨される

参考情報 & ドキュメントリンク

以下の公式ドキュメントに詳細情報が記載されています。
📘 Red Hat OpenShift Container Platform
📘 オープンソースプロジェクト

まとめ

各コンポーネント(Heapster, Hawkular, Cassandra)は個別にスケーリング可能
Heapster & Hawkular は標準の OpenShift ツールで管理可能だが、Cassandra は Ansible Playbook で設定が必要
高可用性(HA)構成には 3 つ以上の Cassandra ポッドが必要(各ポッドに専用の PV が必要)。
一時ストレージ(ephemeral storage)はテスト環境のみ推奨、本番環境では永続ストレージを使用
詳細な情報は OpenShift 公式ドキュメントを参照
 

 
相关文章
RedHat EX200 本番近い試験問題集
Lazy loaded image
RedHat EX200 本番試験問題集(有料版)
Lazy loaded image
82- 第17章:導入総復習-3:OpenShiftにマルチコンテナデプロイのラボ
Lazy loaded image
81- 第17章:導入総復習-2:docker,KubernetesおよびOpenShiftのラボ
Lazy loaded image
80- 第17章:導入総復習-1:総合レビュー
Lazy loaded image
79- 第16章:OpenShiftの管理と監視-8:ラボ
Lazy loaded image
68- 第15章:メトリクスサブシステムのインストールと設定-2:メトリクスサブシステムのアーキテクチャのテスト66- 第14章:アプリケーションデプロイメントの管理-7:ラボ
Loading...
みなみ
みなみ
一个普通的干饭人🍚
最新发布
35条書面-64問-1
2025年6月13日
TOKYO自習島
2025年6月10日
平成26年秋期 午後問1
2025年6月6日
令和5年秋期 午後問1
2025年6月6日
令和2年秋期 午後問1
2025年6月6日
業務上の規制-87問-1
2025年6月4日
公告

🎉 欢迎访问我的博客 🎉

🙏 感谢您的支持 🙏

📅 本站自 2024年9月1日 建立,致力于分享在 IT・MBA・不动产中介 等领域的学习与实践,并推动 学习会 的自主开展。
📖 博客语言使用比例
🇯🇵 日语 90% 🇨🇳 中文 8% 🇬🇧 英语 2%

📚 主要内容

💻 IT・系统与开发

  • 系统管理:Red Hat 等
  • 容器与编排:Kubernetes、OpenShift
  • 云计算:AWS、IBM Cloud
  • AI 入门:人工智能基础与实践
  • 技术笔记与考证经验

🏠 不动产 × 宅建士

  • 宅建士考试笔记

🎓 MBA 学习笔记

  • 管理学、经济学、财务分析等

🔍 快速查找内容(标签分类)

由于网站目前没有专门的设计,可能会导致查找信息不便。为了更快找到你感兴趣的内容,推荐使用以下标签功能 进行搜索!
📌 定期更新,欢迎常来看看!
📬 有任何建议或想法,也欢迎留言交流!