Che cos'è l'Helm chart di Kubecost?
È possibile installare Kubecost utilizzando l'Helm chart ufficiale tramite il repository cost-analyzer. Questo chart è un pacchetto per il deployment di Kubecost su un cluster Kubernetes con Helm. Definisce le risorse Kubernetes di cui Kubecost ha bisogno, come deployment, service, configurazioni e componenti correlati. Helm gestisce queste risorse come un'unica release, rendendo Kubecost più semplice da installare, aggiornare, configurare e rimuovere.
Cosa include il chart:
L'Helm chart di Kubecost raggruppa le risorse Kubernetes e le dipendenze configurabili necessarie per eseguire Kubecost. A seconda dei valori configurati, può includere i componenti applicativi di Kubecost, l'integrazione con Prometheus, componenti per le metriche Kubernetes, storage persistente, Service e Ingress, risorse di monitoraggio, raccolta dei costi di rete, network policy e integrazioni di pricing con i cloud provider.
Best practice per la configurazione:
- Fissare le versioni dell'Helm chart di Kubecost: specificare una versione esplicita del chart per mantenere i deployment prevedibili ed evitare modifiche impreviste dovute a release più recenti.
- Gestire i values di Helm nel version control: archiviare gli override di configurazione in un file
values.yamlsotto controllo di versione, mantenendo credenziali e altri segreti fuori dal repository. - Usare file di values separati per i diversi ambienti: mantenere configurazioni specifiche per sviluppo, staging e produzione invece di duplicare o modificare i manifest del chart.
- Impostare resource request e limit adeguati: dimensionare CPU e memoria dei componenti di Kubecost in base alla scala del cluster e regolarle in base al consumo di risorse osservato.
- Configurare lo storage persistente per la produzione: scegliere una capacità adeguata per i volumi persistenti e una StorageClass affidabile in base ai requisiti di retention, crescita, backup e ripristino.
- Testare gli upgrade di Helm prima della produzione: validare le nuove versioni del chart e i values personalizzati esistenti in un ambiente non di produzione e mantenere un percorso di rollback testato.
In questo articolo:
- I due Helm chart di Kubecost: cost-analyzer vs kubecost
- Cosa include l'Helm chart
- Come installare Kubecost con Helm
- Helm chart di Kubecost vs manifest Kubernetes
- Best practice per l'Helm chart di Kubecost
I due Helm chart di Kubecost: cost-analyzer vs kubecost

