Nota

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:

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:

Obiettivi

Prerequisiti

Installare OpenCost sul cluster OKE

  1. 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.

  2. Installare OpenCost nello spazio di nomi OpenCost.

    helm install opencost --repo https://opencost.github.io/opencost-helm-chart opencost --namespace opencost
    
  3. Aggiornare OpenCost.

    helm upgrade opencost --repo https://opencost.github.io/opencost-helm-chart opencost --namespace opencost
    
  4. 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.

  5. Creare il gruppo di sicurezza di rete (NSG). Assicurarsi di sostituire YOUR_COMPARTMENT_ID con l'ID compartimento effettivo e YOUR_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
    
  6. Creare una regola di entrata che consenta il traffico TCP sulla porta 9090 da Internet. È possibile scaricare il file opencost-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
    
  7. Collegare il gruppo di sicurezza di rete (NSG) appena creato al load balancer OCI. Sostituire YOUR_LB_ID con l'ID del load balancer e YOUR_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]" ]'
    

    Collega NSG al load balancer

  8. Recuperare l'indirizzo IP esterno e utilizzarlo per accedere a OpenCost utilizzando il browser Web. Eseguire il comando kubectl get svc -n opencost.

    OpenCost aperto nel browser

    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.

Conferme

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.