すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:登録済みクラスター向けコスト分析機能の利用方法

最終更新日:Mar 26, 2026

コスト分析機能を使用すると、登録済みクラスターのクラスターレベル課金内訳、名前空間ごとのコスト配分、リソース使用率の推移を確認できます。これにより、無駄なリソース使用を特定し、コスト削減を実現できます。

前提条件

開始する前に、以下の条件を満たしていることを確認してください。

制限事項

  • 課金データは、翌日 08:00:00 (UTC + 08:00) に利用可能になります。コスト分析機能を有効化する以前の期間の課金データは含まれません。

  • 前日比および翌日の推定コストのメトリックは、連続した 2 日分のデータが必要です。

  • 週次および月次累計コストは、各課金期間の初日にゼロにリセットされます。これは、請求書が取引日から 1 日後に生成されるためです。

  • コスト分析は、お客様のクラスターに専属するクラウドリソースのみを追跡します。複数のクラスターで共有されるリソースは対象外です。

  • 課金管理コンソールでコスト配分タグ(キー:ack.aliyun.com)を無効化すると、クラスターのコストデータ収集が停止します。収集を再開するには、コスト配分タグページで、キーが ack.aliyun.com のタグと、キーが ack.alibabacloud.com/nodepool-id のタグを有効化します。

  • 一部のリージョンでは、課金データを照会するために、クラスターがインターネットにアクセス可能である必要があります(NAT ゲートウェイなど経由)。

コスト分析機能の有効化

単一アカウント内でのコスト分析機能の有効化

ステップ 1:ack-cost-exporter への RAM 権限付与

onectl を使用する場合

  1. ローカルマシンに onectl をインストールしてください。「onectl を使用して登録済みクラスターを管理する」をご参照ください。

  2. 以下のコマンドを実行します。

    onectl ram-user grant --addon ack-cost-exporter

    期待される出力:

    RAM ポリシー ack-one-registered-cluster-policy-ack-cost-exporter を RAM ユーザー ack-one-user-ce313528c3 に正常に付与しました。

コンソールを使用する場合

  1. RAM ユーザーを作成します

  2. カスタムポリシーを作成します。以下に示す内容を指定し、ack-cost-exporter が必要な課金およびリソース価格 API へのアクセス権限を付与します。

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "bssapi:QueryInstanceBill",
                    "bssapi:DescribeInstanceBill"
                ],
                "Resource": "*",
                "Effect": "Allow"
            },
            {
                "Action": [
                    "ecs:DescribeDisks",
                    "ecs:DescribeSpotPriceHistory",
                    "ecs:DescribeInstances",
                    "ecs:DescribePrice"
                ],
                "Resource": "*",
                "Effect": "Allow"
            },
            {
                "Action": "eci: DescribeContainerGroupPrice",
                "Resource": "*",
                "Effect": "Allow"
            }
        ]
    }
  3. カスタムポリシーを RAM ユーザーにアタッチします

  4. RAM ユーザーの AccessKey ペアを作成します

    警告

    AccessKey ネットワークアクセス制限ポリシーを設定することにより、AccessKey の呼び出しを信頼できるネットワーク環境に制限します。

  5. 登録済みクラスターの kube-system 名前空間に、alibaba-addon-secret という名前のシークレットを作成します。

    kubectl -n kube-system create secret generic alibaba-addon-secret \
      --from-literal='access-key-id=<your AccessKey ID>' \
      --from-literal='access-key-secret=<your AccessKey Secret>'

ステップ 2:ack-cost-exporter のインストール

onectl を使用する場合

onectl addon install ack-cost-exporter

期待される出力:

アドオン ack-cost-exporter、バージョン **** がインストールされました。

コンソールを使用する場合

  1. ACK コンソールにログインし、左側ナビゲーションウィンドウで [クラスター] をクリックします。

  2. クラスター名をクリックし、左側ナビゲーションウィンドウで [アプリケーション] > [Helm] を選択します。ack-cost-exporter が既に Helm リリース一覧に表示されている場合は、継続する前に削除します。

  3. クラスター詳細ページの左側ナビゲーションウィンドウで、[操作] > [アドオン] を選択します。

  4. [アドオン] ページで、[ログおよびモニタリング] タブをクリックし、ack-cost-exporter を見つけ、右下の [インストール] をクリックします。その後、[OK] をクリックします。

複数アカウント間でのコスト分析機能の有効化

