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

Container Service for Kubernetes:カスタムコスト配分ポリシー

最終更新日:Jun 23, 2026

デフォルトのコスト配分戦略に加えて、コスト管理スイートではカスタムコストアカウンティングポリシーを作成できます。クラウドリソースのコストに対して独自のチャージバックロジックを定義するには、カスタムリソース価格を設定する設定ファイルを作成します。これにより、コストデータをビジネスロジックとより密接に整合させることができます。

ユースケース

カスタム価格設定により、IT コストをきめ細かく制御できます。一般的なユースケースは次のとおりです。

  • 内部運用チームが基盤となるコンピューティングリソースを一括で購入し、さまざまなビジネスチームに再販する。

  • 仕様の異なるノードで同一の Pod をスケジューリングすることによって生じる価格差をなくすことで、ビジネスレベルでコストを正規化する。

  • 差別化された価格設定を実装するには、Pod の単位価格を計算する際にリソースリミットを含める必要があります。

これらのシナリオに対応するため、コスト管理スイートはカスタム価格テンプレート機能を提供します。テンプレートを編集して、Pod の各リソースの単位価格を設定し、それらを集計して Pod のカスタムコストを決定できます。

説明

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

前提条件

ステップ 1: cost-exporter のカスタム価格の有効化

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

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

  3. ページ上部で、名前空間を kube-system に切り替えます。Deployment リストの アクション 列で、ack-cost-exporter の 詳細 > Yaml をクリックします。command セクションに '--enable-custom-price=true' を追加して、カスタム価格機能を有効にします。その後、更新 をクリックします。

    spec:
            containers:
            - command:
                - /root/alibaba-cloud-price-exporter
                - '--listen-address=:9091'
                - '--ali-user-id=1251182063904492'
                - '--cluster-id=c66b9e33984194a219813f6a7d402cdba'
                - '--region-id=cn-hangzhou'
                - '--cluster-type=ManagedKubernetes'
                - '--cluster-profile=Default'
                - '--enable-custom-price=true'
              env:
                - name: DefaultIDCPricePerCPUCoreHour
                  value: '0.2'

ステップ 2: 価格テンプレートの設定

操作手順

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

    重要
    • テンプレートの spec フィールド以下のフィールドはオプションです。spec 以下で設定されたすべてのフィールドが Pod のメタデータと一致する場合、その 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 に適用されます。

      • ラベルに app:nginx が含まれている

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

      • CPU リクエストが 500m で、リミットが 1 コアである

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

    • クラスター内の他のすべての Pod は template-default テンプレートを使用します。

    次の表にパラメーターを説明します。

    パラメーター

    説明

    name

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

    spec.labelSelector

    キーと値のペアのマップ。このセレクターで指定されたすべてのラベルを持つ Pod が一致すると見なされます。

    spec.namespaceSelector

    名前空間のリスト。一致するには、Pod の名前空間がこのリストに含まれている必要があります。

    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

    CPU の単位価格。コア時間あたりのコストで測定されます。

    price.memory

    メモリの単位価格。GiB/時あたりのコストで測定されます。

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

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

関連ドキュメント

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

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