Creare e collegare account di fatturazione

Gli ambienti air-gap di Google Distributed Cloud (GDC) richiedono un account di fatturazione per monitorare i costi per progetti e organizzazioni. Se non colleghi un account di fatturazione a un'organizzazione o a un progetto, perderai i dati sui costi associati alla risorsa.

Per addebitare l'utilizzo del servizio al cliente, tutti gli account di fatturazione all'interno di un'organizzazione utilizzano un unico listino prezzi.

Prima di iniziare

Chiedi all'amministratore IAM dell'organizzazione di concederti i seguenti ruoli richiesti. Questi ruoli si legano allo spazio dei nomi del progetto per la fatturazione a livello di progetto o allo spazio dei nomi della piattaforma per la fatturazione a livello di organizzazione:

  • Amministratore account di fatturazione dell'organizzazione globale: crea, gestisci e associa la risorsa BillingAccount. Chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo organization-billing-account-admin.

  • Utente account di fatturazione dell'organizzazione globale: legge, elenca e associa la risorsa BillingAccount. Chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo organization-billing-account-user.

  • Gestore account di fatturazione dell'organizzazione globale: lettura, elenco, creazione e aggiornamento della risorsa BillingAccountBinding. Chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo organization-billing-manager.

Recupera il file kubeconfig

Per eseguire comandi sul server API globale, assicurati di disporre delle seguenti risorse:

  1. Accedi e genera il file kubeconfig per il server API globale se non ne hai uno.

  2. Utilizza il percorso del file kubeconfig del server API globale per sostituire GLOBAL_API_SERVER_KUBECONFIG in queste istruzioni.

Crea un nuovo account di fatturazione

Un account di fatturazione è identificato in modo univoco dal suo name e dal suo namespace. Per creare un account di fatturazione, utilizza una risorsa personalizzata per stabilire name e namespace:

  1. Crea un file YAML e aggiungi la risorsa personalizzata BillingAccount e i seguenti contenuti:

    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"
    

    Sostituisci le seguenti variabili:

    • BIL_ACCOUNT_NAME: il nome dell'account di fatturazione. Ad esempio, test-billing-account.
    • BIL_DISPLAY_NAME: il nome visualizzato dell'account di fatturazione. Ad esempio, "Test Billing Account".
  2. Verifica il tipo di configurazione dei pagamenti. Gli account di fatturazione Distributed Cloud devono avere una delle seguenti configurazioni di pagamento:

    • cloudBillingConfig: la configurazione di pagamento predefinita. Questa configurazione memorizza un ID account di fatturazione Cloud.

    • customConfig: una configurazione personalizzata per i partner per memorizzare la configurazione di pagamento per fatturare all'organizzazione. customConfig supporta un dizionario di stringhe chiave-valore, con una chiave obbligatoria payment-config-type.

    Gli esempi seguenti mostrano snippet di file YAML BillingAccount per diverse configurazioni di pagamento:

    cloudBillingConfig

    spec:
      paymentSystemConfig:
        cloudBillingConfig:
          accountID: CLOUD_BILLING_ACCOUNT_ID
    

    Sostituisci CLOUD_BILLING_ACCOUNT_ID con l'ID del tuo account di fatturazioneGoogle Cloud .

    customConfig

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

    Sostituisci PAYMENT_CONFIG_TYPE con il tipo di configurazione di pagamento che hai scelto per la configurazione di fatturazione personalizzata.

    Se non disponi delle informazioni per la configurazione customConfig della tua organizzazione, inserisci i seguenti dettagli:

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

    Il seguente file YAML mostra una risorsa BillingAccount completa con la configurazione 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. Salva il file YAML. Esegui il comando CLI kubectl per applicare la risorsa nel server API globale:

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f billingaccount.yaml
    

    Sostituisci GLOBAL_API_SERVER_KUBECONFIG con il file kubeconfig del server API globale.

Questa sezione fornisce una serie di passaggi per collegare un'organizzazione o un progetto a un BillingAccount.

Per collegare un progetto a un BillingAccount:

  1. Aggiungi i seguenti contenuti al file: billingaccountbinding.yaml:

    • Nella sezione billingAccountRef, compila il campo name con i contenuti del campo name del BillingAccount che vuoi collegare.
    • Nella sezione metadata, compila il campo namespace con i contenuti del campo identico nella risorsa BillingAccount.

    In questo esempio, lo spazio dei nomi del progetto è PROJECT_NAME:

    apiVersion: billing.global.gdc.goog/v1
    kind: BillingAccountBinding
    metadata:
      name: billing
      namespace: PROJECT_NAME
    spec:
      billingAccountRef:
        name: BIL_ACCOUNT_NAME
        namespace: platform
    

    Sostituisci PROJECT_NAME con il nome del progetto associato all'account di fatturazione.

  2. Esegui questo comando kubectl per applicare il file billingaccountbinding.yaml:

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yaml
    
  3. Controlla lo stato di BillingAccountBinding e verifica che non siano presenti errori:

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe billingaccountbinding billing -n PROJECT_NAME
    

    Sostituisci PROJECT_NAME con il nome del progetto associato all'account di fatturazione.