アカウント A の登録済みクラスターがアカウント B の ACK クラスターを管理する場合に、この構成を使用します。アカウント B の課金データにアクセスできるよう、アカウント B でコスト分析機能を承認する必要があります。また、アカウント A の ack-cost-exporter を、アカウント B のクラスターを指すように構成する必要があります。

役割の概要:

アカウント役割必要な操作
アカウント BACK クラスターをホスト自社の課金データへのアクセス権限を RAM に付与
アカウント A登録済みクラスターをホストack-arms-prometheus のインストールおよび ack-cost-exporter の構成

ステップ 1:アカウント B の RAM 権限の構成

  1. ACK コンソールにアカウント B の認証情報を使用してログインし、左側ナビゲーションウィンドウで [クラスター] をクリックします。

  2. 該当クラスターを見つけ、その名前をクリックします。左側ナビゲーションウィンドウで、[コストスイート] > [コスト分析] を選択します。

  3. ユーザーセンターで、ACK クラスターが課金データにアクセスできるよう承認します。承認手順はクラスタータイプによって異なります。ACK マネージドクラスター の場合:システムが自動的に AliyunCSManagedCostRole という RAM ロールを作成し、必要な権限を付与します。Managed Service for Prometheus はこのロールを引き受け、課金データにアクセスします。または、RAM クイック承認ページで直接承認することもできます。ACK 専用クラスター の場合:

    1. [コスト分析] ページで、[KubernetesWorkerRole-]*** をクリックします。

    2. RAM ロールの詳細ページの [権限] タブで、[k8sWorkerRole]**[ポリシー]** 列からクリックします。

    3. [ポリシードキュメント] タブで、[ポリシードキュメントの編集] をクリックします。

    4. コードエディタで、Statement フィールドに以下の内容を追加し、[OK] をクリックします。

      { "Action": [ "bssapi:QueryInstanceBill", "bssapi:DescribeInstanceBill" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "ecs:DescribeDisks", "ecs:DescribeSpotPriceHistory", "ecs:DescribeInstances", "ecs:DescribePrice" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "eci: DescribeContainerGroupPrice" ], "Resource": "*", "Effect": "Allow" }
      説明

      次のアクションブロックを挿入する前に、各アクションブロックの末尾にカンマを追加してください。

    アカウント B の ACK クラスターには、ack-arms-prometheus がインストールされていない必要があります。インストールされている場合は、続行する前に アンインストールする必要があります。

ステップ 2:アカウント A におけるコンポーネントのインストール

  1. 登録済みクラスターが実行されているアカウント A に ack-arms-prometheus をインストールします。詳細については、「登録済みクラスター向け Managed Service for Prometheus の有効化」をご参照ください。

  2. アカウント A の ack-cost-exporter を、アカウント B の ACK クラスターを指すように構成します。

    1. ACK コンソールにアカウント A の認証情報を使用してログインし、左側ナビゲーションウィンドウで [クラスター] をクリックします。

    2. 登録済みクラスター名をクリックし、左側ナビゲーションウィンドウで [アプリケーション] > [Helm] を選択します。ack-cost-exporter が既に Helm リリース一覧に表示されている場合は、継続する前に削除します。

    3. 左側ナビゲーションウィンドウで、[操作] > [アドオン] を選択します。

    4. [アドオン] ページで、[ログおよびモニタリング] タブをクリックし、ack-cost-exporter を見つけ、右下の [インストール] をクリックします。

    5. [ack-cost-exporter のインストール] ダイアログで、[registeredAckClusterId] をアカウント B の ACK クラスターのクラスター ID に設定し、[OK] をクリックします。

コスト定義

ダッシュボードを確認する前に、主要なコストメトリックとその計算方法を理解してください。

用語説明
割引適用後の実際の課金コストクラスター内のクラウドリソースに対する支払額(割引適用後)。これがデフォルトの表示です。
割引なしの元の課金コストAlibaba Cloud 国際サイトのリスト価格に基づく請求額です。詳細については、請求詳細をご参照ください。
リアルタイム推定コスト名前空間ごとの推定コストで、Σ (Pod のリソース要求量 / ノードの容量) × ノードの単位価格 で算出されます。異なる仕様および課金方法のノード間の価格差を考慮しています。割引、クーポン、サブスクリプションによる課金遅延のため、推定コストは実際の請求額と異なる場合があります。
割り当てられたコスト実際のクラスターコストに名前空間のコスト比率を乗じた値。これにより、名前空間の実際の支出額を近似できます。
前日比前日のコストと 2 日前のコストの比率。緑色は減少を、赤色は増加を示します。
名前空間または Pod 単位のアプリケーションコストは、請求額に基づいて算出されます。CPU リソース要求が設定されていない名前空間は、名前空間コストの計算対象から除外されます。

