Container Service for Kubernetes (ACK) のコストインサイト機能は、クラスターのリソース使用量とコストのディストリビューションを複数のディメンションで追跡します。コストデータは Managed Service for Prometheus にレポートされ、保存されます。HTTP API を呼び出してこのデータをクエリし、コスト最適化分析や独自のツールへの統合に利用できます。
ACK は、コストデータをクエリするための 3 つの API を提供しています:
Cost API (旧バージョン) — Pod のリアルタイムの推定コストとリソース使用量をクエリします。
Cost V2 API — Cost API と互換性があり、期間フィルタリング、および Pod 名、名前空間、ラベル、コントローラー、またはコントローラータイプによるワークロードのフィルタリングをサポートしています。リアルタイムのコスト傾向を分析するために使用します。
Allocation API — クラスターの請求書の支払額を個々のワークロードに割り当てます。応答は Cost V2 API と同じデータ構造を持ちます。コスト配分とチャージバックのレポートに使用します。
前提条件
開始する前に、以下を確認してください:
コストインサイト機能が有効化されていること
Managed Service for Prometheus が有効化されていること
alibaba-cloud-metrics-adapter がインストールおよび設定されていること
以下のいずれかの方法でクラスターに接続していること:
JSON 処理ツールがダウンロードされていること。このトピックの例では jq を使用します。
所有者以外のユーザーへの権限付与
クラスターの所有者ではなく、所有者からクラスターの管理を承認されている場合、ack-metrics-adapter-api-service に必要な権限がない可能性があります。API サーバーへのリクエストで使用される認証情報のユーザーまたはユーザーグループに、ロールベースアクセス制御 (RBAC) 権限を付与してください。
RBAC 権限を付与するには:
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、対象のクラスターを見つけてその名前をクリックします。左側のペインで、[セキュリティ] > [ロール] を選択します。
[ロール] タブで、arms-pilot-prom-spec-ns-k8s の [操作] 列にある [YAML の編集] をクリックします。
[YAML で表示] パネルで、以下の内容に基づいて rules パラメーターを変更し、[OK] をクリックします。
- apiGroups: - '' resources: - services verbs: - get
利用可能な API
| API | ユースケース | 説明 |
|---|---|---|
| Cost API | 既存の統合 | Pod のリアルタイムの推定コストとリソース使用量をクエリします。旧バージョンです。新しい統合には Cost V2 API を使用してください。 |
| Cost V2 API | リアルタイムのコストモニタリングと傾向分析 | リアルタイムの推定コストをクエリします。期間フィルタリング、および Pod 名、名前空間、ラベル、コントローラー、またはコントローラータイプによるワークロードのフィルタリングをサポートしています。Cost API と互換性があります。 |
| Allocation API | コスト配分とチャージバック | クラスターの請求書の支払額を個々のワークロードに割り当てます。Cost V2 API と同じデータ構造を返します。 |