Governance dei costi con Kubecost

La governance dei costi è il processo continuo di implementazione di criteri per controllare i costi. Nel contesto di Kubernetes esistono diversi modi in cui le organizzazioni possono controllare e ottimizzare i costi. Sono inclusi gli strumenti Kubernetes nativi per gestire l'utilizzo delle risorse e monitorare e ottimizzare in modo proattivo l'infrastruttura sottostante.

Questa sezione illustra come usare Kubecost per gestire i costi del cluster del servizio Azure Kubernetes. È possibile assegnare l'ambito dell'allocazione dei costi a una distribuzione, un servizio, un'etichetta, un pod o uno spazio dei nomi, che offre flessibilità nell'addebito o nella visualizzazione degli utenti del cluster.

Installare Kubecost

Sono disponibili diverse opzioni di installazione di Kubecost. Per altre informazioni, vedere Installazione di Kubecost.

Il metodo di installazione consigliato è il grafico Helm 3. Per installare una configurazione di base di Kubecost usando Helm 3, usare i comandi seguenti:

helm repo add kubecost https://kubecost.github.io/cost-analyzer/
helm repo update
helm upgrade --install kubecost kubecost/cost-analyzer --namespace kubecost --create-namespace

Dopo alcuni minuti, verificare che Kubecost sia operativo:

kubectl get pods -n kubecost

# Connect to the Kubecost dashboard UI

kubectl port-forward -n kubecost svc/kubecost-cost-analyzer 9090:9090

È ora possibile aprire il browser e scegliere http://127.0.0.1:9090 per aprire l'interfaccia utente di Kubecost. Nell'interfaccia utente di Kubecost selezionare il cluster per visualizzare le informazioni sull'allocazione dei costi.

Configurazione di Kubecost per l'integrazione cloud di Azure

Per completare l'installazione di Kubecost, è necessario configurare l'integrazione cloud di Azure e la configurazione della scheda di frequenza di Azure.

Con l'esportazione dei costi Microsoft è possibile creare un'attività ricorrente che esporta automaticamente i dati di Gestione costi in un account di archiviazione di Azure su base giornaliera. Kubecost è configurato per accedere ai dati in questo account di archiviazione, consentendogli di visualizzare il costo totale per le risorse di Azure nel dashboard, non solo i dati provenienti dal cluster del servizio Azure Kubernetes. Per assicurarsi che Kubecost produa dashboard accurati, è necessario contrassegnare le risorse di Azure come descritto nella documentazione di Kubecost per contrassegnare le risorse di Azure. Alcune risorse di Azure vengono create dal cluster del servizio Azure Kubernetes. Questo è il caso in cui si crea un servizio di tipo LoadBalancer o .PersistentVolume Per tenere traccia del costo di queste risorse correttamente, è possibile usare annotazioni nelle risorse Kubernetes per aggiungere i tag di Azure appropriati, come esempi nell'articolo "Usare i tag di Azure in servizio Azure Kubernetes".

La configurazione della scheda frequenza di Azure è necessaria per segnalare prezzi accurati nel dashboard. Sarà necessario creare un'entità servizio con un ruolo personalizzato come illustrato nella pagina della documentazione e configurare Kubecost per usare l'entità servizio per eseguire query sull'API della scheda di fatturazione di Azure.

Kubecost suddivide le risorse nelle categorie seguenti:

  • Costo mensile del cluster
  • Costo dello spazio dei nomi
  • Costo della risorsa per la distribuzione
  • Efficienza dei costi

Selezionare il cluster per visualizzare una panoramica simile al dashboard seguente:

Screenshot che mostra il dashboard Kubecost.

Selezionare Allocazione a sinistra per visualizzare il costo dello spazio dei nomi delle risorse. In Allocazione viene illustrato il costo per CPU, memoria, volumi persistenti e rete. Kubecost ottiene i dati dai prezzi di Azure, ma è anche possibile impostare costi personalizzati per le risorse.

Screenshot che mostra la schermata allocazione kubecost.

Selezionare Risparmi a sinistra per conoscere i risparmi sui costi per le risorse sottoutilizzate. In Risparmi sono presenti informazioni sui nodi e i pod sottoutilizzati e sulle risorse abbandonate e identifica le richieste di risorse con provisioning eccessivo pod all'interno del cluster. Lo screenshot seguente illustra una panoramica di Risparmi di esempio:

Screenshot che mostra la schermata Kubecost Savings (Risparmio costi Kubecost).

Esplorare le diverse visualizzazioni e funzionalità fornite da Kubecost.