Nota
- Questa esercitazione richiede l'accesso a Oracle Cloud. Per iscriverti a un account gratuito, consulta Inizia a utilizzare Oracle Cloud Infrastructure Free Tier.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti di Oracle Cloud Infrastructure. Al termine del laboratorio, sostituisci questi valori con quelli specifici del tuo ambiente cloud.
Gestisci i costi SaaS multi-tenant su OCI Kubernetes Engine con OpenCost
Introduzione
Gli Independent Software Vendor (ISV) che offrono soluzioni Software as a Service multi-tenant (SaaS) su Oracle Cloud Infrastructure (OCI) spesso si trovano ad affrontare la sfida di gestire i costi in modo efficiente, garantendo al contempo una fatturazione accurata per ogni tenant. Un approccio comune tra i provider SaaS è quello di eseguire i carichi di lavoro dei tenant su Kubernetes, utilizzando gli spazi di nomi Kubernetes per separarli logicamente all'interno dello stesso cluster. Quando si distribuiscono i cluster su Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes Engine o OKE), OCI fornisce dati dettagliati sui costi per il cluster complessivo. Tuttavia, non è in grado di fornire insight sui costi granulari per i singoli componenti Kubernetes, come gli spazi dei nomi, che sono fondamentali per monitorare e fatturare l'uso delle risorse specifiche dei tenant.
In questo tutorial, ti guideremo attraverso una soluzione facile da implementare utilizzando OpenCost, uno strumento di monitoraggio dei costi open source che può aiutare a monitorare e gestire i costi in un ambiente multi-tenant su OKE.
In qualità di ISV, è probabile che vengano eseguite applicazioni SaaS in cui più tenant condividono l'infrastruttura all'interno di un cluster OKE. La sfida è ottenere visibilità sui costi associati al consumo di risorse di ciascun tenant. La comprensione di questi costi è essenziale per allocare accuratamente le spese e garantire una fatturazione equa per ogni inquilino.
Se non si dispone di visibilità sull'uso delle risorse per ogni tenant, diventa difficile:
- Fattura in modo accurato ai tenant l'uso delle risorse Kubernetes.
- Ottimizza le risorse per evitare il provisioning eccessivo.
- Controlla i costi e garantisci la redditività per la tua azienda SaaS.
OpenCost è uno strumento di gestione e monitoraggio dei costi open source progettato specificamente per gli ambienti Kubernetes. Tiene traccia dell'uso delle risorse dei cluster OKE e alloca i costi per CPU, memoria, storage e rete. OpenCost ti consente di mappare facilmente questi costi ai tuoi tenant in base agli spazi di nomi Kubernetes, rendendoli una soluzione ideale per ISV con applicazioni SaaS multi-tenant.
Con OpenCost è possibile:
- Alloca i costi in base allo spazio di nomi (o ad altri componenti Kubernetes) per tenere traccia dell'uso dei singoli tenant.
- Tiene traccia e analizza il consumo di risorse per tenant in un periodo di tempo specificato.
- Ottimizza gli ambienti dei tenant per garantire un uso efficiente delle risorse.
Obiettivi
- Gestisci i costi SaaS multi-tenant su OKE con OpenCost.
Prerequisiti
-
Cluster OKE attivo in OCI.
-
kubectl installato e configurato per accedere al cluster OKE.
-
Helm installato per gestire i pacchetti Kubernetes.
-
Installare Prometheus. eseguire il comando seguente.
helm install prometheus --repo https://prometheus-community.github.io/helm-charts prometheus \ --namespace prometheus-system --create-namespace \ --set prometheus-pushgateway.enabled=false \ --set alertmanager.enabled=false \ -f https://raw.githubusercontent.com/opencost/opencost/develop/kubernetes/prometheus/extraScrapeConfigs.yaml
Installare OpenCost sul cluster OKE
-
Creare lo spazio di nomi OpenCost per l'installazione.
kubectl create namespace opencost
OpenCost rileverà automaticamente OCI come provider di servizi cloud (CSP) leggendo le informazioni sui nodi da
node.spec.providerID
. Quando OCI viene rilevato come CSP, OpenCost tenta di recuperare i dati dei prezzi dall'API del listino prezzi OCI. Nessuna chiave API necessaria per recuperare i dati di determinazione prezzi pubblici. -
Installare OpenCost nello spazio di nomi OpenCost.
helm install opencost --repo https://opencost.github.io/opencost-helm-chart opencost --namespace opencost
-
Aggiornare OpenCost.
helm upgrade opencost --repo https://opencost.github.io/opencost-helm-chart opencost --namespace opencost
-
Aggiornare il servizio in modo che venga assegnato un indirizzo IP esterno al load balancer OCI.
kubectl patch svc opencost -n opencost -p '{"spec": {"type": "LoadBalancer"}}'
Per accedere pubblicamente a OpenCost, è necessario creare un gruppo di sicurezza di rete (NSG), configurare una regola di entrata per aprire la porta richiesta e associarla a OCI Load Balancer.
-
Creare il gruppo di sicurezza di rete (NSG). Assicurarsi di sostituire
YOUR_COMPARTMENT_ID
con l'ID compartimento effettivo eYOUR_VCN_ID
con l'ID VCN. È possibile recuperare queste informazioni da OCI Console.oci network nsg create --compartment-id [YOUR_COMPARTMENT_ID] --vcn-id [YOUR_VCN_ID] --display-name opencost_nsg
-
Creare una regola di entrata che consenta il traffico TCP sulla porta
9090
da Internet. È possibile scaricare il fileopencost-nsg-rule.json
da qui: opencost-nsg-rule.json.oci network nsg rules add --nsg-id [YOUR_NSG_ID] --from-json file://opencost-nsg-rule.json
-
Collegare il gruppo di sicurezza di rete (NSG) appena creato al load balancer OCI. Sostituire
YOUR_LB_ID
con l'ID del load balancer eYOUR_NSG_ID
con l'ID del gruppo di sicurezza di rete.oci lb nsg update --load-balancer-id [YOUR_LB_ID] --nsg-ids '[ "[YOUR_NSG_ID]" ]'
-
Recuperare l'indirizzo IP esterno e utilizzarlo per accedere a OpenCost utilizzando il browser Web. Eseguire il comando
kubectl get svc -n opencost
.Per acquisire familiarità con l'interfaccia utente di OpenCost, vedere Video: Guarda come OpenCost tiene traccia dei costi e della fatturazione cloud di Kubernetes.
Congratulazioni. Installazione e configurazione di OpenCost sul cluster OKE riuscite.
Passi successivi
Integrando OpenCost con il tuo cluster OKE e configurando i prezzi personalizzati, puoi ottenere una visibilità precisa sui costi SaaS multi-tenant. Gli ISV ora possono allocare i costi in modo equo e accurato, assicurando che l'uso delle risorse di ciascun tenant si rifletta nella fattura finale.
Con la funzione di determinazione dei prezzi personalizzata di OpenCost, ti assicuri che le stime dei costi siano in linea con i prezzi di OCI, un aspetto fondamentale per mantenere la redditività in un ambiente SaaS multi-tenant.
Collegamenti correlati
Conferme
- Autore - JP Santana, Master Cloud Architect
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.
Per la documentazione del prodotto, visita l'Oracle Help Center.
Manage Multi-Tenant SaaS Costs on OCI Kubernetes Engine with OpenCost
G17286-01
October 2024