次の方法で共有


Azure Monitor を使用して Kubernetes クラスターの正常性と状態を分析する

Azure Monitor には、Kubernetes クラスターから収集されたパフォーマンスデータとログ データを組み合わせて、その正常性とパフォーマンスを分析するのに役立つ一連のビューが Azure portal に用意されています。 この記事では、使用できるさまざまなビューと、表示されるデータを操作して解釈する方法について説明します。

マルチクラスター ビュー

マルチクラスター ビューを開くには、Azure portal の [監視] メニューの [分析情報] セクションから [コンテナー] を選択します。 このビューには、サブスクリプション内のリソース グループ間でデプロイされたすべての監視対象 Kubernetes クラスターの正常性状態が表示されます。 このビューを使用すると、重大または異常な状態にあるクラスターをすばやく識別でき、環境内のすべてのクラスターの監視を有効にして構成するのにも役立ちます。 詳細については、 AKS クラスターの監視を有効にする を参照してください。

Azure Monitor の複数クラスター ダッシュボードの例を示すスクリーンショット。

注記

このビューでは、Azure Stack (プレビュー) と Azure 以外 (プレビュー) はサポートされなくなりました。

[ ノード ] 列を選択して、そのクラスターの単一クラスター ビューで [ ノード ] タブを開きます。 [ユーザー ポッド] または [システム ポッド] 列を選択して、適切なフィルターを使用してクラスターの [コントローラー] タブ開きます。

次の表では、このビューに表示されるさまざまな正常性状態について説明します。 正常性状態は、クラスター全体の状態を 3 つの状態 のうち最悪の 状態として計算します。 3 つの状態のいずれかが [不明] の場合、クラスターの全体的な状態は [不明] と表示されます。

ステータス 説明
元気 VM に関する問題は検出されておらず、必要に応じて機能しています。
警告 1つ以上の問題が検出され、それに対処しない場合、健康状態が重大な状態になる可能性があります。
危うい 正常な動作状態を想定どおりに復元するために対処する必要がある 1 つ以上の重大な問題が検出されます。
無許可 ユーザーには、ワークスペース内のデータを読み取るために必要なアクセス許可や、データを収集するデータ収集規則がありません。
見つかりません ワークスペース、リソース グループ、またはワークスペースを含むサブスクリプションのいずれかが削除されました。
記録ルールを有効にする Prometheus の記録ルールを有効にして、パフォーマンスの高いデータと Prometheus の視覚化のロックを解除します。
正しく構成されていません 問題が発生しました。
エラー ワークスペースからデータを読み取ろうとしているときにエラーが発生しました。
データなし 過去 30 分間、データはワークスペースに報告されていません。
不明 サービスがノードまたはポッドとの接続を確立できなかった場合、状態は不明な状態に変わります。
保留中 通常、Arc 対応クラスターの監視構成には約 5 分かかります。 クラスターが Azure から切断されている場合、このプロセスが遅れる可能性があります。
X 時間保留中 Arc 対応クラスターの監視構成に予想以上に時間がかかっています。
失敗しました Arc 対応クラスターの監視構成が失敗しました。

次の表では、複数クラスター ビューでの監視対象クラスターの正常性状態を制御する計算の詳細を示します。

監視対象のクラスター ステータス 可用性
ユーザー ポッド 元気
警告
危うい
不明
100%
90 ~ 99%
<90%
過去 30 分以内に報告していない
システム ポッド 元気
警告
危うい
不明
100%
なし
100%
過去 30 分以内に報告していない
ノード 元気
警告
危うい
不明
>85%
60 - 84%
<60%
過去 30 分以内に報告していない

単一クラスター ビュー

単一クラスター ビューを開くには、マルチクラスター ビューからクラスターを選択するか、クラスターのメニューから [監視 ] を選択します。 このビューには、選択したクラスターの正常性とパフォーマンスをドリルダウンできる複数のタブがあります。

オプション

単一クラスター ビューの視覚化設定を示すスクリーンショット。

Option 説明
視覚化 ビューの設定に使用するデータ ソースを選択できます。 マネージド Prometheus の視覚化 は、Azure Monitor ワークスペースに格納されている Prometheus メトリックを使用する推奨設定です。 これらは、クラスターで Managed Prometheus を有効にすると有効 になります。 Log Analytics の視覚化では、 Log Analytics ワークスペースに格納されているパフォーマンス データが使用されます。 ログ プロファイルでパフォーマンス データを収集していない場合は、このデータを収集していない可能性があります。 Managed Prometheus がクラスターに対して有効になっていない場合、このオプションは使用できません。
リフレッシュ ビュー内のデータを更新します。
監視設定 クラスターの監視構成設定を開きます。 詳細については、 AKS クラスターの監視を有効にする を参照してください。
Grafana を表示する クラスターの Azure Monitor ワークスペースにリンクされている Managed Grafana インスタンスの一覧を表示します。 インスタンスのダッシュボードを開くか、インスタンスの構成を表示できます。
推奨されるアラート クラスターに推奨されるアラートを構成します。 詳細については、 Kubernetes クラスターの推奨アラートの作成 に関するページを参照してください。
すべてのクラスターを表示する マルチクラスター ビューを開きます。

