Membuat dan menautkan akun penagihan

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 resource BillingAccount.

  • Global Organization Billing Account User (organization-billing-account-user): membaca, mencantumkan, dan mengikat resource BillingAccount.

  • Global Organization Billing Account Manager (organization-billing-manager): membaca, mencantumkan, membuat, dan memperbarui resource BillingAccountBinding.

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:

  1. Login dan buat file kubeconfig untuk cluster Org Global jika Anda belum memilikinya.

  2. Gunakan jalur ke file kubeconfig cluster Org Global untuk mengganti ORG_GLOBAL_CLUSTER_KUBECONFIG dalam 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:

  1. Buat file YAML, lalu tambahkan resource kustom BillingAccount dan 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".
  2. 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. customConfig mendukung kamus string nilai kunci, dengan kunci wajib payment-config-type.

    Contoh berikut menunjukkan cuplikan file YAML BillingAccount untuk berbagai konfigurasi pembayaran:

    cloudBillingConfig contoh:

    spec:
      paymentSystemConfig:
        cloudBillingConfig:
          accountID: CLOUD_BILLING_ACCOUNT_ID
    

    Ganti CLOUD_BILLING_ACCOUNT_ID dengan ID akun penagihanGoogle Cloud Anda.

    Contoh customConfig:

    spec:
     paymentSystemConfig:
       customConfig:
          "payment-config-type": PAYMENT_CONFIG_TYPE
    

    Ganti PAYMENT_CONFIG_TYPE dengan jenis konfigurasi pembayaran yang Anda pilih untuk konfigurasi penagihan kustom.

    Jika Anda tidak memiliki informasi untuk konfigurasi customConfig organisasi, masukkan detail berikut:

    spec:
     paymentSystemConfig:
       customConfig:
          "payment-config-type": "N/A"
    

    File YAML berikut menunjukkan resource BillingAccount lengkap dengan konfigurasi cloudBillingConfig:

    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"
    
  3. Simpan file YAML. Jalankan kubectl CLI untuk menerapkan resource di cluster Org Global:

    kubectl --kubeconfig ORG_GLOBAL_CLUSTER_KUBECONFIG apply -f billingaccount.yaml
    

    Ganti ORG_GLOBAL_CLUSTER_KUBECONFIG dengan 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.

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.

Untuk menautkan organisasi ke BillingAccount, lakukan hal berikut:

  1. Tambahkan konten berikut ke file YAML billingaccountbinding.yaml:

    • Di bagian billingAccountRef, isi kolom name dengan konten dari kolom name di BillingAccount yang ingin Anda tautkan.
    • Di bagian metadata, isi kolom namespace dengan nilai dari kolom yang sama di resource BillingAccount. Dalam contoh ini, namespace organisasi dari resource BillingAccount adalah platform:
    apiVersion: billing.global.gdc.goog/v1
    kind: BillingAccountBinding
    metadata:
      name: billing
      namespace: platform
    spec:
      billingAccountRef:
        name: BIL_ACCOUNT_NAME
        namespace: platform
    
  2. Jalankan perintah kubectl berikut untuk menerapkan file billingaccountbinding.yaml:

    kubectl --kubeconfig ORG_GLOBAL_CLUSTER_KUBECONFIG apply -f billingaccountbinding.yaml
    
  3. Periksa status BillingAccountBinding dan pastikan tidak ada error:

    kubectl --kubeconfig ORG_GLOBAL_CLUSTER_KUBECONFIG describe billingaccountbinding billing -n platform
    

Untuk menautkan project ke BillingAccount, lakukan hal berikut:

  1. Tambahkan konten berikut ke file: billingaccountbinding.yaml:

    • Di bagian billingAccountRef, isi kolom name dengan konten dari kolom name di BillingAccount yang ingin Anda tautkan.
    • Di bagian metadata, isi kolom namespace dengan konten dari kolom yang sama di resource BillingAccount.
    apiVersion: billing.global.gdc.goog/v1
    kind: BillingAccountBinding
    metadata:
      name: billing
      namespace: PROJECT_NAME
    spec:
      billingAccountRef:
        name: BIL_ACCOUNT_NAME
        namespace: platform
    

    Ganti variabel berikut:

    • PROJECT_NAME dengan nama project yang terikat ke akun penagihan.
    • BIL_ACCOUNT_NAME: nama akun penagihan, misalnya, test-billing-account.
  2. Jalankan perintah kubectl berikut untuk menerapkan file billingaccountbinding.yaml:

    kubectl --kubeconfig ORG_GLOBAL_CLUSTER_KUBECONFIG apply -f billingaccountbinding.yaml
    
  3. Periksa status BillingAccountBinding dan pastikan tidak ada error:

    kubectl --kubeconfig ORG_GLOBAL_CLUSTER_KUBECONFIG describe billingaccountbinding billing -n PROJECT_NAME
    

    Ganti PROJECT_NAME dengan 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 ke BillingAccount, misalnya, billing-account-1, maka semua biaya untuk project-A ditagih secara eksklusif ke billing-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 memiliki BillingAccountBinding eksplisitnya sendiri akan otomatis dikaitkan dan ditagih ke billing-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-0 berubah menjadi billing-account-new, project billing-account-0 tidak otomatis beralih ke billing-account-new. Project ini tetap terikat ke billing-account-0, dan Anda harus memperbarui akun penagihan secara manual agar project menggunakan billing-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:

  1. Buat BillingAccount baru untuk ditautkan ke project. Akun ini menggantikan akun lama.

  2. Temukan file YAML resource BillingAccountBinding di namespace project untuk melihat akun penagihan yang ditautkan:

    kubectl --kubeconfig ORG_GLOBAL_CLUSTER_KUBECONFIG describe billingaccountbinding billing -n PROJECT_NAME
    
  3. Ubah BillingAccountBinding untuk menautkan ke akun penagihan baru. Di bagian billingAccountRef, isi kolom name dengan nama BillingAccount baru yang dibuat di langkah 1 pada bagian ini.

    kubectl --kubeconfig ORG_GLOBAL_CLUSTER_KUBECONFIG edit billingaccountbinding billing -n PROJECT_NAME
    
  4. Setelah 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:

  1. Buat BillingAccount baru untuk ditautkan ke organisasi. Akun ini menggantikan akun lama.

  2. Temukan file YAML resource BillingAccountBinding di namespace platform untuk melihat akun penagihan yang ditautkan:

    kubectl --kubeconfig ORG_GLOBAL_CLUSTER_KUBECONFIG describe billingaccountbinding billing -n platform
    
  3. Ubah BillingAccountBinding untuk menautkan ke akun penagihan baru. Di bagian billingAccountRef, isi kolom name dengan nama BillingAccount baru yang dibuat di langkah 1.

    kubectl --kubeconfig ORG_GLOBAL_CLUSTER_KUBECONFIG edit billingaccountbinding billing -n platform
    
  4. Setelah melakukan perubahan, pastikan akun penagihan diperbarui dengan benar:

    kubectl --kubeconfig ORG_GLOBAL_CLUSTER_KUBECONFIG describe billingaccountbinding billing -n platform