注意事項

コスト分析機能を有効化した後、課金データは翌日 08:00:00 (UTC + 08:00) に表示されます。任意のダッシュボードの右上にあるドロップダウンリストを使用して、時間範囲を変更できます。デフォルトの時間範囲は過去 7 日間です。

クラスターディメンション

フィルター基準

image.png
機能番号説明
クラスターコスト分析オプション(1)2 つのオプション: [割引適用後の実際の課金額](デフォルト)— クラスター内のクラウドリソースの支払額。[割引適用前の元の課金額] — リスト価格に基づく請求額。「請求書の詳細」をご参照ください。
コスト配分モデル(2)4 つのモデル:CPU モデル(デフォルト) — CPU リソース要求量に基づき Pod のコストを推定;メモリモデル — メモリリソース要求量に基づき Pod のコストを推定;CPU・メモリハイブリッドモデル(推奨重み) — 推奨される CPU およびメモリの重みを使用;CPU・メモリハイブリッドモデル(カスタム重み) — カスタム重みを使用(CPU 重み設定 (%)費用見積もりポリシー の設定が必要)。詳細については、「」をご参照ください。
時間範囲(3)ダッシュボードに表示されるデータの時間範囲。デフォルトは過去 7 日間です。

クラスターコストの概要

image
機能番号説明
使用中のコスト配分モデル(1)現在有効なコスト配分モデルを表示します。デフォルトでは CPU モデルが選択されています。
前日のコスト、週次累計コスト、月次累計コスト(2)すべての数値は、クラスター内のクラウドリソースに対する請求額に基づきます。週次累計コストは月曜日に、月次累計コストは毎月 1 日にリセットされます。これは、請求書が取引日から 1 日後に生成されるためです。前日比は、前日のコストとその 1 日前のコストを比較します。緑色は減少を、赤色は増加を示します。
クラスターコストおよび容量の推移(3)黄色の曲線はクラスターコストを、青色の曲線は実際のクラスター容量を示します。曲線が乖離する場合、通常は CPU コアあたりの平均コストが変化していることを意味します。高価なリソースが使用されていないか確認してください。
名前空間ごとのリアルタイム推定コスト(4)各名前空間の推定コストで、その名前空間内のすべての Pod のコストの合計として算出されます。
名前空間ごとの割り当てられたコスト(5)コスト分析機能が使用する式:Σ (Pod のリソース要求量 / ノードの容量) × ノードの単位価格。割り当てられたコストを得るには、クラスターコストの合計に名前空間のコスト比率を乗じます。

安定性および効率性の分析

image
機能番号説明
クラスター全体のリソース使用量(1)QoS クラス別 Pod 数およびクラスター全体のリソース使用量を表示します。
Pod のリソース使用量(2)すべての Pod の基本情報およびリソース使用量(使用量/要求量)を一覧表示します。フィルタリングおよびソートに対応しており、最も高いまたは最も低いリソース使用量を持つワークロードを特定できます。
Burstable Pod のリソース構成(3)Burstable Pod のリソース要求量および制限値を一覧表示します。フィルタリングおよびソートを使用して、リソースボトルネックを特定し、各 Burstable Pod がどの程度のクラスターリソースを消費しているかを把握できます。
BestEffort Pod のリソース構成(4)リソース要求量および制限値が設定されていないため、安定性リスクが高い BestEffort Pod を一覧表示します。フィルタリングおよびソートを使用して、予期しない BestEffort Pod を検出し、リスクを早期に解消できます。

詳細については、「コストインサイトを使用してクラスターワークロードのリスクを特定する」をご参照ください。

クラスターコスト分析

