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

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

最終更新日:Oct 12, 2025

デフォルトのコスト配分ポリシーに加えて、コスト管理スイートはカスタムコスト会計ポリシーをサポートしています。クラウドリソースのコスト配分に対する要件が高い場合、またはコスト配分をカスタマイズする必要がある場合は、カスタムリソース価格を構成できます。

ユースケース

カスタムコスト会計ポリシーに基づいて、詳細な IT 支出ガバナンスを実装できます。カスタムコスト会計ポリシーは、次のシナリオに適しています。

  • 企業の O&M チームが、基盤となる計算資源を企業のさまざまな事業部門に再販する。

  • 企業は、動的なリソース価格によって生じる事業コストの差異をなくしたいと考えています。たとえば、同じ構成の Pod が異なる仕様のノードにスケジュールされると、ノードで発生する料金が異なります。

  • 企業のさまざまな部門が、異なるオーバーコミット率に基づいて、同じリソースリクエストを持つ Pod を同じノードにデプロイします。この場合、部門間で差別化されたコスト会計を実装するには、Pod の単価を計算する際にリソース制限を考慮する必要があります。

前述のデータカスタマイズの要件を満たすために、コスト管理スイートは、カスタムリソース単価を構成するために使用できるテンプレートを提供します。Pod が使用するリソースの単価を集計することで、Pod の単価を計算できます。

説明

カスタムリソース単価を構成した後、API 操作を呼び出すことによってのみ Pod 単価を取得できます。応答の `customCost` パラメーターは Pod 単価を示します。API 操作の呼び出し方法の詳細については、「API を呼び出してコストデータをクエリする方法の概要」をご参照ください。

前提条件

ステップ 1: cost-exporter のカスタムリソース価格設定機能を有効にする

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

  2. [クラスター] ページで、管理するクラスターを見つけてその名前をクリックします。左側のナビゲーションウィンドウで、[ワークロード] > [デプロイメント] を選択します。

  3. ページの上部で、Namespace ドロップダウンリストから kube-system を選択します。 ack-cost-exporter を見つけ、[アクション] 列で [その他] > [YAML で表示] を選択します。 command パラメーターに '--enable-custom-price=true' を追加します。 次に、[更新] をクリックします。image

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

手順

  1. price-template.yaml という名前のファイルを作成し、次の内容をファイルにコピーします。

    重要
    • spec パラメーターのすべてのフィールドはオプションです。spec パラメーターのすべてのフィールドが Pod のメタデータと一致する場合、テンプレートはその Pod に適用されます。spec パラメーターにフィールドが存在しない場合、テンプレートはすべての Pod に適用されます。

    • 複数のテンプレートが 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

    上記のテンプレートでは、次の詳細が指定されています。

    • 次のすべての条件を満たす Pod は、リソース価格設定に template-nginx テンプレートを使用します。

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

      • Pod が default または kube-system 名前空間に属している。

      • CPU リクエストは 500 ミリコアで、CPU 制限は 1 CPU コアです。

      • メモリリクエストは 512 MiB で、メモリ制限は 1 GiB です。

    • 他の Pod は、リソース価格設定に template-default テンプレートを使用します。

    次の表に、上記価格設定テンプレートのパラメーターを説明します。

    パラメーター

    説明

    name

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

    spec.labelSelector

    ラベルセレクター。Pod にラベルの 1 つがある場合、Pod はこの条件を満たします。

    spec.namespaceSelector

    名前空間セレクター。

    spec.resource.cpu

    Pod の CPU リクエスト。

    spec.resource.memory

    Pod のメモリリクエスト。

    spec.resource.cpu-overcommit-ratio

    CPU オーバーコミット率。CPU 制限を CPU リクエストで割った結果に等しくなります。

    spec.resource.memory-overcommit-ratio

    メモリオーバーコミット率。メモリ制限をメモリリクエストで割った結果に等しくなります。

    spec.price.cpu

    Pod の CPU 単価。単位: USD/コア時。

    spec.price.memory

    Pod のメモリ単価。単位: USD/GiB 時。

  2. 次のコマンドを実行して、kube-system 名前空間に price-template ConfigMap を作成します。

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

関連ドキュメント

  • クラスターのリソースウォーターマークに基づいて Pod コストを見積もることができます。単一リソースのコスト見積もり (CPU またはメモリに基づく) または加重リソースのコスト見積もり (CPU とメモリに基づく) を使用できます。詳細については、「コスト見積もりポリシー」をご参照ください。

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