Per collegare un'organizzazione a un BillingAccount:

  1. Aggiungi i seguenti contenuti al file YAML billingaccountbinding.yaml:

    • Nella sezione billingAccountRef, compila il campo name con i contenuti del campo name del BillingAccount che vuoi collegare.
    • Nella sezione metadata, compila il campo namespace con i contenuti del campo identico nella risorsa BillingAccount. In questo esempio, lo spazio dei nomi dell'organizzazione è platform:
    apiVersion: billing.global.gdc.goog/v1
    kind: BillingAccountBinding
    metadata:
      name: billing
      namespace: platform
    spec:
      billingAccountRef:
        name: BIL_ACCOUNT_NAME
        namespace: platform
    
  2. Esegui questo comando kubectl per applicare il file billingaccountbinding.yaml:

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yaml
    
  3. Controlla lo stato di BillingAccountBinding e verifica che non siano presenti errori:

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe billingaccountbinding billing -n platform
    

Elenco dei binding dell'account di fatturazione

Visualizza un elenco di tutte le risorse BillingAccountBinding di cui è stato eseguito il deployment e il loro stato attuale in tutti gli spazi dei nomi dell'organizzazione:

  kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG get billingaccountbinding -A -o 'custom-columns=NAME:metadata.name,NAMESPACE:metadata.namespace,BillingAccountName:spec.billingAccountRef.name,STATUS:status.conditions[0].status'

Questo comando restituisce NAME, NAMESPACE, BillingAccountName e STATUS di ogni BillingAccountBinding. Il campo STATUS indica se il binding è attivo o se sono presenti errori.

Gerarchia e comportamento degli account di fatturazione

Quando colleghi gli account di fatturazione a organizzazioni e progetti, si applicano la seguente gerarchia e i seguenti comportamenti:

  • L'associazione a livello di progetto ha la precedenza:se un progetto specifico, ad esempio project-A, è collegato esplicitamente a un BillingAccount (ad esempio billing-account-1), tutti i costi per project-A vengono fatturati esclusivamente a billing-account-1. Questa associazione a livello di progetto rimane valida indipendentemente dalle impostazioni dell'account di fatturazione a livello di organizzazione.

  • Associazione a livello di organizzazione per i progetti scollegati:se la tua organizzazione è collegata a un BillingAccount (ad esempio billing-account-0), tutti i progetti all'interno di questa organizzazione che non hanno un proprio BillingAccountBinding esplicito vengono associati e fatturati automaticamente a billing-account-0. In genere, l'associazione diventa effettiva dopo circa 15 minuti.

  • Modifica degli account di fatturazione dell'organizzazione:se l'account di fatturazione collegato a un'organizzazione cambia (ad esempio da billing-account-0 a billing-account-new), i progetti che in precedenza ereditavano billing-account-0 non passano automaticamente a billing-account-new. Questi progetti rimangono associati a billing-account-0 e il loro account di fatturazione deve essere aggiornato manualmente se vuoi che utilizzino billing-account-new.

Modificare l'account di fatturazione collegato

In Distributed Cloud, non puoi eliminare un account di fatturazione. Se devi modificare la configurazione di fatturazione, devi modificare l'account di fatturazione collegato a un'organizzazione o a un progetto modificando BillingAccountBinding. Alcuni scenari per questo caso d'uso includono i seguenti esempi:

  • Le regole contabili della tua azienda richiedono di dividere gli addebiti associati ai carichi di lavoro a livello di sviluppo e produzione in account separati.
  • Crea un account di fatturazione per addebitare un contratto cliente per un periodo di un anno. Alla scadenza del contratto, devi addebitare il periodo rimanente che supera un anno.

Modificare l'account di fatturazione collegato a un progetto

Per modificare l'account di fatturazione collegato a un progetto:

  1. Crea un nuovo BillingAccount da collegare al progetto. Questo account sostituisce il precedente.

  2. Individua il file YAML della risorsa BillingAccountBinding nello spazio dei nomi del progetto per vedere quale account di fatturazione è collegato:

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe billingaccountbinding billing -n PROJECT_NAME
    
  3. Modifica BillingAccountBinding per collegarlo al nuovo account di fatturazione. Nella sezione billingAccountRef, compila il campo name con un nuovo nome BillingAccount creato nel passaggio 1 di questa sezione.

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG edit billingaccountbinding billing -n PROJECT_NAME
    
  4. Dopo aver apportato le modifiche, assicurati che l'account di fatturazione sia stato aggiornato correttamente:

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe billingaccountbinding billing -n PROJECT_NAME
    

L'esempio seguente mostra un file YAML BillingAccountBinding con l'account expired-billing-account collegato al progetto 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

L'esempio seguente mostra il file YAML BillingAccountBinding dell'esempio precedente modificato per collegare un nuovo account chiamato 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

Modificare l'account di fatturazione collegato per un'organizzazione

Per modificare l'account di fatturazione collegato per un'organizzazione:

  1. Crea un nuovo BillingAccount da collegare all'organizzazione. Questo account sostituisce il precedente.

  2. Individua il file YAML della risorsa BillingAccountBinding nello spazio dei nomi platform per vedere quale account di fatturazione è collegato:

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe billingaccountbinding billing -n platform
    
  3. Modifica BillingAccountBinding per collegarlo al nuovo account di fatturazione. Nella sezione billingAccountRef, compila il campo name con un nuovo nome BillingAccount creato nel passaggio 1.

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG edit billingaccountbinding billing -n platform
    
  4. Dopo aver apportato le modifiche, assicurati che l'account di fatturazione sia stato aggiornato correttamente:

    kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe billingaccountbinding billing -n platform