image
機能番号説明
クラウドリソースのコスト比率(1) および (2)クラスター内の各クラウドリソースタイプのコストシェアおよび、それらのコストが時間とともにどのように変化するかを表示します。これにより、コスト増加の主因となるリソースタイプを特定できます。
クラスター全体のコスト推移(3)クラスター全体のコストの日次変化を表示します。
ノードプールおよび仮想ノードのコスト(4)クラスター内の各ノードプールまたは仮想ノードのコストを表示します。
名前空間ごとのリアルタイム推定コストの推移(5)名前空間ごとの推定コストが時間とともにどのように変化するかを表示します。計算式:Σ (Pod のリソース要求量 / ノードの容量) × ノードの単位価格。割り当てられたコストを得るには、クラスターコストの合計に名前空間のコスト比率を乗じます。
クラスターのリソース要求量および使用率(6)リソースのウォーターマークを分析し、無駄なリソース使用を特定するのに役立ちます。Y 軸:クラスター内の合計割り当て可能リソース量。緑色のバー:現在の 1 時間におけるリソース要求量。黄色のバー:現在の 1 時間における実際のリソース使用量。割り当て済みだが未使用のリソース = 緑色のバー − 黄色のバー割り当て可能なクラスターリソース = Y 軸 − 緑色のバー。これらのメトリックを活用して、以下の点を実現できます:未割り当てリソースの無駄を避ける(約 20 % をバッファーとして未割り当てのままにし、必要に応じて Pod のリソース要求量を調整またはインスタンスのスペックダウンを行う);割り当て済みだが未使用のリソースの無駄を削減(名前空間レベルの統計を活用して過剰なリソース要求を持つ Pod を特定し、適切に調整);周期的なワークロードに最適なサイズ設定(ウォーターマークの推移を活用してクラスター容量を再設定し、スケーリングポリシーを構成)。
クラスターの課金詳細(7) および (8)クラウドリソースタイプまたはインスタンスごとに整理された日次課金記録。

オンプレミスノード向けカスタム価格の設定

デフォルトでは、コスト分析機能はオンプレミスノードおよびアプリケーションのコストを CNY 0.2/vCore 時間で計算します。このデフォルトをオーバーライドするための構成オプションが 2 つあります。

オプション 1:すべてのオンプレミスノードに一律の価格を設定

kube-system 名前空間内の ack-cost-exporter Deployment に、DefaultIDCPricePerCPUCoreHour 環境変数を追加します。単位は CNY/vCore 時間です。

env:
# CPU 単位価格を CNY 0.3/vCore 時間に設定。
- name: DefaultIDCPricePerCPUCoreHour
  value: "0.3"

オプション 2:特定のノードに価格を設定

ノードに node.kubernetes.io/price-per-day ラベルを追加します。単位は CNY/日です。以下のコマンドで、ノードの価格を CNY 100/日に設定できます。

kubectl label nodes <node-name> node.kubernetes.io/price-per-day="100"

よくある質問

コスト分析を有効化した直後にデータが表示されないのはなぜですか?

RAM ロールの権限付与が完了しているか確認してください。これは最も一般的な原因です。モニタリングデータの収集は、コスト分析機能の有効化から 3 分以内に開始されますが、課金データは翌日 08:00:00 (UTC + 08:00) に初めて表示されます。また、一部のリージョンでは課金データの照会にインターネットアクセス(NAT ゲートウェイなど)が必要であるため、クラスターがインターネットに接続可能であることも確認してください。

名前空間のコストが実際の請求額と異なるのはなぜですか?

名前空間のコストは、実際の請求額ではなくリスト価格に基づく推定値です。割引、クーポン、節約プランなどの適用により、実際のクラスターコストは削減されますが、これらは名前空間単位の推定には反映されません。名前空間の実際のコストに近い値を得るには、実際のクラスターコストに名前空間のコスト比率を乗じます。

一部のノードについて Pod のコストデータが表示されないのはなぜですか?

RAM ロールに、ecs:DescribeDisks 権限が不足している可能性があります。権限ポリシーにこの権限が含まれていることを確認してください。「コスト分析の有効化」のステップ 1 を参照してください。

請求書にクラスターで使用しているすべてのクラウドサービスが表示されないのはなぜですか?

コスト分析は、タグ ack.aliyun.com:{{ClusterId}} によってクラスターに専属と識別されたクラウドリソースのみを収集します。複数のクラスターで共有されるリソースは追跡対象外です。タグが無効化されている場合は、コスト配分タグ ページで、課金管理 コンソールの ack.aliyun.com および ack.alibabacloud.com/nodepool-id の両方のタグを再び有効化してください。

月次または週次の支出が予想よりも低くなっているのはなぜですか?

コストデータは、コスト分析機能を有効化した日付以降のみ収集されます。それ以前の期間の歴史的課金データは、計算に含まれません。