Selain strategi alokasi biaya default, suite manajemen biaya memungkinkan Anda membuat kebijakan akuntansi biaya kustom. Dengan membuat file konfigurasi yang menetapkan harga sumber daya kustom, Anda dapat menentukan logika chargeback sendiri terhadap biaya sumber daya cloud, sehingga data biaya lebih selaras dengan logika bisnis Anda.
Use cases
Harga kustom memberikan kontrol detail halus atas biaya TI Anda. Use case umum meliputi:
-
Tim operasi internal membeli sumber daya komputasi dasar secara massal dan menjualnya kembali ke berbagai tim bisnis.
-
Normalisasi biaya di tingkat bisnis dengan menghilangkan variasi harga akibat penjadwalan Pod identik pada node dengan spesifikasi berbeda.
-
Untuk menerapkan harga diferensiasi, Anda harus menyertakan batas resource saat menghitung harga satuan Pod.
Untuk mengatasi skenario tersebut, suite manajemen biaya menyediakan fitur templat harga kustom. Anda dapat mengedit templat untuk mengonfigurasi harga satuan setiap resource Pod, yang kemudian diagregasi guna menentukan biaya kustom Pod tersebut.
Saat ini, biaya kustom Pod hanya tersedia melalui API. Setelah Anda mengaktifkan dan mengonfigurasi harga kustom, Anda dapat mengambil biaya tersebut dari bidang customCost dalam tanggapan API. Untuk detail penggunaan API, lihat Retrieve cost data by API.
Prasyarat
-
Fitur cost insights telah diaktifkan.
-
Anda telah memperoleh file KubeConfig kluster dan menggunakan kubectl untuk terhubung ke kluster.
Langkah 1: Aktifkan harga kustom untuk cost-exporter
Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
-
Di bagian atas halaman, alihkan namespace ke kube-system. Pada kolom Actions daftar Deployment, klik More > View in YAML untuk ack-cost-exporter. Di bagian
command, tambahkan'--enable-custom-price=true'untuk mengaktifkan fitur harga kustom. Lalu, klik Update.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'
Langkah 2: Konfigurasikan templat harga
Prosedur
-
Buat file bernama
price-template.yamldengan konten contoh berikut.Penting-
Bidang-bidang di bawah bidang
specdalam templat bersifat opsional. Jika semua bidang yang dikonfigurasi di bawahspecsesuai dengan metadata Pod, Pod tersebut dianggap cocok dengan templat tersebut. Templat denganspeckosong dapat mencocokkan semua Pod. -
Templat dicocokkan secara berurutan. Jika sebuah Pod cocok dengan beberapa templat dalam file YAML, sistem menggunakan templat pertama yang cocok untuk menghitung biaya Pod tersebut.
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.02Templat harga ini menetapkan aturan berikut:
-
Templat
template-nginxberlaku untuk Pod yang memenuhi semua kondisi berikut:-
Label-nya berisi
app:nginx -
Pod berada di namespace
defaultataukube-system. -
Permintaan CPU sebesar 500m dan limit-nya 1 Core.
-
Permintaan memori sebesar 512 MiB dan limit-nya 1 GiB.
-
-
Semua Pod lain di kluster menggunakan templat
template-default.
Tabel berikut menjelaskan parameter-parameter tersebut.
Parameter
Deskripsi
name
Nama templat harga.
spec.labelSelector
Peta pasangan kunci-nilai. Sebuah Pod dianggap cocok jika memiliki semua label yang ditentukan dalam selector ini.
spec.namespaceSelector
Daftar namespace. Namespace Pod harus ada dalam daftar ini agar dianggap cocok.
spec.resource.cpu
Permintaan CPU Pod.
spec.resource.memory
Permintaan memori Pod.
spec.resource.cpu-overcommit-ratio
Rasio overcommitment CPU Pod, dihitung sebagai
CPU limit / CPU request.spec.resource.memory-overcommit-ratio
Rasio overcommitment memori Pod, dihitung sebagai
memory limit / memory request.price.cpu
Harga satuan untuk CPU, diukur dalam biaya per core-jam.
price.memory
Harga satuan untuk memori, diukur dalam biaya per GiB-jam.
-
-
Jalankan perintah berikut untuk membuat ConfigMap
price-templatedi namespacekube-systemdan menerapkan konfigurasi harga kustom Anda.kubectl apply -f price-template.yaml -n kube-system
Dokumen terkait
-
Anda dapat memperkirakan biaya Pod berdasarkan pemanfaatan sumber daya kluster menggunakan model single-resource (CPU atau memori) atau weighted (CPU dan memori). Untuk informasi selengkapnya, lihat Cost estimation policies.
-
Kirim permintaan API HTTP untuk mengambil data cost insights guna pengembangan kustom. Untuk informasi selengkapnya, lihat Overview of calling an API to query cost data.