Questa pagina mostra come visualizzare un'analisi dettagliata dei costi del cluster Google Kubernetes Engine (GKE) nell'esportazione BigQuery di Cloud Billing utilizzando l'allocazione dei costi di GKE.
Puoi utilizzare queste informazioni per distribuire i costi di un cluster tra i relativi utenti.
Potenziale aumento del volume di dati
L'attivazione dell'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 di etichette e spazi dei nomi distinti che utilizzi nei pod e nei cluster.
L'attivazione dell'allocazione dei costi di GKE non modifica il costo totale del tuo utilizzo di GKE. La somma degli elementi pubblicitari di costo nell'esportazione è la stessa e le query e i report esistenti che hai creato nell'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 del cluster nei seguenti modi:
- L'allocazione dei costi di GKE offre un'alternativa al monitoraggio dell'utilizzo del cluster per ottenere informazioni sui 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 ti 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 operazioni:
- Attiva l'API Google Kubernetes Engine. Attiva l'API Google Kubernetes Engine
- Se vuoi utilizzare Google Cloud CLI per questa attività,
installa e poi
inizializza gcloud CLI. Se hai già installato gcloud CLI, ottieni la versione più recente eseguendo
gcloud components update
.
- Assicurati di aver completato i passaggi per esportare i dati dettagliati sui costi di utilizzo in BigQuery. Se la tua organizzazione esporta già i dati, devi disporre dell'accesso per eseguire query sulle tabelle.
Limitazioni e restrizioni
- Puoi visualizzare i dati di allocazione dei costi di GKE solo nell'esportazione dei dati di costo di utilizzo dettagliato di BigQuery di Cloud Billing.
- Devi disporre di Google Cloud CLI 392.0.0 o versioni successive
- Se attivi l'allocazione dei costi di GKE, l'esportazione della fatturazione inizia a includere voci aggiuntive per le risorse GKE a partire da quella data. L'esportazione della fatturazione non esegue il backfill dei dati.
- Se disattivi l'allocazione dei costi di GKE, l'esportazione della fatturazione interrompe l'inclusione di elementi pubblicitari aggiuntivi, ma non modifica né rimuove gli elementi pubblicitari precedenti generati quando la funzionalità era attivata.
- I dati di allocazione dei costi di GKE si basano sulle richieste di risorse, non sulle risorse consumate. Per scoprire di più sulle differenze tra richieste di risorse, limiti di risorse e consumo di risorse, consulta Best practice di Kubernetes: richieste e limiti delle risorse.
- L'allocazione dei costi di GKE supporta i seguenti tipi di SKU delle risorse:
- SKU vCPU delle istanze VM di Compute Engine
- SKU RAM delle istanze VM di Compute Engine
- SKU GPU delle istanze VM di Compute Engine
- SKU della capacità PD 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 attivato 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 dei dischi permanenti con le seguenti eccezioni:
- Supporta solo le risorse
PersistentVolume
di cui è stato eseguito il provisioning in modo dinamico tramitePersistentVolumeClaims
o volumi effimeri generici. - Supporta solo le risorse
PersistentVolume
di cui è stato eseguito il provisioning tramite il driver CSI per il disco permanente di Compute Engine o con il plug-in di archiviazionekubernetes.io/gce-pd
deprecato con modalità di accessoReadWriteOnce
oReadWriteOncePod
. - I dischi permanenti con un tempo di attività inferiore a 30 minuti potrebbero non essere monitorati. I dischi permanenti con un tempo di attività di almeno 30 minuti vengono monitorati sempre.
- Supporta solo le risorse
Visualizzare i costi dei cluster GKE
Quando attivi l'allocazione dei costi di GKE, il nome e lo spazio dei nomi dei carichi di lavoro GKE vengono visualizzati nel campo labels
dell'esportazione della fatturazione in BigQuery:
Chiave dell'etichetta della risorsa (labels.key ) |
Valore dell'etichetta della risorsa (labels.value ) |
|
Descrizione |
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. |
Se una chiave dell'etichetta Kubernetes è in conflitto con una chiave dell'etichetta VM, il valore dell'etichetta Kubernetes sostituisce il valore dell'etichetta VM.
Le etichette delle risorse del cluster e pool di nodi vengono applicate alle risorse utilizzando
la seguente priorità, dalla più alta alla più bassa:
|
Nome del cluster | goog-k8s-cluster-name |
[cluster-name] |
Spazio dei nomi | k8s-namespace |
[namespace] |
Tipo di carico di lavoro | k8s-workload-type |
[workload-type] (ad es. apps/v1-Deployment ,apps/v1-StatefulSet ,apps/v1-DaemonSet ,apps/v1-ReplicaSet ,batch/v1-Job ,batch/v1-CronJob ,core/v1-Pod ) |
Nome del workload | k8s-workload-name |
[workload-name] |
Per ulteriori informazioni, consulta Schema dei dati dettagliati sui costi di utilizzo.
Inoltre, i seguenti spazi dei nomi vengono utilizzati per monitorare il sovraccarico e le risorse non allocate:
kube:system-overhead
: vengono prese in considerazione le risorse del nodo non disponibili per i pod. Queste risorse vengono riservate dal sistema per l'esecuzione del framework Kubernetes (inclusi, a titolo esemplificativo, kubelet, kube-proxy, containerd). Si tratta della differenza tra la capacità del nodo e le risorse allocabili.kube:unallocated
: le risorse non vengono richieste dai carichi di lavoro né per il sovraccarico 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 è riuscito a elaborare lo SKU. Questo può accadere durante il provisioning di una nuova istanza Compute Engine. Puoi aspettarti alcuni valorigoog-k8s-unknown
durante l'avvio e l'arresto del nodo, ad esempio quando GKE esegue l'autoscaling di un cluster.goog-k8s-unsupported-sku
: l'allocazione dei costi di GKE non supporta questo SKU. Trattalo come<blank>
/NULL
. Non c'è alcuna 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 GKE non è attivata o quando la risorsa non appartiene a un cluster gestito GKE.
I costi dei dischi permanenti vengono monitorati quando il supportoPersistentVolumeClaims
del Persistent Disk viene rivendicato dai pod. I costi del disco rigido permanente ereditano tutti i metadati, ad esempio le etichette e gli spazi dei nomi del pod, del pod che presenta la rivendicazione, fino all'eliminazione dei relativi PersistentVolumeClaims
. Per i PersistentVolumeClaims
eliminati, ma che mantengono PersistentVolumes
in base al criterio di recupero, i costi dei dischi permanenti vengono monitorati 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 attivare 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 Compute Engine per il cluster. Per i cluster di zona, utilizza--zone=COMPUTE_ZONE
.
Console
Per attivare l'allocazione dei costi di GKE quando crei un nuovo cluster, segui questi passaggi:
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Fai clic su add_box Crea.
Configura il cluster.
Nel riquadro di navigazione, in Cluster, fai clic su Funzionalità.
Nella sezione Altro, seleziona la casella di controllo Attiva l'allocazione dei costi.
Configura il cluster come necessario, 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 attivare l'allocazione dei costi di GKE su un cluster esistente, procedi nel seguente modo:
- Vai alla pagina Google Kubernetes Engine nella console Google Cloud. Vai a Google Kubernetes Engine
- Fai clic sul nome del cluster da modificare.
- Nella pagina Cluster, nella sezione Funzionalità, fai clic su edit accanto a Allocazione dei costi.
- Nella finestra di dialogo Modifica allocazione dei costi, seleziona la casella di controllo Attiva allocazione dei costi.
- 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 GKE è abilitata.
Console
Per verificare se l'allocazione dei costi di GKE è abilitata in un cluster esistente:
- Vai alla pagina Google Kubernetes Engine nella console Google Cloud. Vai a Google Kubernetes Engine
- Fai clic sul nome del cluster da modificare.
- Nella pagina Cluster, nella sezione Funzionalità, accanto a Allocazione dei costi viene indicato se l'allocazione dei costi di GKE è attivata.
Filtrare i dati di costo di GKE
Le query di esempio riportate di seguito mostrano come filtrare e raggruppare i costi di GKE per i tipi di risorse supportati in base al nome del cluster, allo spazio dei nomi e all'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
- Visualizza altre query di esempio per l'esportazione dei dati di fatturazione Cloud.
- Scopri come visualizzare i costi con Looker Studio.