Cost Insights を使用すると、ACK クラスター内のワークロードにおける安定性、パフォーマンス、およびコストに関するリスクを、問題が拡大する前に検出できます。すべての Pod のリソース使用量をトラッキングし、Burstable ポッドおよび BestEffort ポッド向けに専用のビューを提供するため、構成ミスのあるワークロードを特定して対応できます。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
Cost Insights が有効化されていること。詳細については、「Cost Insights の有効化」をご参照ください。
クラスターに対して Managed Service for Prometheus が有効化されていること。詳細については、「Managed Service for Prometheus」をご参照ください。
リソース構成が重要な理由
Kubernetes は、各 Pod のリソース要求(request)および制限(limit)に基づいて、サービス品質(QoS)クラスを割り当てます。ノードのリソースが逼迫した場合、Kubernetes はこの QoS クラスをもとに、どの Pod を優先的にエビクションするかを決定します。
Guaranteed
すべてのコンテナについて、リソース要求と制限が等しく設定されています。これらの Pod は最も高い安定性およびパフォーマンスを実現し、エビクション対象となる際には最後に選択されます。
Burstable
リソース要求は設定されていますが、リソース制限は設定されていません。そのため、ノードの全リソースを消費することが可能です。エビクションが必要な場合、Kubernetes はまず BestEffort ポッドを、次に Burstable ポッドをエビクションします。
BestEffort
リソース要求および制限のいずれも設定されていません。ノードにアイドルリソースがある場合にのみ実行され、リソースが不足した際に最初にエビクションされる対象です。
リソースの構成ミス(未設定、過少設定、過剰設定)は、具体的なリスクを引き起こします。
| 構成 | リソース | リスク |
|---|---|---|
| 未設定 | CPU | 安定性およびパフォーマンスが損なわれ、CPU リソース不足によりワークロードが応答しなくなる可能性があります。 |
| 未設定 | メモリ | 安定性が損なわれ、メモリ不足によりワークロードが終了するリスクがあります。 |
| 過少設定 | CPU | パフォーマンスが損なわれ、ワークロードの実行が遅くなったり、応答しなくなったりする可能性があります。 |
| 過少設定 | メモリ | 安定性が損なわれ、メモリ不足によりワークロードが終了するリスクがあります。 |
| 過剰設定 | CPU | リソース使用率が低く、不要なコストが発生します。 |
| 過剰設定 | メモリ | リソース使用率が低く、不要なコストが発生します。 |
安定性および効率性分析によるリスク特定
Cost Insights 内の 安定性および効率性分析 ページでは、クラスター全体のリソースリスクを評価するための 3 つの分析ビューが提供されます。
ページへのアクセス
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理対象のクラスターを見つけ、その名前をクリックします。左側のウィンドウから、[コストスイート] > [Cost Insights] を選択します。
[クラスターディメンション] タブで、[安定性および効率性分析] ページに移動します。このページには、QoS クラス別 Pod 数および合計リソース使用量の概要が表示されます。

すべての Pod のリソース使用率の確認
[クラスターポッドのリソース使用量分析] リストでは、デフォルトでクラスター内のすべての Pod の基本情報およびリソース使用率(使用量/要求量)が表示されます。リストを並べ替えまたはフィルター処理することで、極端な状態にあるワークロードを特定できます。
使用率が低い — Pod が過剰にプロビジョニングされており、実際には使用されないリソースに対して課金されている可能性があります。
使用率が高い — Pod の構成が不十分であり、ボトルネックが CPU かメモリかに応じて、パフォーマンスまたは安定性の問題を引き起こす可能性があります。
使用率が 100 % を超える — 使用量が要求量を上回っており、ワークロードの安定性に影響を与える可能性があります。
例: 次の図は、メモリ使用率の降順で並べ替えた Pod を示しています。表示されたすべての Pod がメモリ使用率 100 % を超えており、構成の見直しが必要かどうかを判断するためにさらに検討する必要があります。

Burstable ポッドのリソース構成の確認
[Burstable ポッドのリソース使用量分析] リストでは、各 Burstable ポッドの CPU およびメモリの要求量と制限量が表示されます。Burstable ポッドは上限のないリソース利用が可能であるため、制限量の欠如はクラスター全体のパフォーマンスを静かに劣化させる可能性があります。
CPU 制限がない — Pod が無制限の CPU を消費でき、他のワークロードのリソースを枯渇させ、応答不能状態を引き起こす可能性があります。
メモリ制限がない — Pod がノードのメモリを枯渇させ、ワークロードの終了リスクを高めます。
例: 次の図は、CPU 制限が設定されていない Burstable ポッドを示しています。これらのポッドは、リソース競合によりクラスターのパフォーマンスを劣化させたり、エビクションの対象になったりする可能性があります。

予期しない BestEffort ポッドの特定
[Best Effort ポッドのリソース使用量分析] リストでは、クラスター内のすべての BestEffort ポッドが表示されます。BestEffort ポッドは最も高いエビクションリスクを有しており、慎重にレビューする必要があります。リストをフィルター処理または並べ替えることで、BestEffort クラスで実行すべきでないポッドを特定できます。
例: 重要なビジネスサービスが BestEffort ポッドとして実行されている場合、そのリソース構成を調整して、より高い QoS クラスへ昇格させてください。

次のステップ
Cost Insights を使用してリスクを特定した後は、以下の機能を活用して対応してください。
リソースプロファイリング — 過去の使用履歴データに基づき、コンテナ単位の CPU およびメモリ推奨値を取得します。
動的リソースオーバーコミットメント — 実際の使用パターンに基づきリソースをオーバーコミットすることで、クラスターのコスト効率を最適化します。