Visualizza un'analisi dettagliata dei costi dei cluster


Questa pagina mostra come visualizzare un'analisi dettagliata dei costi dei cluster Google Kubernetes Engine (GKE) in BigQuery Export della fatturazione Cloud utilizzando l'allocazione dei costi di GKE.

Puoi utilizzare queste informazioni per distribuire i costi di un cluster ai suoi utenti.

Potenziale aumento del volume di dati

L'allocazione dei costi di GKE può aumentare i costi di archiviazione ed esecuzione di query in BigQuery. L'aumento esatto dipende dal numero di combinazioni distinte di etichette e spazi dei nomi utilizzate nei pod e nei cluster.

L'abilitazione dell'allocazione dei costi di GKE non modifica il costo totale dell'utilizzo di GKE. La somma delle voci di costo nell'esportazione è la stessa e le query e i report esistenti che hai creato sull'esportazione della fatturazione restituiscono gli stessi valori.

Allocazione dei costi di GKE e misurazione dell'utilizzo dei cluster

L'allocazione dei costi di GKE è diversa dalla misurazione dell'utilizzo dei cluster per i seguenti modi:

  • L'allocazione dei costi di GKE offre un'alternativa alla misurazione dell'uso dei cluster.
  • L'allocazione dei costi di GKE calcola i costi dei cluster nel tuo account di fatturazione Cloud anziché aggregare i dati in un modello di Looker Studio.
  • L'allocazione dei costi di GKE consente di visualizzare i dati di costo di un cluster nella console Google Cloud per la fatturazione Cloud e nell'esportazione dettagliata della fatturazione Cloud.

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti attività:

  • Abilita l'API Google Kubernetes Engine.
  • Abilita l'API Google Kubernetes Engine
  • Se vuoi utilizzare Google Cloud CLI per questa attività, installa e quindi initialize gcloud CLI. Se hai già installato gcloud CLI, ottieni la versione più recente eseguendo gcloud components update.

Limitazioni e restrizioni

  • Puoi visualizzare i dati sull'allocazione dei costi di GKE solo nell'esportazione dei dati dei costi di utilizzo dettagliati di Cloud Billing BigQuery.
  • Devi disporre di Google Cloud CLI versione 392.0.0 o successiva
  • Se abiliti l'allocazione dei costi di GKE, inizierà l'esportazione della fatturazione con voci aggiuntive per le risorse GKE a partire da quella data. L'esportazione della fatturazione non esegue il backfill dei dati.
  • Se disabiliti l'allocazione dei costi di GKE, l'esportazione della fatturazione interrompe l'inclusione di ulteriori elementi pubblicitari, ma non modifica o rimuove gli elementi pubblicitari precedenti generati mentre la funzionalità era abilitata.
  • I dati di allocazione dei costi di GKE si basano sulle richieste di risorse, non sulle risorse utilizzate. Per ulteriori informazioni sulle differenze tra richieste di risorse, limiti delle risorse e consumo delle risorse, consulta Best practice per Kubernetes: richieste e limiti delle risorse.
  • L'allocazione dei costi di GKE supporta i seguenti tipi di SKU delle risorse:
    • SKU vCPU di istanze VM di Compute Engine
    • SKU della RAM delle istanze VM di Compute Engine
    • SKU GPU per le istanze VM di Compute Engine
    • SKU sulla capacità DP di Compute Engine
  • Se un pod ha più di 50 etichette Kubernetes, nessuna di queste sarà disponibile nella sezione Fatturazione Cloud della console Google Cloud o nell'esportazione dettagliata della fatturazione Cloud.
  • Dopo aver abilitato l'allocazione dei costi di GKE, potrebbero essere necessari fino a tre giorni prima che i dati vengano visualizzati in fatturazione Cloud.
  • L'allocazione dei costi di GKE include i dati provenienti dai dischi permanenti, con le seguenti eccezioni:
    • Supporta solo le risorse PersistentVolume di cui è stato eseguito il provisioning dal driver CSI del disco permanente di Compute Engine o con la classe di archiviazione gce-pd con modalità di accesso ReadWriteOnce o ReadWriteOncePod.
    • È possibile che i dischi permanenti con un tempo di attività inferiore a 30 minuti non vengano tracciati. I dischi permanenti con uptime di almeno 30 minuti vengono sempre monitorati.
  • L'allocazione dei costi di GKE non supporta gli sconti per impegno di utilizzo (CUD) flessibili. L'utilizzo delle risorse coperto dagli sconti per impegno di utilizzo (CUD) flessibili viene visualizzato nello spazio dei nomi goog-k8s-unsupported-sku

Visualizza i costi dei cluster GKE

Quando abiliti l'allocazione dei costi di GKE, il nome del cluster e lo spazio dei nomi dei carichi di lavoro GKE vengono visualizzati nel campo labels dell'esportazione della fatturazione in BigQuery:

Metadati Descrizione Nome del cluster Spazio dei nomi
Chiave di etichetta della risorsa (labels.key) Le etichette Kubernetes hanno il seguente formato: k8s-label/${k8s-label-key}, dove ${k8s-label-key} è la chiave dell'etichetta Kubernetes del pod. L'etichetta di fatturazione k8s-label/${k8s-label-key} ha lo stesso valore dell'etichetta del pod Kubernetes corrispondente. goog-k8s-cluster-name k8s-namespace
Valore etichetta risorsa (labels.value) Se una chiave di etichetta Kubernetes si scontra con una chiave di etichetta VM, il valore dell'etichetta Kubernetes sostituisce il valore dell'etichetta della VM. Le etichette delle risorse del cluster e del pool di nodi vengono applicate alle risorse utilizzando la seguente priorità, dalla più alta alla più bassa:
  • Risorsa singola, ad esempio istanza o spazio di archiviazione
  • Pool di nodi
  • Cluster