データのフィルター処理

単一クラスター ビューの各タブには、表示されるデータをフィルター処理するためのオプションが用意されています。 各タブには、収集された 時間範囲 のフィルターがあります。 [ノード]、[コントローラー]、[コンテナー] タブを使用すると、[フィルターの追加] を選択して、フィルター データを追加したり、ノードまたは名前空間でフィルター データを追加したりできます

[概要] タブ

[ 概要 ] タブには、そのクラスターの正常性とパフォーマンスを示すタイルのセットが表示されます。 監視の特定の機能を有効にしていない場合、これらのタイルの一部が無効になる場合があります。 この場合、タイルにはクラスターのオンボード プロセスを起動するオプションが表示されます。 詳細については、 Azure portal を使用した Kubernetes 監視の有効化に 関するページを参照してください。

[ノード]、[コントローラー]、[コンテナー] タブ

[ノード]、[コントローラー]、[コンテナー] タブには、クラスターのこれらのリソースの一覧が表示されます。 クラスターのパフォーマンス データを収集していない場合、タブは無効になります。 この場合、タブにはクラスターのオンボード プロセスを起動するオプションが表示されます。 詳細については、 Azure portal を使用した Kubernetes 監視の有効化に 関するページを参照してください。

ステータス

[状態] フィールドのアイコンは、次の表に示すように、アイテムのオンライン状態を示します。

アイコン ステータス
待機中または一時停止
最後に報告された実行中。ただし、30 分を超えても応答しない
正常に停止したか、停止に失敗した
失敗の状態

メトリックの選択

[ノード]、[コントローラー]、[コンテナー] タブには、ビューの値に使用されるメトリックを選択するオプションが含まれています。

コンテナー ノード パフォーマンス ビューを示すスクリーンショット。

メモリ使用率を確認するには、[メトリック] ドロップダウン リストで [メモリ RSS] または [メモリ ワーキング セット] を選択します。 [Memory RSS](使用メモリ (RSS)) は、Kubernetes 1.8 以降でのみサポートされています。 それ以外では、Min % の値が、未定義または表示できない値を示す数値データ型である、NaN % として示されます。

メモリ ワーキング セットは、含まれている常駐メモリと仮想メモリ (キャッシュ) の両方を示し、アプリケーションが使用している合計になります。 メモリ RSS は、メイン メモリだけ (常駐メモリのみ) を示します。 このメトリックは、使用可能なメモリの実際の容量を示します。

  • 常駐メモリまたはメイン メモリは、クラスターのノードで使用可能なコンピューターのメモリの実際の容量です。
  • 仮想メモリは、メモリ不足時にオペレーティング システムがメモリからディスクにデータをスワップするために使用する予約済みハードディスク領域(キャッシュ)であり、必要に応じて再びメモリに取り込まれます。

メトリック計算の選択

パーセンタイル セレクターは、選択した時間範囲でメトリックを集計する方法を定義します。 集計列のタイトルは、選択したオプションと一致するように変更されます。

データのフィルターのパーセンタイル選択を示すスクリーンショット。

トレンドコラム

[傾向] 列の棒グラフ上にポインターを置くと、選択したメトリックに応じて、15 分のサンプル期間内の CPU またはメモリ使用率が各棒に表示されます。 キーボードからトレンド グラフを選択した後は、Alt + PageUp キーまたは Alt + PageDown キーを使用すると、それぞれの棒に個別に移動します。 バーの上にマウス ポインターを置いた場合と同じ詳細が表示されます。

トレンドバーチャートのホバーオーバーの例を示すスクリーンショット。

次の例では、一覧の先頭にあるノード aks-nodepool1- は、[コンテナー] の値が 25 です。 この値はデプロイされているコンテナーの合計数のロールアップです。

ノードあたりのコンテナーのロールアップの例を示すスクリーンショット。

プロパティ ウィンドウ

