Dokumen ini menjelaskan langkah-langkah untuk membuat akun penagihan Google Distributed Cloud (GDC) dengan air gap untuk melacak penggunaan resource.
Lingkungan Distributed Cloud memerlukan akun penagihan untuk melacak biaya penggunaan untuk project dan organisasi. Semua akun penagihan dalam organisasi menggunakan satu lembar harga untuk menagih penggunaan layanan kepada pelanggan. Jika Anda tidak menautkan akun penagihan ke organisasi atau project, Anda akan kehilangan data biaya yang terkait dengan resource, sehingga menyebabkan perbedaan biaya.
Dokumen ini ditujukan untuk developer dalam grup administrator platform atau operator aplikasi yang membuat dan mengelola akun penagihan di GDC. Untuk mengetahui informasi selengkapnya, lihat dokumentasi Audiens untuk GDC dengan air gap.
Sebelum memulai
Meminta peran IAM
Hubungi Admin Org IAM Anda untuk meminta peran berikut di project Anda:
Admin Akun Penagihan Organisasi Global (
organization-billing-account-admin): membuat, mengelola, dan mengikat resourceBillingAccount.Global Organization Billing Account User (
organization-billing-account-user): membaca, mencantumkan, dan mengikat resourceBillingAccount.Global Organization Billing Account Manager (
organization-billing-manager): membaca, mencantumkan, membuat, dan memperbarui resourceBillingAccountBinding.
Peran ini terikat ke namespace project untuk penagihan tingkat project, atau namespace platform untuk penagihan tingkat organisasi.
Mendapatkan file kubeconfig
Untuk menjalankan perintah terhadap cluster Org Global, pastikan Anda memiliki resource berikut:
Login dan buat file kubeconfig untuk cluster Org Global jika Anda belum memilikinya.
Gunakan jalur ke file kubeconfig cluster Org Global untuk mengganti
ORG_GLOBAL_CLUSTER_KUBECONFIGdalam petunjuk ini.
Buat akun penagihan baru
kubectl
Akun penagihan diidentifikasi secara unik berdasarkan name dan namespace-nya. Untuk membuat akun penagihan, gunakan resource kustom untuk membuat name dan namespace:
Buat file YAML, lalu tambahkan resource kustom
BillingAccountdan konten berikut:apiVersion: billing.global.gdc.goog/v1 kind: BillingAccount metadata: namespace: platform name: BIL_ACCOUNT_NAME spec: displayName: BIL_DISPLAY_NAME paymentSystemConfig: cloudBillingConfig: accountID: "012345-6789AB-CDEF01"Ganti variabel berikut:
BIL_ACCOUNT_NAME: nama akun penagihan, misalnya,test-billing-account.BIL_DISPLAY_NAME: nama tampilan akun penagihan, misalnya,"Test Billing Account".
Verifikasi jenis konfigurasi pembayaran Anda. Akun penagihan Distributed Cloud harus memiliki salah satu konfigurasi pembayaran berikut:
cloudBillingConfig: konfigurasi pembayaran default. Konfigurasi ini menyimpan ID akun Penagihan Cloud.customConfig: konfigurasi kustom bagi partner untuk menyimpan konfigurasi pembayaran mereka guna menagih organisasi.customConfigmendukung kamus string nilai kunci, dengan kunci wajibpayment-config-type.
Contoh berikut menunjukkan cuplikan file YAML
BillingAccountuntuk berbagai konfigurasi pembayaran:cloudBillingConfigcontoh:spec: paymentSystemConfig: cloudBillingConfig: accountID: CLOUD_BILLING_ACCOUNT_IDGanti
CLOUD_BILLING_ACCOUNT_IDdengan ID akun penagihanGoogle Cloud Anda.Contoh
customConfig:spec: paymentSystemConfig: customConfig: "payment-config-type": PAYMENT_CONFIG_TYPEGanti
PAYMENT_CONFIG_TYPEdengan jenis konfigurasi pembayaran yang Anda pilih untuk konfigurasi penagihan kustom.Jika Anda tidak memiliki informasi untuk konfigurasi
customConfigorganisasi, masukkan detail berikut:spec: paymentSystemConfig: customConfig: "payment-config-type": "N/A"File YAML berikut menunjukkan resource
BillingAccountlengkap dengan konfigurasicloudBillingConfig:apiVersion: billing.global.gdc.goog/v1 kind: BillingAccount metadata: namespace: platform name: test-billing-account spec: displayName: "Test Billing Account" paymentSystemConfig: cloudBillingConfig: accountID: "012345-6789AB-CDEF01"Simpan file YAML. Jalankan
kubectlCLI untuk menerapkan resource di cluster Org Global:kubectl --kubeconfig ORG_GLOBAL_CLUSTER_KUBECONFIG apply -f billingaccount.yamlGanti
ORG_GLOBAL_CLUSTER_KUBECONFIGdengan file kubeconfig cluster Org Global.
CLI
Untuk membuat akun penagihan, gunakan perintah gdcloud billing accounts create.
Untuk mengetahui informasi selengkapnya, lihat gdcloud billing accounts create.
Menautkan organisasi atau project ke akun penagihan
Anda harus menautkan akun penagihan ke organisasi sebelum membuat project apa pun. Hal ini memastikan bahwa semua project yang dibuat dalam organisasi mewarisi akun penagihan yang valid secara default.
Anda juga dapat secara eksplisit menautkan project ke akun penagihan tertentu jika ingin akun tersebut berbeda dengan akun penagihan organisasi.
Menautkan organisasi
Untuk menautkan organisasi ke BillingAccount, lakukan hal berikut:
Tambahkan konten berikut ke file YAML
billingaccountbinding.yaml:- Di bagian
billingAccountRef, isi kolomnamedengan konten dari kolomnamediBillingAccountyang ingin Anda tautkan. - Di bagian
metadata, isi kolomnamespacedengan nilai dari kolom yang sama di resourceBillingAccount. Dalam contoh ini, namespace organisasi dari resourceBillingAccountadalahplatform:
apiVersion: billing.global.gdc.goog/v1 kind: BillingAccountBinding metadata: name: billing namespace: platform spec: billingAccountRef: name: BIL_ACCOUNT_NAME namespace: platform- Di bagian
Jalankan perintah
kubectlberikut untuk menerapkan filebillingaccountbinding.yaml:kubectl --kubeconfig ORG_GLOBAL_CLUSTER_KUBECONFIG apply -f billingaccountbinding.yamlPeriksa status
BillingAccountBindingdan pastikan tidak ada error:kubectl --kubeconfig ORG_GLOBAL_CLUSTER_KUBECONFIG describe billingaccountbinding billing -n platform
Tautkan project
Untuk menautkan project ke BillingAccount, lakukan hal berikut:
Tambahkan konten berikut ke file:
billingaccountbinding.yaml:- Di bagian
billingAccountRef, isi kolomnamedengan konten dari kolomnamediBillingAccountyang ingin Anda tautkan. - Di bagian
metadata, isi kolomnamespacedengan konten dari kolom yang sama di resourceBillingAccount.
apiVersion: billing.global.gdc.goog/v1 kind: BillingAccountBinding metadata: name: billing namespace: PROJECT_NAME spec: billingAccountRef: name: BIL_ACCOUNT_NAME namespace: platformGanti variabel berikut:
PROJECT_NAMEdengan nama project yang terikat ke akun penagihan.BIL_ACCOUNT_NAME: nama akun penagihan, misalnya,test-billing-account.
- Di bagian
Jalankan perintah
kubectlberikut untuk menerapkan filebillingaccountbinding.yaml:kubectl --kubeconfig ORG_GLOBAL_CLUSTER_KUBECONFIG apply -f billingaccountbinding.yamlPeriksa status
BillingAccountBindingdan pastikan tidak ada error:kubectl --kubeconfig ORG_GLOBAL_CLUSTER_KUBECONFIG describe billingaccountbinding billing -n PROJECT_NAMEGanti
PROJECT_NAMEdengan nama project yang terikat ke akun penagihan.
Mencantumkan binding akun penagihan
Lihat daftar semua resource BillingAccountBinding yang di-deploy dan statusnya saat ini di semua namespace dalam organisasi:
kubectl --kubeconfig ORG_GLOBAL_CLUSTER_KUBECONFIG get billingaccountbinding -A -o 'custom-columns=NAME:metadata.name,NAMESPACE:metadata.namespace,BillingAccountName:spec.billingAccountRef.name,STATUS:status.conditions[0].status'
Perintah ini menghasilkan NAME, NAMESPACE, BillingAccountName, dan STATUS
dari setiap BillingAccountBinding. Kolom STATUS menunjukkan apakah binding aktif atau apakah ada error.
Hierarki dan perilaku akun penagihan
Saat menautkan akun penagihan ke organisasi dan project, hierarki dan perilaku berikut berlaku:
Pengaitan level project lebih diutamakan: Jika project tertentu, seperti
project-A, ditautkan secara eksplisit keBillingAccount, misalnya,billing-account-1, maka semua biaya untukproject-Aditagih secara eksklusif kebilling-account-1. Pengaitan tingkat project ini tetap valid, terlepas dari setelan akun penagihan tingkat organisasi.Pengaitan tingkat organisasi untuk project yang tidak ditautkan: Jika organisasi Anda menautkan ke
BillingAccount, misalnya,billing-account-0, semua project dalam organisasi tersebut yang tidak memilikiBillingAccountBindingeksplisitnya sendiri akan otomatis dikaitkan dan ditagih kebilling-account-0. Pengaitan ini biasanya berlaku setelah sekitar 15 menit.Mengubah akun penagihan organisasi: Jika akun penagihan yang ditautkan ke organisasi berubah, misalnya,
billing-account-0berubah menjadibilling-account-new, projectbilling-account-0tidak otomatis beralih kebilling-account-new. Project ini tetap terikat kebilling-account-0, dan Anda harus memperbarui akun penagihan secara manual agar project menggunakanbilling-account-new.
Mengubah akun penagihan tertaut
Di Distributed Cloud, Anda tidak dapat menghapus akun penagihan. Jika perlu mengubah konfigurasi penagihan, Anda harus mengubah akun penagihan yang ditautkan ke organisasi atau project dengan mengubah BillingAccountBinding.
Beberapa skenario untuk kasus penggunaan ini mencakup contoh berikut:
- Aturan akuntansi dalam perusahaan Anda mengharuskan Anda membagi biaya yang terkait dengan workload tingkat developer dan produksi ke dalam akun terpisah.
Anda membuat akun penagihan untuk menagih kontrak pelanggan selama periode satu tahun. Saat kontrak berakhir, Anda harus menagih sisa periode yang melebihi satu tahun.
Untuk project
Ikuti langkah-langkah berikut untuk mengubah akun penagihan tertaut untuk project:
Buat
BillingAccountbaru untuk ditautkan ke project. Akun ini menggantikan akun lama.Temukan file YAML resource
BillingAccountBindingdi namespace project untuk melihat akun penagihan yang ditautkan:kubectl --kubeconfig ORG_GLOBAL_CLUSTER_KUBECONFIG describe billingaccountbinding billing -n PROJECT_NAMEUbah
BillingAccountBindinguntuk menautkan ke akun penagihan baru. Di bagianbillingAccountRef, isi kolomnamedengan namaBillingAccountbaru yang dibuat di langkah 1 pada bagian ini.kubectl --kubeconfig ORG_GLOBAL_CLUSTER_KUBECONFIG edit billingaccountbinding billing -n PROJECT_NAMESetelah melakukan perubahan, pastikan akun penagihan diperbarui dengan benar:
kubectl --kubeconfig ORG_GLOBAL_CLUSTER_KUBECONFIG describe billingaccountbinding billing -n PROJECT_NAME
Contoh berikut menunjukkan file YAML BillingAccountBinding dengan akun
expired-billing-account yang ditautkan ke project project-one:
apiVersion: billing.global.gdc.goog/v1
kind: BillingAccountBinding
metadata:
# The name of a BillingAccountBinding will typically always be `billing`.
name: billing
# This is the project.
namespace: project-one
spec:
billingAccountRef:
# This is an example of a BillingAccount that has expired.
name: expired-billing-account
namespace: platform
Contoh berikut menunjukkan file YAML BillingAccountBinding dari contoh sebelumnya yang diubah untuk menautkan akun baru bernama new-billing-account:
apiVersion: billing.global.gdc.goog/v1
kind: BillingAccountBinding
metadata:
name: billing
# This is the project.
namespace: project-one
spec:
billingAccountRef:
# This is the example of the new BillingAccount.
name: new-billing-account
namespace: platform
Untuk organisasi
Ikuti langkah-langkah berikut untuk mengubah akun penagihan tertaut untuk organisasi:
Buat
BillingAccountbaru untuk ditautkan ke organisasi. Akun ini menggantikan akun lama.Temukan file YAML resource
BillingAccountBindingdi namespaceplatformuntuk melihat akun penagihan yang ditautkan:kubectl --kubeconfig ORG_GLOBAL_CLUSTER_KUBECONFIG describe billingaccountbinding billing -n platformUbah
BillingAccountBindinguntuk menautkan ke akun penagihan baru. Di bagianbillingAccountRef, isi kolomnamedengan namaBillingAccountbaru yang dibuat di langkah 1.kubectl --kubeconfig ORG_GLOBAL_CLUSTER_KUBECONFIG edit billingaccountbinding billing -n platformSetelah melakukan perubahan, pastikan akun penagihan diperbarui dengan benar:
kubectl --kubeconfig ORG_GLOBAL_CLUSTER_KUBECONFIG describe billingaccountbinding billing -n platform