Cost V2 APIを呼び出して、クラスターの推定ワークロードコストをリアルタイムで照会できます。 Cost V2 APIを呼び出すときに、時間範囲を指定し、ポッド名、名前空間、ラベル、コントローラ名 (csi-pluginなど) 、またはコントローラタイプ (ReplicaSet、DaemonSet、Jobなど) でワークロードをフィルターできます。 返されたコストデータに基づいて、リアルタイムのコストトレンドを分析できます。
前提条件
「APIを呼び出してコストデータを照会する概要」トピックで説明されている前提条件が満たされています。
リクエストパラメーターとレスポンスパラメーター
リクエスト構文
GET /v2/cost
リクエストパラメーター
パラメーター | 型 | 必須 / 任意 | 説明 |
window | String | 可 | 照会する時間範囲。 次の形式がサポートされています。
|
filter | String | 不可 | ワークロードのフィルターオプション。 次のタイプのフィルターオプションがサポートされています。
同じタイプの複数のフィルターオプションを指定できます。 フィルターオプションはコンマ (,) で区切ります。 例: 複数のタイプのフィルターオプションを指定することもできます。 異なるタイプのフィルターオプションをプラス記号 ( |
step | String | 不可 | 時間範囲を分割するために使用される間隔。 stepパラメーターは、コストセットの間隔を指定します。 例: 1dまたは1w。 デフォルト値は 説明 コストセットには、間隔内のポッドなどのKubernetesオブジェクトのコストデータが含まれます。 |
aggregate | String | 不可 | 異なるディメンションから返された結果の集計オプション。 次のタイプの集計オプションがサポートされています。
|
フォーマット | String | 不可 | 照会されたコストの形式。 次のタイプのフォーマットオプションがサポートされています。
|
応答パラメーター
パラメーター | タイプ | 説明 |
properties | object | Kubernetesオブジェクトに関する情報。 |
ポッドの作成 | String | ポッドの名前。 |
namespace | String | ポッドが属する名前空間。 |
controllerKind | String | コントローラのタイプ。 |
コントローラー | String | コントローラの名前。 |
start | String | コストセットの開始時刻。 |
end | String | コストセットの終了時間。 |
cpuCoreRequestAverage | float | ポッドによって要求されたCPUコアの平均数。 |
cpuCoreUsageAverage | float | ポッドで使用されているCPUコアの平均数。 |
ramByteRequestAverage | float | ポッドによって要求されたメモリの平均量。 |
ramByteUsageAverage | float | ポッドによって使用されるメモリの平均量。 |
コスト | float | ポッドの推定コスト。 コスト見積もりポリシーで使用されるデフォルトのCPU重みは100% です。 カスタムリソースの重みを指定するには、「コスト見積もりポリシー」をご参照ください。 |
costRatio | float | ポッドのコスト比。 このパラメーターは、合計クラスターコストに対するポッドコストの比率を示します。 |
customCost | float | カスタムコスト。 |
(オプション) 手順1: カスタムリソースの重みを指定する
cost V2 APIに適用されるコスト見積もりポリシーのデフォルトのCPU重みは100% です。 カスタムリソースの重みを指定するには、次の手順を実行します。
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
Helmページで、ack-alibaba-cloud-metrics-adapterを見つけ、[操作] 列の [更新] をクリックします。
ビジネス要件に基づいて、YAMLファイルの
Alibaba CloudMetricsAdapter.costWeights
パラメーターを変更します。 このフィールドのデフォルト値は {"cpu": "1.0", "memory": "0.0"} です。 [OK] をクリックします。コスト見積もりポリシーのCPU重みとメモリ重みを指定するには、コスト見積もりポリシーを参照してください。
ステップ2: コストデータの照会
このセクションでは、curlを使用してKubernetes APIにアクセスします。 詳細については、「Kubernetes APIの使用」をご参照ください。
例1: 前日のDaemonSetの推定コストの照会
コマンド
curl -G -k --cert ./client-cert.pem --key ./client-key.pem \
-d 'window=yesterday' \
-d 'filter=namespace:"kube-system"+controllerKind:"DaemonSet"+label[app]:"terway-eniip"' \
"$APISERVER/api/v1/namespaces/kube-system/services/ack-metrics-adapter-api-service:8080/proxy/v2/cost" | jq .
JSON形式のサンプル成功応答
例2: 3時間以内のポッドの推定コストの照会 (時間単位で分割)
コマンド
curl -G -k --cert ./client-cert.pem --key ./client-key.pem \
-d 'window=2024-03-24T00:00:00Z,2024-03-24T03:00:00Z' \
-d 'step=1h' \
-d 'filter=namespace:"kube-system"+pod:"terway-eniip-kz68n"' \
"$APISERVER/api/v1/namespaces/kube-system/services/ack-metrics-adapter-api-service:8080/proxy/v2/cost" | jq .