Note :

Gérer les coûts multilocataires SaaS sur le moteur Kubernetes pour OCI avec OpenCost

Présentation

Les fournisseurs indépendants de logiciels qui fournissent des solutions de logiciel-service (SaaS) multilocataires sur Oracle Cloud Infrastructure (OCI) doivent souvent gérer les coûts de manière efficace tout en assurant une facturation précise pour chaque locataire. Une approche commune parmi les fournisseurs SaaS consiste à exécuter les charges de travail de leurs locataires sur Kubernetes, en utilisant les espaces de noms Kubernetes pour les séparer logiquement dans la même grappe. Lors du déploiement de grappes sur Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes Engine ou OKE), OCI fournit des données de coût détaillées pour la grappe globale. Cependant, il n'est pas en mesure de fournir des informations détaillées sur les coûts pour les composants Kubernetes individuels, tels que les espaces de noms, qui sont essentiels pour le suivi et la facturation de l'utilisation des ressources propres aux locataires.

Dans ce tutoriel, nous vous présenterons une solution facile à déployer à l'aide de OpenCost, un outil de surveillance des coûts open source qui peut vous aider à suivre et à gérer les coûts dans un environnement multilocataire sur OKE.

En tant que fournisseur indépendant de logiciels, vous exécutez probablement des applications SaaS où plusieurs locataires partagent l'infrastructure au sein d'une grappe OKE. L'enjeu est de gagner en visibilité sur les coûts associés à la consommation de ressources de chaque locataire. La compréhension de ces coûts est essentielle pour répartir avec précision les dépenses et assurer une facturation équitable pour chaque locataire.

Si vous n'avez pas de visibilité sur l'utilisation des ressources par locataire, il devient difficile d'effectuer les tâches suivantes :

OpenCost est un outil de surveillance et de gestion des coûts à code source libre conçu spécialement pour les environnements Kubernetes. Il assure le suivi de l'utilisation des ressources de vos grappes OKE et alloue les coûts d'UC, de mémoire, de stockage et de réseau. OpenCost vous permet de mapper facilement ces coûts à vos locataires en fonction des espaces de noms Kubernetes, ce qui en fait une solution idéale pour les éditeurs de logiciels indépendants dotés d'applications SaaS multilocataires.

Avec OpenCost, vous pouvez :

Objectifs

Préalables

Installez OpenCost sur votre grappe OKE

  1. Créez l'espace de noms OpenCost pour votre installation.

    kubectl create namespace opencost
    

    OpenCost détectera automatiquement OCI en tant que fournisseur de services en nuage (CSP) en lisant les informations de noeud à partir de node.spec.providerID. Lorsque OCI est détecté en tant que fournisseur de services de communication, OpenCost tente d'extraire les données de tarification de l'API de liste de prix OCI. Aucune clé d'API n'est requise pour extraire les données de tarification publique.

  2. Installez OpenCost dans l'espace de noms OpenCost.

    helm install opencost --repo https://opencost.github.io/opencost-helm-chart opencost --namespace opencost
    
  3. Mettez à jour OpenCost.

    helm upgrade opencost --repo https://opencost.github.io/opencost-helm-chart opencost --namespace opencost
    
  4. Mettez à jour le service de sorte qu'une adresse IP externe soit affectée à l'équilibreur de charge OCI.

    kubectl patch svc opencost -n opencost -p '{"spec": {"type": "LoadBalancer"}}'
    

    Pour accéder à OpenCost publiquement, nous devons créer un groupe de sécurité de réseau, configurer une règle de trafic entrant pour ouvrir le port requis et l'associer à l'équilibreur de charge OCI.

  5. Créez le groupe de sécurité de réseau. Veillez à remplacer YOUR_COMPARTMENT_ID par votre ID compartiment réel et YOUR_VCN_ID par votre ID VCN. Vous pouvez extraire ces informations à partir de la console OCI.

    oci network nsg create --compartment-id [YOUR_COMPARTMENT_ID] --vcn-id [YOUR_VCN_ID] --display-name opencost_nsg
    
  6. Créez une règle de trafic entrant qui autorise le trafic TCP sur le port 9090 à partir d'Internet. Vous pouvez télécharger le fichier opencost-nsg-rule.json à partir d'ici : opencost-nsg-rule.json.

    oci network nsg rules add --nsg-id [YOUR_NSG_ID] --from-json file://opencost-nsg-rule.json
    
  7. Attachez le groupe de sécurité de réseau (NSG) nouvellement créé à l'équilibreur de charge OCI. Remplacez YOUR_LB_ID par votre ID équilibreur de charge et YOUR_NSG_ID par votre ID groupe de sécurité de réseau.

    oci lb nsg update --load-balancer-id [YOUR_LB_ID] --nsg-ids '[ "[YOUR_NSG_ID]" ]'
    

    Attacher un groupe de sécurité de réseau à l'équilibreur de charge

  8. Extrayez l'adresse IP externe et utilisez-la pour accéder à OpenCost à l'aide de votre navigateur Web. Exécutez la commande kubectl get svc -n opencost.

    OpenCost ouvert sur le navigateur

    Pour vous familiariser avec l'interface utilisateur de OpenCost, voir Vidéo : Comment OpenCost assure le suivi des coûts de Kubernetes et de la facturation en nuage.

    Félicitations! Vous avez installé et configuré OpenCost sur votre grappe OKE.

Étapes suivantes

En intégrant OpenCost à votre grappe OKE et en configurant une tarification personnalisée, vous pouvez obtenir une visibilité précise de vos coûts SaaS multilocataires. Les éditeurs de logiciels indépendants peuvent maintenant répartir les coûts de manière juste et précise, en veillant à ce que l'utilisation des ressources de chaque locataire soit reflétée dans la facture finale.

Avec la fonction de tarification personnalisée de OpenCost, vous assurez que les estimations de coût correspondent à la tarification d'OCI, ce qui est essentiel pour maintenir la rentabilité dans un environnement SaaS multilocataire.

Confirmation

Autres ressources d'apprentissage

Explorez d'autres laboratoires sur la page docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal YouTube d'Oracle Learning. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

Pour obtenir de la documentation sur le produit, visitez Oracle Help Center.