Gunakan Cost API untuk mengkueri data estimasi biaya real-time dan penggunaan sumber daya untuk Pod atau namespace dalam kluster ACK.
Prasyarat
Sebelum memulai, pastikan Anda telah:
-
Menyelesaikan semua prasyarat dalam Ikhtisar pemanggilan API untuk mengkueri data biaya, termasuk menerapkan komponen
ack-metrics-adapterdan menghubungkan ke kluster Anda -
kubectlterinstal dan dikonfigurasi dengan akses ke kluster Anda
Dimensi kueri yang didukung
Cost API mendukung dimensi kueri berikut:
-
Pod — kueri berdasarkan Pod individual, beberapa Pod, atau Pod yang difilter berdasarkan label
-
Namespace — kueri berdasarkan namespace individual atau semua namespace
Gunakan DimensionType dan Dimension secara bersamaan untuk menargetkan cakupan tertentu. Tambahkan LabelSelector untuk memfilter berdasarkan label pada salah satu dimensi tersebut. LabelSelector dan DimensionType digabungkan dengan logika AND.
Parameter
Semua contoh menggunakan kubectl get --raw terhadap titik akhir berikut:
/api/v1/namespaces/kube-system/services/ack-metrics-adapter-api-service:8080/proxy/cost
Tambahkan parameter kueri ke titik akhir ini untuk memfilter hasil.
| Parameter | Deskripsi | Bawaan | Nilai yang valid |
|---|---|---|---|
DimensionType |
Dimensi untuk mengkueri data biaya | Pod (semua Pod) |
Namespace, Pod |
Dimension |
Memfilter hasil ke namespace atau Pod tertentu. Abaikan untuk mengembalikan semua. Untuk mengkueri beberapa Pod, gunakan nilai yang dipisahkan koma: pod=<name1>,pod=<name2> |
Semua | Nama namespace atau nama Pod |
LabelSelector |
Memfilter Pod berdasarkan label app |
— | app=<label-value> |
TimeUnit |
Rentang waktu data biaya yang akan dikembalikan | hour |
hour, day, week, month |
Summary |
Jika diatur ke true, mengembalikan data biaya agregat untuk semua Pod yang sesuai alih-alih data per-Pod |
false |
true, false |
Metrik data biaya
Setiap entri respons mencakup metrik biaya berikut:
| Bidang | Unit | Deskripsi |
|---|---|---|
cpu |
vCores | Penggunaan CPU |
gpu |
Jumlah | Jumlah GPU |
memory |
KB | Penggunaan memori |
perCorePricing |
$ (Situs internasional) | Harga satuan vCores pada node yang menjalankan Pod atau aplikasi |
costRatio |
— | Rasio biaya Pod atau aplikasi ini terhadap total biaya kluster. Misalnya, 0.2 berarti 20% dari total biaya kluster |
cost |
$ (Situs internasional) | Total biaya Pod atau aplikasi dalam rentang waktu yang dikueri |
customCost |
— | Biaya kustom Pod atau aplikasi dalam rentang waktu yang dikueri |
Setiap entri juga mencakup sub-bidang request, usage, dan limit untuk cpu, memory, gpu, dan gpuMem:
| Sub-bidang | Deskripsi |
|---|---|
request |
Jumlah sumber daya yang diminta oleh Pod |
usage |
Konsumsi sumber daya aktual oleh Pod |
limit |
Batas sumber daya yang dikonfigurasi untuk Pod |
Contoh
Contoh 1: Kueri semua Pod dalam kluster untuk jam sebelumnya
kubectl get --raw "/api/v1/namespaces/kube-system/services/ack-metrics-adapter-api-service:8080/proxy/cost"
Contoh 2: Kueri semua Pod dalam namespace untuk jam sebelumnya
Ganti default dengan nama namespace target.
kubectl get --raw "/api/v1/namespaces/kube-system/services/ack-metrics-adapter-api-service:8080/proxy/cost?DimensionType=Namespace&Dimension=default" | jq .
Contoh 3: Kueri Pod tertentu untuk jam sebelumnya
Ganti nama Pod dengan nilai aktual.
kubectl get --raw "/api/v1/namespaces/kube-system/services/ack-metrics-adapter-api-service:8080/proxy/cost?DimensionType=Pod&Dimension=pod=nginx-deployment-basic-75d6678cbb-lg8v5" | jq .
Contoh 4: Kueri Pod berdasarkan label
Perintah berikut mengkueri semua Pod dengan label app=nginx untuk jam sebelumnya. Ganti nilai label dengan nilai aktual.
LabelSelectordanDimensionTypedigabungkan dengan logika AND. MengabaikanDimensionTypeakan mengkueri seluruh Pod yang sesuai dengan label tersebut.
kubectl get --raw "/api/v1/namespaces/kube-system/services/ack-metrics-adapter-api-service:8080/proxy/cost?LabelSelector=app=nginx" | jq .
Contoh 5: Kueri biaya Pod untuk hari sebelumnya
Ganti nama Pod dengan nilai aktual.
kubectl get --raw "/api/v1/namespaces/kube-system/services/ack-metrics-adapter-api-service:8080/proxy/cost?DimensionType=Pod&Dimension=pod=nginx-deployment-basic-75d6678cbb-lg8v5&TimeUnit=day" | jq .
Contoh 6: Kueri biaya agregat untuk namespace
Atur Summary=true untuk mendapatkan satu entri agregat untuk semua Pod dalam namespace alih-alih hasil per-Pod. Ganti default dengan nama namespace target.
kubectl get --raw "/api/v1/namespaces/kube-system/services/ack-metrics-adapter-api-service:8080/proxy/cost?DimensionType=Namespace&Dimension=default&Summary=true" | jq .
Langkah berikutnya
-
Untuk kueri rentang waktu yang lebih fleksibel dan dimensi tambahan (controller, jenis controller), lihat Panggil Cost V2 API untuk mengkueri data biaya.
-
Untuk mengalokasikan biaya bisnis berdasarkan data penagihan untuk keperluan akuntansi, lihat Panggil Allocation API untuk mengkueri data cost insights.