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

Container Service for Kubernetes:カスタムコスト会計ポリシー

最終更新日:Mar 25, 2026

デフォルトのコスト配分ポリシーに加え、コスト管理スイートではカスタムコスト会計ポリシーもサポートしています。カスタムのコスト配分またはチャージバックロジックが必要な場合は、カスタムリソース価格を含む構成ファイルを作成できます。これにより、コストデータをビジネスロジックに合わせることができます。

ユースケース

カスタムコスト会計により、より細やかな IT コストガバナンスが可能になります。代表的なユースケースは以下のとおりです。

  • 内部運用チームが基盤となる計算リソースを一括購入し、さまざまな業務部門に再販売する。

  • 業務レベルでコストを標準化し、同じ仕様の Pod を異なる仕様のノードにスケジューリングすることによるコストのばらつきを解消したい。

  • 複数の業務部門が同じノード上で、同じリソースリクエストを持つ Pod を異なるオーバーコミット率でデプロイしている。これらの部門間で差別化されたコスト会計を実現するために、Pod の単位価格にリソースリミットを反映させる必要がある。

こうしたカスタムコスト会計の要件に対応するため、コスト管理スイートではカスタム価格テンプレートを提供しています。テンプレートを編集して Pod リソースの単位価格を設定すると、それらが集計されて Pod の価格コストが算出されます。

説明

現在、Pod の価格コストは API 経由でのみ取得可能です。カスタム価格を有効化および設定後、API 応答内の customCost フィールドからコストデータを取得できます。API の使用方法の詳細については、「API によるコストデータ取得の概要」をご参照ください。

前提条件

ステップ 1: cost-exporter でカスタム価格を有効化する

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

  2. クラスターリスト ページで、ご利用のクラスター名をクリックします。左側のナビゲーションウィンドウで、ワークロード > デプロイメント をクリックします。

  3. ページ上部の [名前空間] ドロップダウンリストから kube-system を選択します。ack-cost-exporter デプロイメントを見つけ、アクション 列で、詳細 > Yaml を選択します。command セクションに '--enable-custom-price=true' を追加します。その後、更新 をクリックします。image

ステップ 2: 価格テンプレートを設定する

操作手順

  1. 以下のサンプルコードを含む price-template.yaml という名前のファイルを作成します。

    重要
    • テンプレート内の spec フィールド配下のすべてのフィールドは任意です。Pod のメタデータが spec 配下に設定されたすべてのフィールドと一致する場合、その Pod はテンプレートにマッチします。spec が空のテンプレートは、すべての Pod にマッチします。

    • テンプレートは記述順にマッチングされます。Pod が複数のテンプレートにマッチする場合、YAML ファイルの上から最初にマッチしたテンプレートがその Pod の価格付けに使用されます。

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: price-template
      namespace: kube-system
    data:
      template.yaml: |
        - name: template-nginx
          spec:
            labelSelector:
              app: nginx
            namespaceSelector:
              - default
              - kube-system
            resource:
              cpu: 500m
              memory: 512Mi
              cpu-overcommit-ratio: 2
              memory-overcommit-ratio: 2
          price:
            cpu: 0.2
            memory: 0.03
        - name: template-default
          price:
            cpu: 0.1
            memory: 0.02

    この価格テンプレートは以下を指定しています。

    • template-nginx 価格テンプレートは、次のすべての条件を満たすクラスター内の Pod に適用されます。

      • Pod に app:nginx ラベルが付与されている。

      • Pod が default または kube-system 名前空間にある。

      • CPU リソースリクエストが 500m、リソースリミットが 1 Core である。

      • メモリリソースリクエストが 512 MiB、リソースリミットが 1 GiB である。

    • template-default 価格テンプレートは、クラスター内のその他のすべての Pod に適用されます。

    以下の表はパラメーターの説明です。

    パラメーター

    説明

    name

    価格テンプレートの名前。

    spec.labelSelector

    Pod ラベルとのマッチングに使用するセレクター。

    spec.namespaceSelector

    マッチング対象の名前空間のリスト。

    spec.resource.cpu

    Pod の CPU リソースリクエスト。

    spec.resource.memory

    Pod のメモリリソースリクエスト。

    spec.resource.cpu-overcommit-ratio

    Pod の CPU オーバーコミット率。計算式:CPU リソースリミット / CPU リソースリクエスト。

    spec.resource.memory-overcommit-ratio

    Pod のメモリオーバーコミット率。計算式:メモリリソースリミット / メモリリソースリクエスト。

    price.cpu

    Pod の CPU 単位価格。単位:Core 時間。

    price.memory

    Pod のメモリ単位価格。単位:GiB 時間。

  2. 以下のコマンドを実行して、kube-system 名前空間に price-template という名前の ConfigMap を作成し、カスタム価格設定を適用します。

    kubectl apply -f price-template.yaml -n kube-system

関連ドキュメント

  • クラスタースケジューリングウォーターマークに基づいて Pod コストを見積もりできます。これには単一リソース (CPU またはメモリ) による見積もりと、重み付き混合 (CPU とメモリ) による見積もりが含まれます。詳細については、「コスト見積もりポリシーの概要」をご参照ください。

  • HTTP API リクエストを送信して、カスタム開発用にコストインサイトデータを取得できます。詳細については、「API を呼び出してコストデータを照会する概要」をご参照ください。