ノード弾性スケーリングダッシュボードは、O&M エンジニアに、Pod とノードのスケーリングアクティビティに関する統合ビューを提供します。リアルタイムのクラスター状態、過去の傾向、イベントレベルの詳細などを一元的に把握できるため、手動でクラスターログをクエリすることなく、キャパシティの問題を特定し、スケーリング失敗の根本原因を突き止めることができます。
前提条件
開始する前に、次のことを確認してください:
-
クラスターでノード弾性スケーリングダッシュボードが有効になっていること。有効にするには、チケットを送信してください。
-
クラスターで Kubernetes イベントセンターが有効になっていること。詳細については、「イベント監視」をご参照ください。
-
クラスターで監査ログ機能が有効になっていること。詳細については、「クラスター監査の使用」をご参照ください。
ノード弾性スケーリングダッシュボードの表示
-
Simple Log Service コンソールにログインします。[プロジェクト] セクションで、管理するプロジェクトをクリックします。
-
左側のナビゲーションウィンドウで、ダッシュボード > ダッシュボードリスト を選択します。
-
ダッシュボードリストで、クラスターの Kubernetes ノードスケーリングの概要を表示するダッシュボードをクリックします。
ダッシュボードには、クラスターの主要なスケーリングメトリックと傾向グラフが表示されます。そのメトリックカードとグラフについては、このトピックの「概要」、「Pod の詳細」、「ノードの詳細」セクションで説明します。したがって、このセクションはダッシュボードを開くためにのみ使用してください。
ダッシュボードレイアウト
ノード弾性スケーリングダッシュボードは、[概要]、[Pod の詳細]、[ノードの詳細]、[スケーリングアクティビティリスト] という 4 つの領域で構成されています。
概要
概要領域には、クラスターの健全性を迅速に評価するための 5 つの主要メトリックが表示されます。
| メトリック | 表示内容 |
|---|---|
| 総ノード数 | クラスター内の総ノード数。クラスター全体のキャパシティを示します。 |
| 利用可能なノード数 | KubeletReady 状態のノード。この数が総ノード数と異なる場合、一部のノードは KubeletNotReady 状態です。これは、ノードがクラスターに追加中であるか、障害が発生していることを示します。 |
| クラスターのスケーラビリティ | cluster-autoscaler が現在スケールアウトできるかどうか。Ready 状態でないノードの数が設定された上限を超えると、[いいえ] と表示されます。 |
| 最新のスケールアウトアクティビティ | 選択した時間範囲内のスケールアウトアクティビティの数。 |
| 最新のスケールインアクティビティ | 選択した時間範囲内のスケールインアクティビティの数。 |
Pod の詳細
| グラフ | 表示内容 |
|---|---|
| スケジュール不可な Pod の傾向 | 時間経過に伴う Pending 状態の Pod の数。この数が増加すると、通常はクラスターのスケールアウトが必要であることを示します。 |
| 退去させられた Pod の傾向 | 時間経過に伴う退去させられた Pod の数。急増は、ノードのリソース消費がしきい値に達したことを示します。 |
ノードの詳細
| グラフ | 表示内容 |
|---|---|
| ノードステータスの傾向 | 時間経過に伴う総ノード数、KubeletReady ノード数、および KubeletNotReady ノード数。過去 10 分以内に追加されたノードは、KubeletNotReady の数から除外されます。 |
| ノードのスケールアウト傾向 | 時間経過に伴うスケールアウトアクティビティ。各データポイントは、生成された ScaledUpGroup イベントの数に対応します。cluster-autoscaler のスケールアウトアクションごとに 1 つのイベントが生成されます。 |
| ノードのスケールイン傾向 | 時間経過に伴うスケールインアクティビティ。各データポイントは、生成された ScaleDown イベントの数に対応します。cluster-autoscaler のスケールインアクションごとに 1 つのイベントが生成されます。 |
スケーリングアクティビティリスト
スケーリングアクティビティリストには、すべてのスケーリング関連イベントが時系列で表示されます。Pod 名、ノード名、またはイベントタイプで検索して特定のアクティビティを見つけ、その詳細を確認できます。また、時間範囲でリストをフィルタリングし、結果をページごとに閲覧することもできます。
リストには次の 4 つの列が含まれます:
| 列 | 表示内容 |
|---|---|
| [時間] | スケーリングイベントが生成された日時。 |
| タイプ | イベントがスケールアウトかスケールインか。 |
| 詳細 | cluster-autoscaler が報告するイベントの説明。例: node removed by cluster autoscaler |
| ノード | イベントの対象となるノード。 |
問題の特定
異常なノードのチェック: [総ノード数] と [利用可能なノード数] を比較します。これらが異なる場合、一部のノードが異常な状態にあり、注意が必要です。
クラスターサイジングの評価: [ノードの詳細] 領域を開き、最近のピーク期間を含む時間範囲を選択し、スケーリングの傾向をワークロードの履歴と比較します。クラスターが期待どおりにスケールしなかった場合は、自動スケーリングの設定を見直してください。
スケーリング失敗のトラブルシューティング
Pending 状態の Pod が存在するがノードがスケールアウトしない場合
-
[概要] 領域で [クラスターのスケーラビリティ] メトリックを確認します。
-
[いいえ] と表示されている場合、cluster-autoscaler のスケールアウトがブロックされています。続行する前にクラスターの状態をトラブルシューティングしてください。
-
[はい] と表示されている場合、次のステップに進みます。
-
-
[スケーリングアクティビティリスト] で、Pod 名または
NotTriggerScaleUpイベントを検索します。 -
reasonフィールドを調べて、スケールアウトがトリガーされなかった理由を特定します。
スケールアウトはトリガーされたが完了できなかった場合
-
[スケーリングアクティビティリスト] で、
FailedToScaleUpGroupイベントを検索します。 -
reasonフィールドを調べて、cluster-autoscaler がスケールアウトを完了できなかった原因を特定します。
スケールアウトがトリガーされたタイミングを特定する場合
[スケーリングアクティビティリスト] で、Pod 名または TriggeredScaleUp イベントを検索し、イベントのタイムスタンプを確認します。
スケールインがトリガーされたタイミングを特定する場合
[スケーリングアクティビティリスト] で、ノード名または ScaleDown イベントを検索し、イベントのタイムスタンプを確認します。
スケールインが失敗した場合
[スケーリングアクティビティリスト] で、ノード名または ScaleDownFailed イベントを検索し、reason フィールドを調べます。