任意の項目を選択して、選択した項目のプロパティを表示するプロパティ ウィンドウを開きます。 Linux ノードを選択すると、 [Local Disk Capacity](ローカル ディスク容量) セクションに、ノードに対して表示される各ディスクの使用可能なディスク領域と使用割合も表示されます。 このウィンドウでは、ウィンドウの上部にある [ ライブ イベント ] タブを選択して、Kubernetes コンテナー ログ (stdout/stderror)、イベント、ポッド メトリックを表示することもできます。 この機能の詳細については、「Kubernetes ログ、イベント、およびポッド メトリックをリアルタイムで表示する方法」を参照してください。

ログ データの表示

定義済みのログ検索に基づいて選択したリソースのログ データを表示するには、プロパティ ウィンドウ から Log Analytics の [イベントの表示 ] を選択します。 このデータ クエリとログ クエリの詳細については、「 コンテナー ログのクエリ方法」を参照してください。

[ノード] タブ

次の表では、[ ノード ] タブの列について説明します。

説明
名前 ホストの名前。
ステータス ノードの状態の Kubernetes ビュー。
Min % ((%) 最小)、Avg % ((%) 平均)、50th % ((%) 50)、90th % ((%) 90)、95th % ((%) 95)、Max % ((%) 最大) 選択した期間中の、パーセンタイルに基づいたノードの平均率。
最小、平均、50、90、95、最大 選択した期間中の、パーセンタイルに基づいたノードの実際の平均値。 平均値は、ノードに設定されている CPU とメモリの制限から測定されます。 ポッドとコンテナーの場合は、ホストによってレポートされた平均値です。
Containers コンテナーの数。
Uptime ノードが起動または再起動されてから経過した時間を示します。
コントローラー コンテナーとポッド限定。 どのコントローラーに存在しているかが示されます。 コントローラーにないポッドもあるため、一部は N/A と表示される可能性があります。
Trend Min % (傾向 (%) 最小)、Avg % (傾向 (%) 平均)、50th % (傾向 (%) 50)、90th % (傾向 (%) 90)、95th % (傾向 (%) 95)、Max % (傾向 (%) 最大) 棒グラフの傾向は、コントローラーの平均パーセンタイル メトリック率を表しています。

[ ノード ] タブの行階層は、Kubernetes オブジェクト モデルに従います。 ノードを展開してポッドを表示します。 複数のコンテナーがポッドにグループ化されている場合、階層内の最後の行として表示されます。 ホストでプロセッサまたはメモリが不足している場合、ホスト上で実行されている、ポッドに関連しないワークロードの数を確認することもできます。

パフォーマンス ビューの Kubernetes ノード階層の例を示すスクリーンショット。

Windows Server コンテナーは、一覧のすべての Linux ベースのノードの後に表示されます。 Windows Server ノードを展開すると、そのノード上で実行されている 1 つ以上のポッドおよびコンテナーを表示できます。 ノードを選択すると、プロパティ ウィンドウにバージョン情報が表示されます。

Windows Server ノードが一覧表示されているノード階層の例を示すスクリーンショット。

Linux OS を実行している Azure Container Instances 仮想ノードは、一覧内の最後の AKS クラスター ノードの後に表示されます。 Container Instances 仮想ノードを展開すると、そのノード上で実行されている 1 つ以上の Container Instances ポッドおよびコンテナーを表示できます。 メトリックは、ノードではなく、ポッドについてのみ収集およびレポートされます。

Container Instances が一覧表示されているノード階層の例を示すスクリーンショット。

展開されたノードでは、ノード上で実行されているポッドまたはコンテナーからコントローラーにドリルダウンして、そのコントローラーでフィルター処理されたパフォーマンス データを見ることができます。 特定のノードの [コントローラー] 列の値を選択します。

パフォーマンス ビューでノードからコントローラーにドリルダウンする様子を示すスクリーンショット。

[その他のプロセス] エントリ ビューは、ノードでのリソース使用率が高い根本原因を明確に理解するのに役立ちます。 この情報は、コンテナー化されたプロセスとコンテナー化されていないプロセスの使用を区別するのに役立ちます。 これらは、ノードで実行されるコンテナー化されていないプロセスであり、次のものが含まれます。

  • 自己管理型またはマネージド型の Kubernetes 非コンテナー化プロセス
  • コンテナーの実行時プロセス
  • Kubelet
  • ノードで実行されているシステム プロセス
  • ノード ハードウェアまたは VM で実行されているその他の Kubernetes 以外のワークロード

その他のプロセスの値は Total usage from CAdvisor - Usage from containerized process です。

[コントローラー] タブ

[ コントローラー ] タブでは、コントローラー、仮想ノード コントローラー、およびコントローラーに接続されていない仮想ノード ポッドのパフォーマンス正常性を表示できます。

