Auf dieser Seite erfahren Sie, wie Sie eine Aufschlüsselung Ihrer GKE-Clusterkosten (Google Kubernetes Engine) im Cloud Billing-BigQuery-Export mithilfe der GKE-Kostenzuordnung aufrufen.
Anhand dieser Informationen können Sie die Kosten eines Clusters an seine Nutzer verteilen.
Mögliche Erhöhung des Datenvolumens
Das Aktivieren der GKE-Kostenzuordnung kann Ihre Speicher- und Abfragekosten in BigQuery erhöhen. Die genaue Erhöhung hängt von der Anzahl der unterschiedlichen Label- und Namespace-Kombinationen ab, die Sie in Pods und Clustern verwenden.
Das Aktivieren der GKE-Kostenzuordnung ändert nicht die Gesamtkosten Ihrer GKE-Nutzung. Die Summe der Kostenpositionen in Ihrem Export ist die gleiche und die vorhandenen Abfragen und Berichte, die Sie im Abrechnungsexport erstellt haben, geben die gleichen Werte zurück.
GKE-Kostenzuordnung und Messung der Clusternutzung
Die GKE-Kostenzuordnung unterscheidet sich von der Messung der Clusternutzung in folgender Weise:
- Die GKE-Kostenzuordnung bietet eine Alternative zur Messung der Clusternutzung für das Abrufen von Clusterinformationen.
- Die GKE-Kostenzuordnung berechnet die Clusterkosten in Ihrem Cloud-Rechnungskonto, statt die Daten in einer Looker Studio-Vorlage zu aggregieren.
- Mit der GKE-Kostenzuordnung können Sie die Kostendaten für einen Cluster in der Cloud Billing Google Cloud Console und im detaillierten Cloud Billing-Export aufrufen.
Hinweis
Führen Sie die folgenden Schritte durch, bevor Sie beginnen:
- Aktivieren Sie die Google Kubernetes Engine API. Google Kubernetes Engine API aktivieren
- Wenn Sie die Google Cloud CLI für diese Aufgabe verwenden möchten, müssen Sie die gcloud CLI installieren und dann initialisieren. Wenn Sie die gcloud CLI bereits installiert haben, rufen Sie die neueste Version mit
gcloud components update
ab.
- Führen Sie die Schritte zum Exportieren detaillierter Nutzungskostendaten nach BigQuery aus. Wenn Ihre Organisation bereits Daten exportiert, müssen Sie Zugriff auf die Tabellen haben.
Limits und Einschränkungen
- Sie können GKE-Kostenzuordnungsdaten nur im Datenexport der detaillierten BigQuery-Nutzungskosten von Cloud Billing einsehen.
- Sie benötigen die Google Cloud CLI-Version 392.0.0 oder höher
- Wenn Sie die GKE-Kostenzuordnung aktivieren, beginnt Ihr Abrechnungsexport ab diesem Datum mit zusätzlichen Positionen für Ihre GKE-Ressourcen. Für den Abrechnungsexport wird kein Backfill von Daten durchgeführt.
- Wenn Sie die GKE-Kostenzuordnung deaktivieren, wird der Abrechnungsexport einschließlich zusätzlicher Positionen beendet. Frühere Positionen, die generiert wurden, als die Funktion aktiviert war, werden jedoch nicht geändert oder entfernt.
- Die Daten zur GKE-Kostenzuordnung basieren auf Ressourcenanfragen und nicht auf verbrauchten Ressourcen. Weitere Informationen zu den Unterschieden zwischen Ressourcenanfragen, Ressourcenlimits und Ressourcenverbrauch finden Sie unter Kubernetes-Best Practices: Ressourcenanfragen und -limits.
- Die GKE-Kostenzuordnung unterstützt die folgenden Ressourcen-SKU-Typen:
- vCPU-SKUs der Compute Engine-VM-Instanz
- RAM-SKUs der Compute Engine-VM-Instanz
- GPU-SKUs der Compute Engine-VM-Instanz
- Kapazitäts-SKUs des Compute Engine-PD
- Hat ein Pod mehr als 50 Kubernetes-Labels, ist keines dieser Labels im Abschnitt "Cloud Billing" der Google Cloud Console oder im detaillierten Export von Cloud Billing verfügbar.
- Nachdem Sie die GKE-Kostenzuordnung aktiviert haben, kann es bis zu drei Tage dauern, bis die Daten in Cloud Billing angezeigt werden.
- Die GKE-Kostenzuordnung enthält Daten von nichtflüchtigem Speicher mit folgenden Ausnahmen:
- Unterstützt nur
PersistentVolume
-Ressourcen, die dynamisch überPersistentVolumeClaims
oder generische flüchtige Volumes bereitgestellt werden. - Unterstützt nur
PersistentVolume
-Ressourcen, die vom CSI-Treiber für nichtflüchtigen Compute Engine-Speicher oder über das veraltete Speicher-Plug-inkubernetes.io/gce-pd
mit dem ZugriffsmodusReadWriteOnce
oderReadWriteOncePod
bereitgestellt werden. - Nichtflüchtige Speicher mit einer Betriebszeit von weniger als 30 Minuten werden möglicherweise nicht verfolgt. Nichtflüchtige Speicher mit mindestens 30 Minuten Betriebszeit werden immer verfolgt.
- Unterstützt nur
Kosten für GKE-Cluster anzeigen
Wenn Sie die GKE-Kostenzuordnung aktivieren, werden der Clustername und der Namespace Ihrer GKE-Arbeitslasten im Feld labels
des Abrechnungsexports nach BigQuery angezeigt:
Schlüssel des Ressourcenlabels (labels.key ) |
Wert des Ressourcenlabels (labels.value ) |
|
Beschreibung |
Kubernetes-Labels haben das folgende Format: k8s-label/${k8s-label-key} , wobei ${k8s-label-key} der Schlüssel des Kubernetes-Labels des Pods ist. Das Abrechnungslabel k8s-label/${k8s-label-key} hat denselben Wert wie das entsprechende Kubernetes-Pod-Label. |
Wenn ein Kubernetes-Labelschlüssel mit einem VM-Labelschlüssel kollidiert, überschreibt der Wert des Kubernetes-Labels den Wert des VM-Labels.
Cluster- und Knotenpool-Ressourcenlabels werden mit der folgenden Priorität (in absteigender Reihenfolge) auf Ressourcen angewendet:
|
Clustername | goog-k8s-cluster-name |
[cluster-name] |
Namespace | k8s-namespace |
[namespace] |
Arbeitslasttyp | k8s-workload-type |
[workload-type] (z. B. apps/v1-Deployment , apps/v1-StatefulSet , apps/v1-DaemonSet , apps/v1-ReplicaSet , batch/v1-Job , batch/v1-CronJob , core/v1-Pod ) |
Arbeitslastname | k8s-workload-name |
[workload-name] |
Weitere Informationen finden Sie unter Schema der detaillierten Nutzungskosten.
Außerdem werden die folgenden Namespaces zum Verfolgen von betriebssystembedingten Aufwand und nicht zugewiesenen Ressourcen verwendet:
kube:system-overhead
: Darin werden Knotenressourcen berücksichtigt, die für Pods nicht verfügbar sind. Diese Ressourcen werden vom System zur Ausführung des Kubernetes-Frameworks bereitgestellt (einschließlich, aber nicht beschränkt auf kubelet, kube-proxy, containerd). Dies ist die Differenz zwischen der Kapazität des Knotens und den zuweisbaren Ressourcen.kube:unallocated
: Ressourcen werden weder von Arbeitslasten noch als Systemaufwand angefordert.
Wenn GKE die Kostenzuordnung für eine Ressource nicht ermitteln kann, enthält der Export einen der folgenden Werte:
goog-k8s-unknown
: Cloud Billing konnte die Artikelnummer nicht verarbeiten. Das kann passieren, wenn eine neue Compute Engine-Instanz bereitgestellt wird. Beim Starten und Herunterfahren des Knotens können Sie einigegoog-k8s-unknown
-Werte erwarten, z. B. wenn GKE einen Cluster automatisch skaliert.goog-k8s-unsupported-sku
: Die GKE-Kostenzuordnung unterstützt diese SKU nicht. Behandeln Sie dies genauso wie<blank>
/NULL
. Es gibt keine Garantie, dass eine SKU immer mit diesem Wert gekennzeichnet wird.<blank>
/NULL
: Die GKE-Kostenzuordnung erfasst diese Ressource nicht. Dies kann auftreten, wenn die GKE-Kostenzuordnung nicht aktiviert ist oder die Ressource nicht zu einem von GKE verwalteten Cluster gehört.
Die Kosten für nichtflüchtige Speicher werden verfolgt, wenn die Sicherungs-PersistentVolumeClaims
des nichtflüchtigen Speichers von Pods beansprucht wird. Die Kosten für den nichtflüchtigen Speicher übernehmen alle Metadaten wie Pod-Labels und Namespaces des Anspruchs-Pods, bis deren PersistentVolumeClaims
gelöscht werden. Bei PersistentVolumeClaims
, die gelöscht werden, aber PersistentVolumes
gemäß der Richtlinie zur Rückforderung beibehalten, werden die Kosten der nichtflüchtigen Speicher als nicht zugewiesen erfasst.
Labels, die direkt auf PersistentVolumeClaims
angewendet werden, werden nicht im Abschnitt „Cloud Billing“ der Google Cloud Console oder im detaillierten Cloud Billing-Export angezeigt.
GKE-Kostenzuordnung aktivieren
Sie können die GKE-Kostenzuordnung für einen neuen oder vorhandenen Cluster mit der gcloud CLI oder der Google Cloud Console aktivieren.
Neuen Cluster erstellen
gcloud
Erstellen Sie mit dem --enable-cost-allocation
-Flag einen Cluster:
gcloud container clusters create CLUSTER_NAME \
--enable-cost-allocation \
--region=COMPUTE_REGION
Dabei gilt:
CLUSTER_NAME
ist der Name des neuen Clusters.COMPUTE_REGION
: die Compute Engine-Region für den Cluster. Verwenden Sie für zonale Cluster--zone=COMPUTE_ZONE
.
Console
So aktivieren Sie die GKE-Kostenzuordnung beim Erstellen eines neuen Clusters:
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.
Klicken Sie auf add_box Erstellen.
Konfigurieren Sie den Cluster.
Klicken Sie im Navigationsbereich unter Cluster auf Features.
Markieren Sie im Bereich Sonstige das Kästchen Kostenzuordnung aktivieren.
Konfigurieren Sie den Cluster nach Bedarf und klicken Sie dann auf Erstellen.
Cluster aktualisieren
gcloud
Aktualisieren Sie einen Cluster mit dem --enable-cost-allocation
-Flag:
gcloud container clusters update CLUSTER_NAME \
--enable-cost-allocation
Ersetzen Sie CLUSTER_NAME
durch den Namen des Clusters.
Console
So aktivieren Sie die GKE-Kostenzuordnung für einen vorhandenen Cluster:
- Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf. Zur Seite "Google Kubernetes Engine"
- Klicken Sie auf den Namen des Clusters, den Sie ändern möchten.
- Klicken Sie auf der Seite Cluster im Abschnitt Features auf edit neben Kostenzuordnung.
- Markieren Sie im Dialogfeld Kostenzuordnung bearbeiten das Kästchen Kostenzuordnung aktivieren.
- Klicken Sie auf Änderungen speichern.
Prüfen, ob die GKE-Kostenzuordnung aktiviert ist
gcloud
Cluster beschreiben:
gcloud container clusters describe CLUSTER_NAME
Die Ausgabe sieht etwa so aus:
...
costManagementConfig:
enabled: true
...
In dieser Ausgabe gibt costManagementConfig
an, dass die GKE-Kostenzuordnung aktiviert ist.
Console
So prüfen Sie, ob die GKE-Kostenzuordnung für einen vorhandenen Cluster aktiviert ist:
- Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf. Zur Seite "Google Kubernetes Engine"
- Klicken Sie auf den Namen des Clusters, den Sie ändern möchten.
- Auf der Seite Cluster im Abschnitt Features wird neben Kostenzuordnung angezeigt, ob die Kostenzuordnung für GKE aktiviert ist.
GKE-Kostendaten filtern
Die folgenden Beispielabfragen zeigen, wie Sie Ihre GKE-Kosten für unterstützte Ressourcentypen nach Clustername, Namespace und Label filtern und gruppieren können.
Ersetzen Sie BILLING_DATASET_TABLE
durch den Namen des Datasets, das Sie in BigQuery erstellt haben.
Der Tabellenname ähnelt gcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID>
.
Bereinigen
Deaktivieren Sie GKE-Kostenzuordnung für den Cluster, damit Ihrem Google Cloud-Konto die auf dieser Seite verwendeten Ressourcen nicht in Rechnung gestellt werden.
gcloud container clusters update CLUSTER_NAME \
--no-enable-cost-allocation
Sie können auch den von Ihnen erstellten Cluster löschen.