Note:

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:

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:

Objetivos

Requisitos

Instalación de OpenCost en el cluster de OKE

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

  2. Instale OpenCost en el espacio de nombres OpenCost.

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

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

  5. Cree el grupo de seguridad de red (NSG). Asegúrese de sustituir YOUR_COMPARTMENT_ID por el ID de compartimento real y YOUR_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
    
  6. Cree una regla de entrada que permita el tráfico TCP en el puerto 9090 desde Internet. Puede descargar el archivo opencost-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
    
  7. 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 y YOUR_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]" ]'
    

    Asociar NSG a equilibrador de carga

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

    OpenCost abierto en el explorador

    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.

Agradecimientos

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.