\<名前> コントローラーのパフォーマンス ビューを示すスクリーンショット。

行階層はコントローラーから始まります。 コントローラーを展開すると、1 つまたは複数のポッドが表示されます。 ポッドを展開すると、ポッドにグループ化されているコンテナーが最後の行に表示されます。 展開されたコントローラーからは、それが実行されているノードにドリルダウンして、そのノードでフィルター処理されたパフォーマンス データを見ることができます。 コントローラーに接続されていない Container Instances ポッドは一覧の最後に表示されます。

Container Instances ポッドが一覧表示されている [コントローラー] 階層の例を示すスクリーンショット。

特定のコントローラーの [ノード] 列の値を選択します。

パフォーマンス ビューでのコントローラーからノードへのドリルダウンの例を示すスクリーンショット

次の表では、[ コントローラー ] タブの列について説明します。

説明
名前 コントローラーの名前。
ステータス コンテナーの実行が完了した後のロールアップの状態。 状態アイコンには、ポッドでの指定内容に基づいた数が示されます。 これは、最も良くない 2 つの状態を示しています。 状態の上にマウス ポインターを移動すると、コンテナー内のすべてのポッドのロールアップ状態が表示されます。 準備完了の状態がない場合、状態の値は (0) と表示されます。
Min % ((%) 最小)、Avg % ((%) 平均)、50th % ((%) 50)、90th % ((%) 90)、95th % ((%) 95)、Max % ((%) 最大) 各エンティティの選択されたメトリックとパーセンタイルの平均率のロールアップ平均。
最小、平均、50、90、95、最大 選択したパーセンタイルにおけるコンテナの平均CPUミリコアまたはメモリのパフォーマンスの集計。 平均値は、ポッドに設定されている CPU/メモリ制限から測定されます。
Containers コントローラーまたはポッドのコンテナーの合計数。
Restarts コンテナーの再起動数のロールアップ。
Uptime コンテナーが起動されてからの経過時間を表します。
Node コンテナーとポッド限定。 どのコントローラーに存在しているかが示されます。
Trend Min % (傾向 (%) 最小)、Avg % (傾向 (%) 平均)、50th % (傾向 (%) 50)、90th % (傾向 (%) 90)、95th % (傾向 (%) 95)、Max % (傾向 (%) 最大) 棒グラフの傾向は、コントローラーの平均パーセンタイル メトリックを表しています。

[コンテナー] タブ

[ コンテナー ] タブでは、コンテナーのパフォーマンスの正常性を表示できます。

\<名前> コンテナーのパフォーマンス ビューを示すスクリーンショット。

コンテナーからは、ポッドまたはノードにドリルダウンして、そのオブジェクトでフィルター処理されたパフォーマンス データを見ることができます。 特定のコンテナーの [ポッド] または [ノード] 列の値を選択します。

パフォーマンス ビューでのノードからコンテナーへのドリルダウンの例を示すスクリーンショット

次の表では、[ コンテナー ] タブの列について説明します。

説明
名前 コンテナーの名前。
ステータス コンテナーの状態。
Min % ((%) 最小)、Avg % ((%) 平均)、50th % ((%) 50)、90th % ((%) 90)、95th % ((%) 95)、Max % ((%) 最大) 選択されたメトリックとパーセンタイルについて、各エンティティの平均パーセンテージをまとめたものです。
最小、平均、50、90、95、最大 選択されたパーセンタイルにおけるコンテナーの平均的なCPUミリコアやメモリ性能の集約。 平均値は、ポッドに設定されている CPU/メモリ制限から測定されます。
ポッド ポッドが存在するコンテナーです。
Node  コンテナーが存在するノードです。
Restarts コンテナーが起動されてからの経過時間を表します。
Uptime コンテナーが起動または再起動されてからの経過時間を表します。
Trend Min % (傾向 (%) 最小)、Avg % (傾向 (%) 平均)、50th % (傾向 (%) 50)、90th % (傾向 (%) 90)、95th % (傾向 (%) 95)、Max % (傾向 (%) 最大) 棒グラフの傾向は、コンテナーの平均パーセンタイル メトリック率を表しています。

次のステップ

  • Container insights を使用したパフォーマンス アラートの作成に関するページで、実際の DevOps や運用プロセスと手順をサポートするための CPU とメモリの使用率が高い場合のアラートの作成方法を確認します。
  • ログ クエリの例を表示して、事前定義されたクエリや例を確認し、実際のクラスターのアラート、視覚化、または分析のために評価やカスタマイズを行います。