ポッドは、Container Service for Kubernetes (ACK) クラスターに配置可能な最小単位です。 ポッドコストは、クラスタコストの計算における重要な要素である。 異なるポッドは、異なるリソース仕様、スケジューリングポリシー、およびライフサイクルを有することができる。 したがって、ポッドのコストの見積もりは複雑です。 ACKは、さまざまな種類のコストを定義し、これらのコストの計算方法を提供するコストデータモデルを設計しました。 このモデルは、ACKクラスターのコストを正確に見積もり、クラスター、名前空間、アプリケーションなどのディメンションごとにビジネスユニットにクラスターコストを割り当てる方法を提供します。
用語
次の表に、コストデータモデルで使用される用語を示します。
期間 | 説明 |
総クラスターコスト | クラスターの総コスト。 |
クラスター資産コスト | クラスターが使用するクラウドリソースの請求書の合計支払い額。 |
間接クラスターコスト | クラスター管理料金など、クラスターの追加または間接コスト。 |
割り当てられたリソースコスト | クラスター内の割り当てられたリソースのコスト。 コストは、割り当てられたリソースの容量比にクラスタの資産コストを掛けることによって計算することができる。 |
アイドルリソースのコスト | クラスター内のアイドルリソースのコスト。 コストは、アイドルリソースの容量比にクラスタの資産コストを掛けることによって計算することができる。 |
ポッド割り当てコスト | 指定された期間内のクラスターの資産コストから割り当てられたポッドのコスト。 |
クラスターの総コストは、次の式に基づいて計算されます。総クラスターコスト=資産コスト + 間接コスト
。
クラスターの資産コストは、次の式に基づいて計算されます。資産コスト=割り当てられたリソースコスト + アイドルリソースコスト
。
割り当てられたリソースコストは、次の式に基づいて計算されます。割り当てられたリソースコスト=Σ (クラスター内のポッドの割り当てられたコスト)
次の図は、コストデータモデルのアーキテクチャを示しています。
コストデータモデル
クラスター資産コスト
ACKクラスターは、基本的なクラウドリソースとオプションのクラウドリソースを使用します。 基本リソースには、ECS (Elastic Compute Service) インスタンス、SLB (Server Load Balancer) インスタンス、ディスクなどのリソースが含まれます。 オプションのリソースには、PrometheusインスタンスやNAT Gatewayなどのリソースが含まれます。 クラスターの資産コストは、クラスターが使用するクラウドリソースの請求書の合計支払い額に等しくなります。
ack.aliyun.com:<クラスターID>
ラベルは、クラスターによって作成されたクラウドリソースに自動的に追加されます。 この一意のラベルを使用して、クラウドリソースの請求書をフィルタリングできます。上記のラベルは、クラスターで使用されるユーザー作成のクラウドリソースに手動で追加できます。 これにより、このラベルを使用してクラウドリソースの請求書をフィルタリングできます。
ポッド割り当てコスト
計算式
ほとんどの場合、ポッド請求書は生成されません。 クラスターの資産コストをコスト比でポッドに割り当てることができます。 次に、ポッドコストを集計して、さまざまなディメンションからビジネス料金を取得できます。 したがって、資産コストをポッドに割り当てる前に、ポッドのコスト比率を計算する必要があります。
ポッド割り当てコスト=ポッドコスト比 × クラスタ資産コスト
ポッドのコスト比は、割り当てられる総コストに対する模擬ポッドコストの比を指す。
ポッドコスト比=模擬ポッドコスト /割り当てられる総コスト
ポッドのシミュレートされた単価とポッドの稼働時間に基づいて、ポッドのコストをシミュレートできます。 ポッドのシミュレートされた単価を生成するときは、ポッドに割り当てられたリソース (CPUコア、メモリ、およびGPU) とリソースの単価を考慮する必要があります。
模擬ポッドのコスト=模擬ポッド単価 × ポッド稼働時間
模擬ポッド単価=Σ (リソース単価 × 割当リソース量)
リソース単価は、ポッドコストの計算における重要な要素です。 リソース単価は、特定のシナリオで調整可能です。 内部原価計算を実行する場合、クラウドサービスプロバイダーが設定した定価を単価として使用できます。 クラウドサービスプロバイダーが単価を設定しない場合は、ビジネス要件に基づいてカスタム単価を使用できます。
シナリオ1: 単価として表示価格を使用
ポッドに割り当てられたさまざまなリソースのリスト価格を取得したら、次の式に基づいてポッドコスト比とシミュレートされたポッドコストを計算できます。
ポッドコスト比=シミュレートされたポッドコスト /Σ (クラスター内の各ノードのコスト)
模擬ポッド単価= (CPUコア単価 × 割り当てられたCPUコア数 + メモリ単価 × 割り当てられたメモリ量 + GPU単価 × 割り当てられたGPU数) × ポッド稼働時間
シナリオ2: 単価はクラウドサービスプロバイダーによって設定されていません
リソース単価がクラウドサービスプロバイダーによって設定されていない場合は、加重計算方法を使用してリソース単価を計算できます。 たとえば、ECSによって設定されたノードの合計価格に基づいて請求するノードを使用する場合、次の式に基づいてリソースの単価を計算できます。 重み付き計算により、コストデータモデルの柔軟性が向上します。
リソース単価=リソース重量 × リソース単価 /ノードのリソース容量
Σ (各リソースの重み) = 1
この場合、リソースの重みは、リソースの単価を決定する。 デフォルトでは、ACKクラスター内のリソースの重みは、リソースの透かしによって決まります。 ビジネス要件に基づいてリソースの重みを調整できます。
名前空間またはアプリケーションのコストの計算
クラスター内の各ポッドの割り当て済みコストを取得したら、名前空間内のポッドのコストを集計することで名前空間のコストを計算したり、アプリケーション用に作成されたポッドのコストを集計することでアプリケーションのコストを計算したりできます。
名前空間は、1つ以上のフィールドを共有するポッドのコレクションです。
名前空間コスト=Σ (名前空間内の各ポッドの割り当てコスト)
ワークロードは、同じ名前空間に同じラベルを持つポッドで構成されます。
ワークロードコスト=Σ (同一ラベルの各ポッドの割り当てコスト)
関連ドキュメント
HTTP APIリクエストを送信して、コストインサイトデータを取得し、そのデータをカスタム開発に使用できます。 詳細については、「APIを呼び出してコストデータを照会する概要」をご参照ください。