AWS ha recentemente iniziato a offrire Kubecost, uno strumento di monitoraggio e gestione dei costi Kubernetes di terze parti sviluppato per aiutare i clienti a contenere le spese per Enterprise Kubernetes Service (EKS). Si tratta di una mossa insolita per AWS, che però sottolinea ancora una volta la complessità della gestione dei costi di Kubernetes per i team DevOps di oggi. Kubecost consente di tenere traccia dei costi delle vostre risorse Kubernetes per namespace, distribuzione, servizio, cluster, pod o concetti organizzativi come team, reparto o applicazione. Ma mentre la visibilità dei costi è un primo passo necessario, non è tutto ciò che serve per tenere sotto controllo i costi di Kubernetes.

Ecco alcune linee guida per iniziare a mettere in atto procedure di gestione dei costi di Kubernetes nella vostra organizzazione.

Principi di gestione dei costi di Kubernetes

Ci sono alcuni principi fondamentali da tenere a mente quando si tratta di gestione dei costi di Kubernetes. Questi principi non riguardano direttamente i numeri, ma sono comunque fondamentali per avere successo nella gestione dei costi.

Creare una cultura di gestione dei costi

La gestione dei costi di Kubernetes, proprio come la gestione dei costi del cloud, è un’impresa complessa. Dovrete instillare le competenze di gestione dei costi di Kubernetes in tutta l’organizzazione, iniziando a fornire agli sviluppatori e al personale finanziario le competenze e gli strumenti necessari per gestire i costi di Kubernetes. Sotto molti punti di vista, Kubernetes si adatta perfettamente a un’iniziativa di gestione dei costi del cloud che potreste già intraprendere.

La collaborazione è il vostro copilota

Una gestione dei costi Kubernetes di successo non avviene in un silos. Richiede invece una stretta collaborazione tra i membri del team, in particolare tra ingegneria e finanza. L’ottimizzazione dei costi di solito non fa parte delle competenze di uno sviluppatore e, al tempo stesso, Kubernetes non fa parte delle competenze di un contabile. Tuttavia, il contabile mette spesso in discussione l’alto costo dei servizi cloud, in particolare i costi dei container fuori controllo. Uno strumento di gestione dei costi offre al team di sviluppo un modo per apportare modifiche minori alla configurazione di Kubernetes o container per ridurre i costi o aiutarli a creare un business case per un budget aggiuntivo. Uno strumento di gestione dei costi può anche fungere da piattaforma di collaborazione tra sviluppatori e finanza.

Documentare ed educare

Quando avete acquisito competenze interaziendali sufficienti in Kubernetes e gestione dei costi, è il momento di documentare procedure e processi relativi a come usate lo strumento scelto per calcolare i costi di Kubernetes. Tale documentazione potrebbe assumere le seguenti forme:

  • Formazione interna sulle vostre pratiche di gestione dei costi
  • Riassunto che documenta l’utilizzo dello strumento scelto per calcolare i costi di Kubernetes
  • Strumenti di lavoro e formazione di base che preparano le parti interessate non esperte di Kubernetes a interagire con i vostri report

Gestione dei costi di Kubernetes

Lo sviluppo di una strategia di gestione dei costi di Kubernetes può essere scoraggiante se la vostra organizzazione non dispone di competenze significative su Kubernetes. Ma una volta che l’organizzazione capisce come calcolare i costi correlati a Kubernetes e ha trovato un modo per monitorarli, è pronta per il passaggio successivo.

Ecco il framework di una strategia di gestione dei costi di base per Kubernetes.

kubernetes

Dimensionare correttamente il vostro ambiente Kubernetes per FinOps

Dimensionare correttamente l’ambiente Kubernetes è una strategia di gestione dei costi cruciale. Questa configurazione richiede un’attenta gestione delle risorse per controllare sia quali risorse sono in uso, sia quali risorse sono disponibili in standby per scopi di scalabilità e failover. La Cloud Native Computing Foundation (CNCF) consiglia di puntare al livello pod per FinOps. Dovrete dipendere dall’esperienza Kubernetes della vostra organizzazione per impostare richieste e limiti di un pod (un pod può contenere più container). È consigliabile utilizzare queste impostazioni per controllare l’utilizzo delle risorse in tutti i container e limitare le risorse richieste dal pod.