Kubecost ha oggi due linee di Helm chart in cui gli amministratori possono imbattersi: il chart cost-analyzer, più datato, utilizzato per i deployment di Kubecost 2.x, e il più recente chart kubecost introdotto con Kubecost 3.x. L'attuale repository di Kubecost identifica la versione 2.8 come ultima feature release della linea 2.x, la versione 2.9 come passaggio intermedio di upgrade e la versione 3.0 come prima release di Kubecost 3.x.
Il chart cost-analyzer è il metodo di deployment legacy utilizzato per tutta la serie Kubecost 2.x. Gli ambienti esistenti possono continuare a fare riferimento a comandi come kubecost/cost-analyzer, e Kubecost mantiene ancora i repository associati a quel chart per i deployment più datati e gli scenari di upgrade.
Per Kubecost 3.x, il chart principale si chiama ora kubecost. Le nuove installazioni utilizzano il chart kubecost/kubecost dal repository Helm di Kubecost. Kubecost 3.x introduce inoltre importanti cambiamenti architetturali, tra cui uno storage basato su ClickHouse e un nuovo finops-agent che sostituisce il precedente agente cost-model utilizzato nella 2.x.
Le organizzazioni che aggiornano un deployment Kubecost 2.x esistente dovrebbero quindi considerare il passaggio come qualcosa di più di una semplice ridenominazione del chart. Kubecost consiglia di aggiornare gli agenti alla versione 2.9 prima di passare alla 3.x, lasciando alla versione intermedia il tempo di funzionare prima di completare la migrazione. Anche i valori cost-analyzer esistenti vanno rivisti, senza dare per scontato che corrispondano direttamente al nuovo chart kubecost, perché nomi dei componenti, architettura di storage e opzioni di configurazione sono cambiati.
Cosa include l'Helm chart
L'Helm chart di Kubecost include i template Kubernetes e le dipendenze configurabili necessarie per eseguire Kubecost. Le risorse effettivamente distribuite dipendono dalla versione del chart e dai values abilitati, ma in generale il chart copre i seguenti componenti:
- Componenti applicativi di Kubecost: Deployment, Service, ConfigMap, Secret, service account e altre risorse necessarie per eseguire Kubecost ed esporre le sue funzionalità di monitoraggio dei costi.
- Raccolta delle metriche (
finops-agent): il chart distribuisce ilfinops-agent, un agente leggero che raccoglie le metriche del cluster utilizzate da Kubecost per l'allocazione dei costi, senza richiedere un deployment separato di Prometheus. - Componenti per le metriche Kubernetes: a seconda della configurazione, il chart può distribuire componenti di supporto come
kube-state-metricse Node Exporter, che forniscono metriche a livello di oggetti Kubernetes e di nodi. - Storage persistente: i values di Helm possono creare persistent volume claim per i dati di Kubecost e Prometheus, con dimensioni di storage e storage class configurabili.
- Configurazione di Ingress e Service: il chart offre impostazioni per esporre Kubecost tramite Service Kubernetes e, se abilitato, un Ingress con host, path, annotazioni e impostazioni TLS configurabili.
- Risorse di monitoraggio: è possibile creare risorse opzionali come
ServiceMonitorePrometheusRuleper gli ambienti che utilizzano Prometheus Operator. - Funzionalità e integrazioni opzionali: i values di Helm possono abilitare funzionalità aggiuntive come la raccolta dei costi di rete, le network policy, le integrazioni di pricing con i cloud provider e altre funzioni di Kubecost, senza modificare manualmente i manifest Kubernetes generati.
Poiché questi componenti vengono controllati tramite il values.yaml del chart, le organizzazioni possono abilitare solo le risorse necessarie o integrare Kubecost con i componenti di monitoraggio e infrastruttura già presenti nel cluster.
Contenuti correlati: consulti la nostra guida all'ottimizzazione dei costi Kubernetes
Come installare Kubecost con Helm
Kubecost può essere installato con Helm aggiungendo il repository ufficiale dei chart di Kubecost e distribuendo il chart in un namespace dedicato. L'attuale repository Helm di Kubecost fornisce il chart kubecost/kubecost per Kubecost 3.x.
Per prima cosa, aggiungere il repository Helm di Kubecost e aggiornare l'indice locale dei chart:
helm repo add kubecost https://kubecost.github.io/kubecost/helm repo updateQuindi installare Kubecost in un namespace kubecost:
helm install kubecost kubecost/kubecost \ --namespace kubecost \ --create-namespaceKubecost supporta anche l'installazione diretta dall'URL del repository. L'esempio ufficiale imposta global.clusterId per identificare il cluster:
helm install kubecost \ --repo https://kubecost.github.io/kubecost kubecost \ --namespace kubecost \ --create-namespace \ --set global.clusterId=my-clusterPrima del deployment in produzione, è possibile esaminare i values supportati da una specifica versione del chart:
helm show values kubecost/kubecost --version <chart-version>È quindi possibile inserire la configurazione necessaria in un file values.yaml personalizzato e installare Kubecost con:
helm install kubecost kubecost/kubecost \ --namespace kubecost \ --create-namespace \ --values values.yamlL'uso di un file di values rende più semplice versionare e riprodurre la configurazione per impostazioni come storage, allocazione delle risorse, monitoraggio e componenti di Kubecost. Il repository ufficiale di Kubecost consiglia inoltre di verificare la compatibilità tra versioni del chart e di Kubernetes nella scelta di una release; ad esempio, i chart di Kubecost 3.0 sono pensati per versioni di Kubernetes più recenti rispetto alle ultime release di Kubecost 2.x.
Helm chart di Kubecost vs manifest Kubernetes
Sia gli Helm chart sia i manifest Kubernetes possono essere utilizzati per il deployment di applicazioni su Kubernetes, ma gestiscono la configurazione in modo diverso. Kubecost consiglia Helm come metodo di installazione principale; il suo chart ufficiale raggruppa le risorse necessarie ed espone la configurazione tramite i values di Helm.
| Helm chart di Kubecost | Manifest Kubernetes | |
|---|---|---|
| Deployment | Installa Kubecost come release Helm utilizzando un chart pacchettizzato. | Le risorse vengono applicate direttamente con kubectl apply. |
| Configurazione | Le impostazioni sono centralizzate in values.yaml o fornite con --set. |
La configurazione si modifica intervenendo sulle singole definizioni YAML delle risorse. |
| Upgrade | Helm tiene traccia della release e può applicare modifiche di versione del chart e di configurazione tramite helm upgrade. |
I manifest aggiornati vanno in genere applicati e mantenuti manualmente. |
| Personalizzazione | I values del chart offrono opzioni configurabili per componenti, storage, Prometheus, limiti di risorse e altre impostazioni. | Offrono il controllo diretto su ogni oggetto Kubernetes, ma richiedono più manutenzione manuale. |
| Riproducibilità | Una versione del chart più un file di values rende il deployment più facile da riprodurre su più cluster. | I team devono mantenere e sincronizzare autonomamente la propria raccolta di manifest. |
| Gestione del ciclo di vita | Helm offre nativamente installazione delle release, upgrade, rollback e disinstallazione. | Kubernetes gestisce le singole risorse, non il ciclo di vita di una release Helm. |
| Ideale per | La maggior parte dei deployment di Kubecost, in particolare gli ambienti che richiedono configurazioni riproducibili e upgrade continui. | Ambienti che richiedono specificamente il controllo diretto sulle risorse Kubernetes statiche o che non possono usare Helm. |
Storicamente Kubecost ha fornito in alternativa il deployment tramite manifest statici, ma la sua documentazione consiglia Helm, soprattutto per i deployment in produzione. Helm rende inoltre più semplice personalizzare dipendenze e impostazioni (ad esempio se Kubecost deve usare i componenti di monitoraggio inclusi o l'infrastruttura esistente) senza dover mantenere copie modificate di ogni risorsa Kubernetes.
Best practice per l'Helm chart di Kubecost
Ecco alcune pratiche utili da considerare quando si lavora con l'Helm chart di Kubecost.
1. Fissare le versioni dell'Helm chart di Kubecost
Specificare una versione esplicita del chart di Kubecost invece di lasciare che Helm installi automaticamente l'ultima release disponibile. Helm consente di selezionare una versione specifica del chart con l'opzione --version; se omessa, può essere selezionata la versione più recente del chart.
Fissare le versioni rende i deployment più prevedibili ed evita che un'installazione automatizzata o una pipeline CI/CD adotti inaspettatamente un chart più recente con valori predefiniti o dipendenze modificati. Prima di aggiornare deliberatamente la versione fissata, esaminare le note di rilascio di Kubecost e i requisiti di compatibilità.
2. Gestire i values di Helm nel version control
Archiviare gli override della configurazione di Kubecost in un file values.yaml dedicato e mantenerlo nel version control. I values di Helm sono il meccanismo standard per sovrascrivere i valori predefiniti del chart, incluse le impostazioni per componenti applicativi, storage, ingress e altre opzioni di deployment.
Il version control fornisce uno storico delle modifiche di configurazione e rende più semplice esaminare, riprodurre o ripristinare i deployment di Kubecost. Evitare di inserire credenziali o altri segreti sensibili direttamente in un repository; fare invece riferimento a un meccanismo appropriato di gestione dei segreti, Kubernetes o esterno.
3. Usare file di values separati per i diversi ambienti
Mantenere file di values separati per sviluppo, staging e produzione quando questi ambienti richiedono configurazioni Kubecost differenti. Helm è progettato per distribuire lo stesso chart con values diversi, evitando di dover mantenere copie separate dei manifest Kubernetes sottostanti.
Ad esempio, la produzione potrebbe utilizzare volumi persistenti e allocazioni di risorse più grandi, mentre un cluster di sviluppo può usare impostazioni più contenute. Tenere separati gli override specifici per ambiente riduce inoltre il rischio di applicare accidentalmente una configurazione di sviluppo alla produzione.
4. Impostare resource request e limit adeguati
Configurare request e limit di CPU e memoria per i componenti di Kubecost in base alle dimensioni e al carico del cluster. Le request aiutano Kubernetes a riservare risorse sufficienti per i pod di Kubecost, mentre i limit possono impedire a singoli componenti di consumare capacità eccessiva del cluster.
Evitare di copiare semplicemente la stessa configurazione delle risorse su cluster di dimensioni molto diverse. Dopo il deployment, monitorare il consumo effettivo di risorse di Kubecost e adeguare i values di Helm man mano che aumentano il numero di nodi, i workloads e le metriche raccolte.
5. Configurare lo storage persistente per la produzione
Utilizzare storage persistente per i componenti di Kubecost che devono conservare i dati in caso di riavvio o rischedulazione dei pod. Il chart di Kubecost espone la configurazione dei volumi persistenti, come l'abilitazione della persistenza, la dimensione del volume e la StorageClass Kubernetes utilizzata.
Per i deployment in produzione, scegliere una StorageClass affidabile ed effettuare il provisioning di capacità sufficiente per la crescita prevista dei dati. Le impostazioni di storage dovrebbero inoltre essere in linea con i requisiti di backup, retention e disaster recovery dell'organizzazione.
6. Testare gli upgrade di Helm prima della produzione
Applicare gli upgrade del chart di Kubecost in un cluster di sviluppo o staging prima di aggiornare la produzione. Testare sia la nuova versione del chart sia i values personalizzati esistenti, perché gli upgrade del chart possono introdurre nuove impostazioni, modificare i valori predefiniti o cambiare le risorse Kubernetes.
Helm consente di esaminare e controllare i values dell'upgrade, oltre a riportare una release a una revisione precedente quando necessario. Conservare la versione precedente del chart e la relativa configurazione per disporre di un percorso di rollback testato nel caso in cui l'upgrade in produzione causi problemi.
Ottimizzare i costi Kubernetes oltre Kubecost con PerfectScale
PerfectScale by DoiT offre un'ottimizzazione dei costi responsabile, che elimina le risorse sprecate senza compromettere stabilità e prestazioni di Kubernetes. Kubecost è focalizzato principalmente sul monitoraggio dei costi Kubernetes. PerfectScale va oltre: ottimizza continuamente l'ambiente per garantire prestazioni ottimali ed efficienza dei costi e offre maggiore visibilità e governance su node group, namespace, container e workloads. L'Helm chart di Kubecost distribuisce e mantiene Prometheus e i relativi componenti per le metriche. PerfectScale, invece, viene eseguito come un singolo agente stateless con footprint minimo e non richiede Prometheus.
Funzionalità chiave di PerfectScale:
- Ottimizzazione autonoma dei costi: ottimizza in autonomia l'ambiente Kubernetes con azioni integrate in GitOps, applicando i risparmi in modo continuo anziché limitarsi a mostrarli nelle dashboard.
- Right-sizing completo: fornisce raccomandazioni su CPU e memoria sia per le request sia per i limit. Le raccomandazioni tengono conto delle modifiche al codice e della configurazione dell'HPA.
- Deployment con agente stateless: si installa come un singolo agente leggero con una manutenzione continua minima. Non c'è alcuna implementazione di Prometheus da configurare o mantenere.
- Visibilità e allocazione granulare dei costi: offre visibilità e allocazione dei costi, previsioni su costi e sprechi e visibilità sui workloads effimeri. Mostra inoltre allocazione, utilizzo e capacità inattiva dei nodi, supporta i node group e consente di raggruppare i workloads effimeri in modi personalizzati.
- Rilevamento e remediation dei problemi di resilienza: identifica eventi OOM, throttling della CPU, sospetti memory leak, riavvii frequenti, eviction e workloads che raggiungono i limiti di repliche. Offre inoltre prioritizzazione automatica dei rischi di resilienza, avvisi personalizzabili e remediation autonoma.
- Funziona ovunque giri Kubernetes: supporta EKS, GKE, AKS, OpenShift e cluster on-premise.
È pronto a passare dal monitoraggio dei costi all'ottimizzazione autonoma di Kubernetes? Scopra il confronto tra PerfectScale e Kubecost e avvii la prova gratuita di 30 giorni.