Observação:
- Este tutorial requer acesso ao Oracle Cloud. Para se inscrever em uma conta gratuita, consulte Conceitos Básicos do Oracle Cloud Infrastructure Free Tier.
- Ele usa valores de exemplo para credenciais, tenancy e compartimentos do Oracle Cloud Infrastructure. Ao concluir seu laboratório, substitua esses valores por valores específicos do seu ambiente de nuvem.
Gerencie Custos Multi-Tenant SaaS no OCI Kubernetes Engine com OpenCost
Introdução
Fornecedores de Software Independentes (ISVs) que oferecem soluções de Software as a Service (SaaS) multilocatários na Oracle Cloud Infrastructure (OCI) geralmente enfrentam o desafio de gerenciar custos com eficiência, garantindo um faturamento preciso para cada locatário. Uma abordagem comum entre os provedores SaaS é executar as cargas de trabalho de seus tenants no Kubernetes, utilizando namespaces do Kubernetes para separá-los logicamente no mesmo cluster. Ao implantar clusters no Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes Engine ou OKE), a OCI fornece dados de custo detalhados para o cluster geral. No entanto, ele não pode fornecer insights de custo granulares para componentes individuais do Kubernetes, como namespaces, que são cruciais para rastrear e faturar o uso de recursos específicos do tenant.
Neste tutorial, orientaremos você por uma solução fácil de implementar usando o OpenCost, uma ferramenta de monitoramento de custos de código aberto que pode ajudar a rastrear e gerenciar custos em um ambiente multitenant no OKE.
Como um ISV, você provavelmente está executando aplicativos SaaS nos quais vários tenants compartilham infraestrutura em um cluster do OKE. O desafio é ganhar visibilidade dos custos associados ao consumo de recursos de cada inquilino. Compreender esses custos é essencial para alocar despesas com precisão e garantir um faturamento justo para cada inquilino.
Se você não tiver visibilidade do uso de recursos por tenant, fica difícil:
- Fature com precisão os tenants pelo uso de recursos do Kubernetes.
- Otimize recursos para evitar o excesso de provisionamento.
- Controle os custos, garantindo a lucratividade do seu negócio SaaS.
OpenCost é uma ferramenta de monitoramento e gerenciamento de custos de código-fonte aberto projetada especificamente para ambientes Kubernetes. Ele rastreia o uso de recursos dos clusters do OKE e aloca os custos de CPU, memória, armazenamento e rede. O OpenCost permite mapear facilmente esses custos para seus tenants com base nos namespaces do Kubernetes, tornando-o uma solução ideal para ISVs com aplicativos SaaS multitenant.
Com OpenCost, você pode:
- Aloque custos por namespace (ou outros componentes do Kubernetes) para rastrear o uso individual do tenant.
- Rastreie e analise o consumo de recursos por tenant em um período especificado.
- Otimize ambientes de locatários para garantir o uso eficiente dos recursos.
Objetivos
- Gerencie custos SaaS multitenant no OKE com OpenCost.
Pré-requisitos
-
Um cluster ativo do OKE no OCI.
-
kubectl instalado e configurado para acessar o cluster do OKE.
-
Helm instalado para gerenciar seus pacotes do Kubernetes.
-
Instale o Prometheus. Execute o seguinte comando.
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
Instalar o OpenCost no Seu Cluster do OKE
-
Crie o namespace OpenCost para sua instalação.
kubectl create namespace opencost
O OpenCost detectará automaticamente a OCI como provedor de serviços em nuvem (CSP) lendo as informações do nó em
node.spec.providerID
. Quando o OCI é detectado como o CSP, o OpenCost tenta recuperar dados de preços da API da Lista de Preços do OCI. Nenhuma chave de API é necessária para recuperar os dados de preços públicos. -
Instale OpenCost no namespace OpenCost.
helm install opencost --repo https://opencost.github.io/opencost-helm-chart opencost --namespace opencost
-
Atualize OpenCost.
helm upgrade opencost --repo https://opencost.github.io/opencost-helm-chart opencost --namespace opencost
-
Atualize o serviço para que um endereço IP externo seja designado ao Balanceador de Carga do OCI.
kubectl patch svc opencost -n opencost -p '{"spec": {"type": "LoadBalancer"}}'
Para acessar o OpenCost publicamente, precisamos criar um Grupo de Segurança de Rede (NSG), configurar uma regra de entrada para abrir a porta necessária e associá-la ao Balanceador de Carga do OCI.
-
Crie o NSG (Grupo de Segurança de Rede). Certifique-se de substituir
YOUR_COMPARTMENT_ID
pelo seu ID de compartimento real eYOUR_VCN_ID
pelo seu ID de VCN. Você pode recuperar essas informações na Console do OCI.oci network nsg create --compartment-id [YOUR_COMPARTMENT_ID] --vcn-id [YOUR_VCN_ID] --display-name opencost_nsg
-
Crie uma regra de entrada que permita o tráfego TCP na porta
9090
pela internet. Você pode fazer download do arquivoopencost-nsg-rule.json
aqui: opencost-nsg-rule.json.oci network nsg rules add --nsg-id [YOUR_NSG_ID] --from-json file://opencost-nsg-rule.json
-
Anexe o Grupo de Segurança de Rede (NSG) recém-criado ao Balanceador de Carga do OCI. Substitua
YOUR_LB_ID
pelo ID do balanceador de carga eYOUR_NSG_ID
pelo ID do Grupo de Segurança de Rede.oci lb nsg update --load-balancer-id [YOUR_LB_ID] --nsg-ids '[ "[YOUR_NSG_ID]" ]'
-
Recupere o endereço IP externo e use-o para acessar OpenCost usando seu navegador da Web. Execute o comando
kubectl get svc -n opencost
.Para se familiarizar com a interface do usuário OpenCost, consulte Vídeo: Veja Como o OpenCost Rastreia Seus Custos do Kubernetes e Faturamento na Nuvem.
Parabéns! Você instalou e configurou com sucesso o OpenCost no cluster do OKE!
Próximas Etapas
Integrando o OpenCost ao cluster do OKE e configurando preços personalizados, você pode obter visibilidade precisa dos custos do SaaS multilocatário. Os ISVs agora podem alocar custos de forma justa e precisa, garantindo que o uso de recursos de cada inquilino seja refletido na fatura final.
Com o recurso de preços personalizado do OpenCost, você garante que as estimativas de custo estejam alinhadas com os preços da OCI, o que é fundamental para manter a lucratividade em um ambiente SaaS multitenant.
Links Relacionados
Confirmações
- Autor - JP Santana, Arquiteto de Nuvem Mestre
Mais Recursos de Aprendizagem
Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal Oracle Learning YouTube. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.
Para obter a documentação do produto, visite o Oracle Help Center.
Manage Multi-Tenant SaaS Costs on OCI Kubernetes Engine with OpenCost
G17284-01
October 2024