Note:
- Este tutorial requiere acceso a Oracle Cloud. Para registrarse para obtener una cuenta gratuita, consulte Introducción a la cuenta gratuita de Oracle Cloud Infrastructure.
- Utiliza valores de ejemplo para credenciales, arrendamiento y compartimentos de Oracle Cloud Infrastructure. Al finalizar la práctica, sustituya estos valores por otros específicos de su entorno en la nube.
Gestión de costos de SaaS multiinquilino en OCI Kubernetes Engine con OpenCost
Introducción
Los proveedores de software independientes (ISV) que ofrecen soluciones de software como servicio (SaaS) multi-inquilino en Oracle Cloud Infrastructure (OCI) a menudo se enfrentan al desafío de gestionar los costos de manera eficiente, al tiempo que garantizan una facturación precisa para cada inquilino. Un enfoque común entre los proveedores de SaaS es ejecutar las cargas de trabajo de sus inquilinos en Kubernetes, utilizando los espacios de nombres de Kubernetes para separarlos lógicamente en el mismo cluster. Al desplegar clusters en Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes Engine u OKE), OCI proporciona datos detallados de costos para el cluster general. Sin embargo, no puede proporcionar estadísticas de costos granulares para componentes individuales de Kubernetes, como espacios de nombres, que son cruciales para el seguimiento y la facturación del uso de recursos específicos del inquilino.
En este tutorial, le guiaremos a través de una solución fácil de implementar utilizando OpenCost, una herramienta de monitoreo de costos de código abierto que puede ayudar a rastrear y administrar costos en un entorno multi-inquilino en OKE.
Como ISV, es probable que esté ejecutando aplicaciones SaaS en las que varios inquilinos comparten infraestructura dentro de un cluster de OKE. El desafío es obtener visibilidad de los costos asociados con el consumo de recursos de cada inquilino. Comprender estos costos es esencial para asignar con precisión los gastos y garantizar una facturación justa para cada inquilino.
Si no puede ver el uso de recursos por inquilino, resulta difícil:
- Facture a los inquilinos con precisión el uso de recursos de Kubernetes.
- Optimice los recursos para evitar el sobreaprovisionamiento.
- Controle los costos y garantice la rentabilidad de su negocio SaaS.
OpenCost es una herramienta de gestión y supervisión de costos de código abierto diseñada específicamente para entornos de Kubernetes. Realiza un seguimiento del uso de recursos de los clusters de OKE y asigna los costos de CPU, memoria, almacenamiento y red. OpenCost le permite asignar fácilmente estos costos a sus inquilinos en función de los espacios de nombres de Kubernetes, lo que lo convierte en una solución ideal para ISV con aplicaciones SaaS multi-inquilino.
Con OpenCost, puede:
- Asigne costos por espacio de nombres (u otros componentes de Kubernetes) para realizar un seguimiento del uso de inquilinos individuales.
- Realice un seguimiento y analice el consumo de recursos por inquilino durante un período de tiempo especificado.
- Optimice los entornos de inquilinos para garantizar un uso eficiente de los recursos.
Objetivos
- Gestione los costos de SaaS multi-inquilino en OKE con OpenCost.
Requisitos
-
Un cluster de OKE activo en OCI.
-
kubectl instalado y configurado para acceder al cluster de OKE.
-
Helm instalado para gestionar los paquetes de Kubernetes.
-
Instale Prometheus. Ejecute el siguiente 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
Instalación de OpenCost en el cluster de OKE
-
Cree el espacio de nombres OpenCost para la instalación.
kubectl create namespace opencost
OpenCost detectará automáticamente OCI como proveedor de servicios en la nube (CSP) leyendo la información del nodo de
node.spec.providerID
. Cuando se detecta OCI como CSP, OpenCost intenta recuperar datos de precios de la API de lista de precios de OCI. No se necesita ninguna clave de API para recuperar los datos de precios públicos. -
Instale OpenCost en el espacio de nombres OpenCost.
helm install opencost --repo https://opencost.github.io/opencost-helm-chart opencost --namespace opencost
-
Actualice OpenCost.
helm upgrade opencost --repo https://opencost.github.io/opencost-helm-chart opencost --namespace opencost
-
Actualice el servicio para que se asigne una dirección IP externa al equilibrador de carga de OCI.
kubectl patch svc opencost -n opencost -p '{"spec": {"type": "LoadBalancer"}}'
Para acceder a OpenCost de forma pública, debemos crear un grupo de seguridad de red (NSG), configurar una regla de entrada para abrir el puerto necesario y asociarlo al equilibrador de carga de OCI.
-
Cree el grupo de seguridad de red (NSG). Asegúrese de sustituir
YOUR_COMPARTMENT_ID
por el ID de compartimento real yYOUR_VCN_ID
por el ID de VCN. Puede recuperar esta información de la consola de OCI.oci network nsg create --compartment-id [YOUR_COMPARTMENT_ID] --vcn-id [YOUR_VCN_ID] --display-name opencost_nsg
-
Cree una regla de entrada que permita el tráfico TCP en el puerto
9090
desde Internet. Puede descargar el archivoopencost-nsg-rule.json
desde aquí: opencost-nsg-rule.json.oci network nsg rules add --nsg-id [YOUR_NSG_ID] --from-json file://opencost-nsg-rule.json
-
Asocie el grupo de seguridad de red (NSG) recién creado al equilibrador de carga de OCI. Sustituya
YOUR_LB_ID
por el ID de equilibrador de carga yYOUR_NSG_ID
por el ID de grupo de seguridad de red.oci lb nsg update --load-balancer-id [YOUR_LB_ID] --nsg-ids '[ "[YOUR_NSG_ID]" ]'
-
Recupere la dirección IP externa y utilícela para acceder a OpenCost mediante el explorador web. Ejecute el comando
kubectl get svc -n opencost
.Para familiarizarse con la interfaz de usuario de OpenCost, consulte Vídeo: vea cómo OpenCost realiza un seguimiento de los costos de Kubernetes y la facturación en la nube.
¡Enhorabuena! Ha instalado y configurado correctamente OpenCost en el cluster de OKE.
Pasos Siguientes
Mediante la integración de OpenCost con el cluster de OKE y la configuración de precios personalizados, puede obtener una visibilidad precisa de los costos de SaaS de varios inquilinos. Los ISV ahora pueden asignar costos de manera justa y precisa, lo que garantiza que el uso de recursos de cada inquilino se refleje en la factura final.
Con la función de asignación de precios personalizada de OpenCost, se asegura de que las estimaciones de costos se alineen con los precios de OCI, lo que es fundamental para mantener la rentabilidad en un entorno SaaS multiinquilino.
Enlaces relacionados
Agradecimientos
- Autor: JP Santana, arquitecto maestro en la nube
Más recursos de aprendizaje
Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de formación gratuita en el canal YouTube de Oracle Learning. Además, visita education.oracle.com/learning-explorer para convertirte en un Oracle Learning Explorer.
Para obtener documentación sobre el producto, visite Oracle Help Center.
Manage Multi-Tenant SaaS Costs on OCI Kubernetes Engine with OpenCost
G17280-01
October 2024