Usare le etichette Kubernetes per il monitoraggio dei costi

I team devono già avere familiarità con l’uso delle etichette nei progetti cloud per il monitoraggio dei costi. Devono usare le etichette Kubernetes per identificare gli oggetti Kubernetes e segmentarli in gruppi. L’uso appropriato delle etichette consente al team finanziario di identificare l’utilizzo delle risorse a livello di pod in diverse applicazioni e ambienti Kubernetes.

Rendere il monitoraggio dei costi e gli avvisi parte delle operazioni quotidiane

La gestione dei costi di Kubernetes deve diventare parte delle operazioni quotidiane. Dovete dare ai vostri sviluppatori gli strumenti e le strategie per rilevare automaticamente e avvisarli di richieste di CPU e memoria che superano il loro utilizzo corrente, evitando così sprechi di costi. Tale monitoraggio dovrebbe essere un’estensione del monitoraggio della qualità del servizio che i vostri team stanno già eseguendo.

Prendetevi il tempo necessario per iterare la leggibilità e la progettazione dei report sui costi che suddividono i costi di Kubernetes in base all’etichetta di distribuzione, servizio e namespace, perché questi report fungeranno da linguaggio comune tra i team DevOps e Finance. Fare questo lavoro sarà utilissimo per rendere la gestione dei costi di Kubernetes solo un’altra attività di reporting automatizzata, eliminando così un po’ di preoccupazione per la gestione dei costi.

Strumenti di gestione dei costi di Kubernetes

Mentre gli strumenti di gestione dei costi di Kubernetes fanno grandi promesse sui risparmi sui costi, non aspettatevi di ottenere grandi risparmi fin dall’inizio, ma aiutandovi a identificare inefficienze e sprechi i seguenti strumenti possono offrire risparmi significativi nel tempo.

Kubecost

Kubecost è uno strumento di gestione dei costi di Kubernetes con radici open source. Dovrete eseguire l’aggiornamento dalla versione gratuita per il monitoraggio illimitato del cluster, i report salvati, le notifiche e altre funzionalità avanzate. Tutte le versioni includono comunque l’allocazione dei costi, che suddivide i costi per namespace, distribuzione, servizi e altre variabili tra provider on-premise e cloud.

CloudZero

CloudZero consente di gestire qualsiasi spesa per cloud o software, incluso Kubernetes. Promette dati di costo dinamici ed esplorabili, non report statici. CloudZero non dipende dai tag per monitorare la spesa. Utilizza invece un linguaggio proprietario specifico del dominio per organizzare la spesa in un file YAML. La possibilità di allocare risorse senza tag rende CloudZero una soluzione particolarmente interessante.

Loft

Loft è un piano di controllo Kubernetes progettato per il self-service e la multi-tenancy. Funziona con cluster Kubernetes standard del settore, tra cui Amazon EKS, Google Kubernetes Engine e Rancher. Loft consente di configurare e automatizzare il rilevamento di namespace inattivi e cluster virtuali dopo un periodo a vostra scelta. È possibile impostare quote di account per limitare CPU, memoria e altri fattori che possono essere aggregati in tutti i namespace e cluster virtuali appartenenti a un team o a un singolo utente. È inoltre possibile configurare un’eliminazione automatica per le istanze provvisorie dopo un periodo di inattività impostato. Loft include anche un’integrazione Prometheus e dashboard Grafana per consentire di impostare dashboard di monitoraggio.

La capacità dei team di apprendere, iterare e automatizzare continuamente (tutto parte di una cultura DevOps) sarà parte integrante della crescita e della maturità delle procedure di gestione dei costi di Kubernetes. La creazione di report dettagliati sui costi contribuirà inoltre a garantire che gli sviluppatori possano collaborare con la finanza e altri stakeholder aziendali in un linguaggio comprensibile a tutti.