[nome-cluster] [spazio dei nomi]

Per maggiori informazioni, consulta Schema dei dati dettagliati dei costi di utilizzo.

Inoltre, per tenere traccia delle risorse overhead e non allocate, vengono utilizzati i seguenti spazi dei nomi:

  • kube:system-overhead: tiene conto delle risorse nodo che non sono disponibili per i pod. Queste risorse vengono accantonate dal sistema per eseguire il framework Kubernetes (inclusi, a titolo esemplificativo, kubelet, kube-proxy, containerd). Questa è la differenza tra la capacità del nodo e le risorse allocabili.
  • kube:unallocated: le risorse non vengono né richieste dai carichi di lavoro né per l'overhead del sistema.

Se GKE non è in grado di determinare l'allocazione dei costi per una risorsa, l'esportazione include uno dei seguenti valori:

  • goog-k8s-unknown: Fatturazione Cloud non ha potuto elaborare lo SKU. Questo può verificarsi quando viene eseguito il provisioning di una nuova istanza di Compute Engine. Puoi aspettarti alcuni valori goog-k8s-unknown durante l'avvio e l'arresto del nodo, ad esempio quando GKE scala automaticamente un cluster.
  • goog-k8s-unsupported-sku: l'allocazione dei costi di GKE non supporta questo SKU. Considera come <blank>/NULL. Non vi è garanzia che uno SKU sia sempre etichettato con questo valore.
  • <blank>/NULL: l'allocazione dei costi di GKE non monitora questa risorsa. Questo può verificarsi quando l'allocazione dei costi di GKE non è abilitata o la risorsa non appartiene a un cluster gestito da GKE.

I costi per i dischi permanenti vengono monitorati quando i PersistentVolumeClaims di supporto del Persistent Disk vengono rivendicati dai pod. I costi del disco permanente ereditano tutti i metadati, come le etichette dei pod e gli spazi dei nomi, del pod di rivendicazione, fino a quando i relativi PersistentVolumeClaims non vengono eliminati. Per i PersistentVolumeClaims eliminati ma che conservano PersistentVolumes in base al criterio di recupero, i costi dei dischi permanenti vengono tracciati come non allocati.

Le etichette applicate direttamente a PersistentVolumeClaims non vengono visualizzate nella sezione Fatturazione Cloud della console Google Cloud o nell'esportazione dettagliata della fatturazione Cloud.

Abilita l'allocazione dei costi di GKE

Puoi abilitare l'allocazione dei costi di GKE su un cluster nuovo o esistente utilizzando gcloud CLI o la console Google Cloud.

Crea un nuovo cluster

gcloud

Crea un cluster utilizzando il flag --enable-cost-allocation:

gcloud container clusters create CLUSTER_NAME \
    --enable-cost-allocation \
    --region=COMPUTE_REGION

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del nuovo cluster.
  • COMPUTE_REGION: la regione di Compute Engine per il tuo cluster. Per i cluster di zona, utilizza --zone=COMPUTE_ZONE.

Console

Per abilitare l'allocazione dei costi di GKE quando crei un nuovo cluster, segui questi passaggi:

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Fai clic su Crea.

  3. Configura il cluster.

  4. Nel riquadro di navigazione, in Cluster, fai clic su Funzionalità.

  5. Nella sezione Altro, seleziona la casella di controllo Abilita allocazione dei costi.

  6. Configura il cluster in base alle tue esigenze, quindi fai clic su Crea.

aggiorna un cluster

gcloud

Aggiorna un cluster utilizzando il flag --enable-cost-allocation:

gcloud container clusters update CLUSTER_NAME \
    --enable-cost-allocation

Sostituisci CLUSTER_NAME con il nome del cluster.

Console

Per abilitare l'allocazione dei costi di GKE su un cluster esistente, segui questi passaggi:

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud. Vai a Google Kubernetes Engine
  2. Fai clic sul nome del cluster da modificare.
  3. Nella sezione Funzionalità della pagina Cluster, fai clic su accanto ad Allocazione dei costi.
  4. Nella finestra di dialogo Modifica allocazione dei costi, seleziona la casella di controllo Abilita allocazione dei costi.
  5. Fai clic su Salva modifiche.

Verifica che l'allocazione dei costi di GKE sia abilitata

gcloud

Descrivi il cluster:

gcloud container clusters describe CLUSTER_NAME

L'output è simile al seguente:

...
costManagementConfig:
  enabled: true
...

In questo output, costManagementConfig indica che l'allocazione dei costi di GKE è abilitata.

Console

Per verificare se l'allocazione dei costi di GKE è abilitata su un cluster esistente:

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud. Vai a Google Kubernetes Engine
  2. Fai clic sul nome del cluster da modificare.
  3. Nella sezione Funzionalità della pagina Cluster, accanto ad Allocazione dei costi verrà visualizzato se l'allocazione dei costi di GKE è abilitata.

Filtra i dati di costo di GKE

Le query di esempio seguenti mostrano come filtrare e raggruppare i costi di GKE per i tipi di risorse supportati in base a nome del cluster, spazio dei nomi ed etichetta.

Sostituisci BILLING_DATASET_TABLE con il nome del set di dati che hai creato in BigQuery.

Il nome della tabella è simile a gcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID>.

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, disabilita l'allocazione dei costi di GKE per il cluster:

gcloud container clusters update CLUSTER_NAME \
    --no-enable-cost-allocation

Puoi anche eliminare il cluster che hai creato.

Passaggi successivi