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 ruoloorganization-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 ruoloorganization-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 ruoloorganization-billing-manager.
Recupera il file kubeconfig
Per eseguire comandi sul server API globale, assicurati di disporre delle seguenti risorse:
Accedi e genera il file kubeconfig per il server API globale se non ne hai uno.
Utilizza il percorso del file kubeconfig del server API globale per sostituire
GLOBAL_API_SERVER_KUBECONFIGin 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:
Crea un file YAML e aggiungi la risorsa personalizzata
BillingAccounte 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".
- BIL_ACCOUNT_NAME: il nome dell'account di fatturazione.
Ad esempio,
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.customConfigsupporta un dizionario di stringhe chiave-valore, con una chiave obbligatoriapayment-config-type.
Gli esempi seguenti mostrano snippet di file YAML
BillingAccountper diverse configurazioni di pagamento:cloudBillingConfigspec: paymentSystemConfig: cloudBillingConfig: accountID: CLOUD_BILLING_ACCOUNT_IDSostituisci
CLOUD_BILLING_ACCOUNT_IDcon l'ID del tuo account di fatturazioneGoogle Cloud .customConfigspec: paymentSystemConfig: customConfig: "payment-config-type": PAYMENT_CONFIG_TYPESostituisci
PAYMENT_CONFIG_TYPEcon il tipo di configurazione di pagamento che hai scelto per la configurazione di fatturazione personalizzata.Se non disponi delle informazioni per la configurazione
customConfigdella tua organizzazione, inserisci i seguenti dettagli:spec: paymentSystemConfig: customConfig: "payment-config-type": "N/A"Il seguente file YAML mostra una risorsa
BillingAccountcompleta con la configurazionecloudBillingConfig: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"Salva il file YAML. Esegui il comando CLI
kubectlper applicare la risorsa nel server API globale:kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f billingaccount.yamlSostituisci
GLOBAL_API_SERVER_KUBECONFIGcon il file kubeconfig del server API globale.
Collegare un'organizzazione o un progetto a un account di fatturazione
Questa sezione fornisce una serie di passaggi per collegare un'organizzazione o un progetto a un
BillingAccount.
Collega un progetto
Per collegare un progetto a un BillingAccount:
Aggiungi i seguenti contenuti al file:
billingaccountbinding.yaml:- Nella sezione
billingAccountRef, compila il camponamecon i contenuti del camponamedelBillingAccountche vuoi collegare. - Nella sezione
metadata, compila il camponamespacecon i contenuti del campo identico nella risorsaBillingAccount.
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: platformSostituisci
PROJECT_NAMEcon il nome del progetto associato all'account di fatturazione.- Nella sezione
Esegui questo comando
kubectlper applicare il filebillingaccountbinding.yaml:kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yamlControlla lo stato di
BillingAccountBindinge verifica che non siano presenti errori:kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe billingaccountbinding billing -n PROJECT_NAMESostituisci
PROJECT_NAMEcon il nome del progetto associato all'account di fatturazione.
Collegare un'organizzazione
Per collegare un'organizzazione a un BillingAccount:
Aggiungi i seguenti contenuti al file YAML
billingaccountbinding.yaml:- Nella sezione
billingAccountRef, compila il camponamecon i contenuti del camponamedelBillingAccountche vuoi collegare. - Nella sezione
metadata, compila il camponamespacecon i contenuti del campo identico nella risorsaBillingAccount. 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- Nella sezione
Esegui questo comando
kubectlper applicare il filebillingaccountbinding.yaml:kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yamlControlla lo stato di
BillingAccountBindinge 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 unBillingAccount(ad esempiobilling-account-1), tutti i costi perproject-Avengono fatturati esclusivamente abilling-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 esempiobilling-account-0), tutti i progetti all'interno di questa organizzazione che non hanno un proprioBillingAccountBindingesplicito vengono associati e fatturati automaticamente abilling-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-0abilling-account-new), i progetti che in precedenza ereditavanobilling-account-0non passano automaticamente abilling-account-new. Questi progetti rimangono associati abilling-account-0e il loro account di fatturazione deve essere aggiornato manualmente se vuoi che utilizzinobilling-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:
Crea un nuovo
BillingAccountda collegare al progetto. Questo account sostituisce il precedente.Individua il file YAML della risorsa
BillingAccountBindingnello spazio dei nomi del progetto per vedere quale account di fatturazione è collegato:kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe billingaccountbinding billing -n PROJECT_NAMEModifica
BillingAccountBindingper collegarlo al nuovo account di fatturazione. Nella sezionebillingAccountRef, compila il camponamecon un nuovo nomeBillingAccountcreato nel passaggio 1 di questa sezione.kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG edit billingaccountbinding billing -n PROJECT_NAMEDopo 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:
Crea un nuovo
BillingAccountda collegare all'organizzazione. Questo account sostituisce il precedente.Individua il file YAML della risorsa
BillingAccountBindingnello spazio dei nomiplatformper vedere quale account di fatturazione è collegato:kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe billingaccountbinding billing -n platformModifica
BillingAccountBindingper collegarlo al nuovo account di fatturazione. Nella sezionebillingAccountRef, compila il camponamecon un nuovo nomeBillingAccountcreato nel passaggio 1.kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG edit billingaccountbinding billing -n platformDopo 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