Für Google Distributed Cloud-Umgebungen (GDC) ohne Internetverbindung ist ein Rechnungskonto erforderlich, um die Kosten für Projekte und Organisationen zu erfassen. Wenn Sie kein Rechnungskonto mit einer Organisation oder einem Projekt verknüpfen, gehen die mit der Ressource verknüpften Kostendaten verloren.
Wenn die Dienstnutzung dem Kunden in Rechnung gestellt werden soll, wird für alle Rechnungskonten innerhalb einer Organisation eine einzige Preistabelle verwendet.
Hinweise
Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die folgenden erforderlichen Rollen zuzuweisen. Diese Rollen sind entweder an den Projektnamespace für die Abrechnung auf Projektebene oder an den Plattformnamespace für die Abrechnung auf Organisationsebene gebunden:
Globaler Administrator für das Abrechnungskonto der Organisation: Kann die
BillingAccount-Ressource erstellen, verwalten und binden. Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolleorganization-billing-account-adminzuzuweisen.Global Organization Billing Account User: Die
BillingAccount-Ressource kann gelesen, aufgelistet und gebunden werden. Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolleorganization-billing-account-userzuzuweisen.Global Organization Billing Account Manager: Berechtigung zum Lesen, Auflisten, Erstellen und Aktualisieren der
BillingAccountBinding-Ressource. Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolleorganization-billing-managerzuzuweisen.
kubeconfig-Datei abrufen
Damit Sie Befehle für den Global API-Server ausführen können, benötigen Sie die folgenden Ressourcen:
Melden Sie sich an und generieren Sie die kubeconfig-Datei für den globalen API-Server, falls Sie noch keine haben.
Verwenden Sie den Pfad zur kubeconfig-Datei des globalen API-Servers, um
GLOBAL_API_SERVER_KUBECONFIGin dieser Anleitung zu ersetzen.
Neues Rechnungskonto erstellen
Ein Abrechnungskonto wird eindeutig durch seine name und namespace identifiziert. Wenn Sie ein Rechnungskonto erstellen möchten, verwenden Sie eine benutzerdefinierte Ressource, um name und namespace festzulegen:
Erstellen Sie eine YAML-Datei und fügen Sie die benutzerdefinierte Ressource
BillingAccountund den folgenden Inhalt hinzu: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"Ersetzen Sie die folgenden Variablen:
- BIL_ACCOUNT_NAME: der Name des Rechnungskontos.
Beispiel:
test-billing-account. - BIL_DISPLAY_NAME: der Anzeigename des Abrechnungskontos.
Beispiel:
"Test Billing Account".
- BIL_ACCOUNT_NAME: der Name des Rechnungskontos.
Beispiel:
Prüfen Sie den Typ Ihrer Zahlungskonfiguration. Für Distributed Cloud-Rechnungskonten muss eine der folgenden Zahlungskonfigurationen festgelegt sein:
cloudBillingConfig: Die Standardkonfiguration für die Zahlung. In dieser Konfiguration wird eine Cloud-Rechnungskonto-ID gespeichert.customConfig: Eine benutzerdefinierte Konfiguration für Partner zum Speichern ihrer Zahlungskonfiguration für die Abrechnung der Organisation.customConfigunterstützt ein Dictionary mit Schlüssel/Wert-Strings und dem obligatorischen Schlüsselpayment-config-type.
Die folgenden Beispiele zeigen
BillingAccount-YAML-Dateischnipsel für verschiedene Zahlungskonfigurationen:cloudBillingConfigspec: paymentSystemConfig: cloudBillingConfig: accountID: CLOUD_BILLING_ACCOUNT_IDErsetzen Sie
CLOUD_BILLING_ACCOUNT_IDdurch die ID IhresGoogle Cloud Abrechnungskontos.customConfigspec: paymentSystemConfig: customConfig: "payment-config-type": PAYMENT_CONFIG_TYPEErsetzen Sie
PAYMENT_CONFIG_TYPEdurch den von Ihnen ausgewählten Zahlungskonfigurationstyp für Ihre benutzerdefinierte Abrechnungskonfiguration.Wenn Sie die Informationen für die
customConfig-Konfiguration Ihrer Organisation nicht haben, geben Sie die folgenden Details ein:spec: paymentSystemConfig: customConfig: "payment-config-type": "N/A"Die folgende YAML-Datei zeigt eine vollständige
BillingAccount-Ressource mit dercloudBillingConfig-Konfiguration: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"Speichern Sie die YAML-Datei. Führen Sie die
kubectl-Befehlszeile aus, um die Ressource auf den globalen API-Server anzuwenden:kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f billingaccount.yamlErsetzen Sie
GLOBAL_API_SERVER_KUBECONFIGdurch die kubeconfig-Datei des globalen API-Servers.
Organisation oder Projekt mit einem Rechnungskonto verknüpfen
In diesem Abschnitt finden Sie eine Reihe von Schritten zum Verknüpfen einer Organisation oder eines Projekts mit einem BillingAccount.
Projekt verknüpfen
So verknüpfen Sie ein Projekt mit einer BillingAccount:
Fügen Sie der Datei
billingaccountbinding.yamlden folgenden Inhalt hinzu:- Füllen Sie im Abschnitt
billingAccountRefdas Feldnamemit dem Inhalt des Feldsnamein derBillingAccountaus, die Sie verknüpfen möchten. - Füllen Sie im Abschnitt
metadatadas Feldnamespacemit dem Inhalt des identischen Felds in der RessourceBillingAccountaus.
In diesem Beispiel ist der Projekt-Namespace PROJECT_NAME:
apiVersion: billing.global.gdc.goog/v1 kind: BillingAccountBinding metadata: name: billing namespace: PROJECT_NAME spec: billingAccountRef: name: BIL_ACCOUNT_NAME namespace: platformErsetzen Sie
PROJECT_NAMEdurch den Namen des Projekts, das mit dem Abrechnungskonto verknüpft ist.- Füllen Sie im Abschnitt
Führen Sie den folgenden
kubectl-Befehl aus, um die Dateibillingaccountbinding.yamlanzuwenden:kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yamlPrüfen Sie den Status von
BillingAccountBindingund vergewissern Sie sich, dass keine Fehler vorliegen:kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe billingaccountbinding billing -n PROJECT_NAMEErsetzen Sie
PROJECT_NAMEdurch den Namen des Projekts, das mit dem Abrechnungskonto verknüpft ist.
Organisation verknüpfen
So verknüpfen Sie eine Organisation mit einem BillingAccount:
Fügen Sie der YAML-Datei
billingaccountbinding.yamlden folgenden Inhalt hinzu:- Füllen Sie im Bereich
billingAccountRefdas Feldnamemit dem Inhalt des Feldsnamein derBillingAccountaus, die Sie verknüpfen möchten. - Füllen Sie im Abschnitt
metadatadas Feldnamespacemit dem Inhalt des identischen Felds in der RessourceBillingAccountaus. In diesem Beispiel lautet der Organisations-Namespaceplatform:
apiVersion: billing.global.gdc.goog/v1 kind: BillingAccountBinding metadata: name: billing namespace: platform spec: billingAccountRef: name: BIL_ACCOUNT_NAME namespace: platform- Füllen Sie im Bereich
Führen Sie den folgenden
kubectl-Befehl aus, um die Dateibillingaccountbinding.yamlanzuwenden:kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yamlPrüfen Sie den Status von
BillingAccountBindingund vergewissern Sie sich, dass keine Fehler vorliegen:kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe billingaccountbinding billing -n platform
Bindungen von Rechnungskonten auflisten
Eine Liste aller bereitgestellten BillingAccountBinding-Ressourcen und ihres aktuellen Status in allen Namespaces der Organisation ansehen:
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'
Mit diesem Befehl werden die NAME, NAMESPACE, BillingAccountName und STATUS jedes BillingAccountBinding ausgegeben. Das Feld STATUS gibt an, ob die Bindung aktiv ist oder ob Fehler vorliegen.
Rechnungskontohierarchie und ‑verhalten
Beim Verknüpfen von Rechnungskonten mit Organisationen und Projekten gelten die folgenden Hierarchien und Verhaltensweisen:
Vorrang der Zuordnung auf Projektebene:Wenn ein bestimmtes Projekt, z. B.
project-A, explizit mit einemBillingAccount(z. B.billing-account-1) verknüpft ist, werden alle Kosten fürproject-Aausschließlichbilling-account-1in Rechnung gestellt. Diese Zuordnung auf Projektebene bleibt unabhängig von den Rechnungskontoeinstellungen auf Organisationsebene gültig.Zuordnung auf Organisationsebene für nicht verknüpfte Projekte:Wenn Ihre Organisation mit einem
BillingAccount(z. B.billing-account-0) verknüpft ist, werden alle Projekte in dieser Organisation, die keine eigene expliziteBillingAccountBindinghaben, automatischbilling-account-0zugeordnet und darüber abgerechnet. Diese Verknüpfung wird in der Regel nach etwa 15 Minuten wirksam.Rechnungskonten der Organisation ändern:Wenn sich das mit einer Organisation verknüpfte Rechnungskonto ändert (z. B. von
billing-account-0zubilling-account-new), werden Projekte, die zuvorbilling-account-0übernommen haben, nicht automatisch aufbilling-account-newumgestellt. Diese Projekte bleiben anbilling-account-0gebunden und ihr Rechnungskonto muss manuell aktualisiert werden, wenn Siebilling-account-newverwenden möchten.
Verknüpftes Rechnungskonto ändern
In Distributed Cloud können Sie kein Rechnungskonto löschen. Wenn Sie Änderungen an Ihrer Abrechnungskonfiguration vornehmen möchten, müssen Sie das Rechnungskonto ändern, das mit einer Organisation oder einem Projekt verknüpft ist, indem Sie die BillingAccountBinding ändern. Hier einige Beispiele für Szenarien für diesen Anwendungsfall:
- Die Buchhaltungsregeln in Ihrem Unternehmen erfordern, dass Kosten für Arbeitslasten auf Entwickler- und Produktionsebene auf separate Konten aufgeteilt werden.
- Sie erstellen ein Rechnungskonto, um einen Kundenvertrag für ein Jahr abzurechnen. Wenn der Vertrag ausläuft, müssen Sie den verbleibenden Zeitraum, der über ein Jahr hinausgeht, in Rechnung stellen.
Verknüpftes Rechnungskonto für ein Projekt ändern
So ändern Sie das verknüpfte Rechnungskonto für ein Projekt:
Erstellen Sie eine neue
BillingAccount, die mit dem Projekt verknüpft werden soll. Dieses Konto ersetzt das alte Konto.Suchen Sie im Projekt-Namespace nach der YAML-Datei der
BillingAccountBinding-Ressource, um zu sehen, welches Rechnungskonto verknüpft ist:kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe billingaccountbinding billing -n PROJECT_NAMEÄndern Sie die
BillingAccountBinding, um sie mit dem neuen Rechnungskonto zu verknüpfen. Füllen Sie im AbschnittbillingAccountRefdas Feldnamemit einem neuenBillingAccount-Namen aus, der in Schritt 1 dieses Abschnitts erstellt wurde.kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG edit billingaccountbinding billing -n PROJECT_NAMEPrüfen Sie nach den Änderungen, ob das Abrechnungskonto richtig aktualisiert wurde:
kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe billingaccountbinding billing -n PROJECT_NAME
Das folgende Beispiel zeigt eine BillingAccountBinding-YAML-Datei mit dem Konto expired-billing-account, das mit dem Projekt project-one verknüpft ist:
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
Im folgenden Beispiel wird die YAML-Datei BillingAccountBinding aus dem vorherigen Beispiel so geändert, dass ein neues Konto namens new billing account verknüpft wird:
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
Verknüpftes Rechnungskonto für eine Organisation ändern
So ändern Sie das verknüpfte Rechnungskonto für eine Organisation:
Erstellen Sie eine neue
BillingAccount, um sie mit der Organisation zu verknüpfen. Dieses Konto ersetzt das alte Konto.Suchen Sie im Namespace
platformnach der YAML-Datei für die RessourceBillingAccountBinding, um zu sehen, welches Rechnungskonto verknüpft ist:kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe billingaccountbinding billing -n platformÄndern Sie die
BillingAccountBinding, um sie mit dem neuen Rechnungskonto zu verknüpfen. Füllen Sie im AbschnittbillingAccountRefdas Feldnamemit einem neuenBillingAccount-Namen aus, der in Schritt 1 erstellt wurde.kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG edit billingaccountbinding billing -n platformPrüfen Sie nach den Änderungen, ob das Abrechnungskonto richtig aktualisiert wurde:
kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe billingaccountbinding billing -n platform