Detaillierte Aufschlüsselung der Clusterkosten ansehen


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 einen Cluster-Kostendaten in der Cloud Billing Google Cloud Console und im detaillierten Cloud Billing-Export anzeigen.

Hinweis

Führen Sie die folgenden Aufgaben aus, 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.

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 von Compute Engine-VM-Instanzen
    • 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 von CSI-Treiber für nichtflüchtigen Compute Engine-Speicher bereitgestellt werden oder mit der gce-pd-Speicherklasse mit ReadWriteOnce- oder ReadWriteOncePod-Zugriffsmodus.
    • 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.

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:

Metadaten Beschreibung Clustername Namespace
Schlüssel des Ressourcenlabels (labels.key) 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. goog-k8s-cluster-name k8s-namespace
Wert des Ressourcenlabels (labels.value) Wenn ein Kubernetes-Labelschlüssel mit einem VM-Labelschlüssel kollidiert, überschreibt der Kubernetes-Labelwert den VM-Labelwert. Ressourcenlabels von Clustern und Knotenpools werden mit der folgenden Priorität auf Ressourcen angewendet, von der höchsten bis zur niedrigsten Priorität:
  • Einzelne Ressource, z. B. Instanz oder Speicher
  • Knotenpool
  • Cluster
[cluster-name] [namespace]

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: Ressourcen sind für den betriebssystembedingten Aufwand reserviert.
  • kube:unallocated: Ressourcen werden weder von Arbeitslasten angefordert noch für den Systemaufwand.

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.
  • 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 verfolgt 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:

  1. Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.

    Zur Seite „Google Kubernetes Engine“

  2. Klicken Sie auf Erstellen.

  3. Konfigurieren Sie den Cluster.

  4. Klicken Sie im Navigationsbereich unter Cluster auf Features.

  5. Markieren Sie im Bereich Sonstige das Kästchen Kostenzuordnung aktivieren.

  6. 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:

  1. Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf. Zur Seite "Google Kubernetes Engine"
  2. Klicken Sie auf den Namen des Clusters, den Sie ändern möchten.
  3. Klicken Sie auf der Seite Cluster im Abschnitt Features auf neben Kostenzuordnung.
  4. Markieren Sie im Dialogfeld Kostenzuordnung bearbeiten das Kästchen Kostenzuordnung aktivieren.
  5. Klicken Sie auf Änderungen speichern.

Aktivierung der GKE-Kostenzuordnung prüfen

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:

  1. Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf. Zur Seite "Google Kubernetes Engine"
  2. Klicken Sie auf den Namen des Clusters, den Sie ändern möchten.
  3. 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 in BigQuery erstellten Datasets.

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.

Nächste Schritte